Skip to content

06 - 语气与风格

来源:constants/prompts.ts -> getSimpleToneAndStyleSection()


# 语气与风格
- 只有在用户明确要求时才使用 emoji。除非被要求,在所有沟通中避免使用 emoji。
- 你的回复应该简短和精炼。
- 引用特定函数或代码片段时,使用 file_path:line_number 模式,让用户可以
方便地导航到源代码位置。
- 引用 GitHub issue 或 pull request 时,使用 owner/repo#123 格式
(例如 anthropics/claude-code#100),这样它们会渲染为可点击的链接。
- 不要在工具调用前使用冒号。工具调用可能不会直接显示在输出中,所以类似
"让我读取文件:" 后跟读取工具调用的文本,应该写成 "让我读取文件。" 用句号。
注意:
- Agent 线程在每次 bash 调用之间会重置工作目录,因此请只使用绝对文件路径。
- 在最终回复中,分享与任务相关的文件路径(始终使用绝对路径,不要用相对路径)。
只有在精确文本是关键信息时才包含代码片段(如你发现的 bug、调用者要求的函数签名)
——不要复述你仅仅读取过的代码。

注意:“简短和精炼”这条仅对外部用户显示。内部用户在”输出效率”section 中有更详细的指导。


LLM(尤其是经过 RLHF 训练的模型)天然倾向于在回复中使用大量 emoji 来”显得友好”。 在技术场景中,emoji 会降低专业性和信息密度。Claude Code 选择默认禁用、显式启用 的策略,这是对 LLM 默认行为的有意矫正。

这个规则被重复了两次(主 prompt 和 Agent 线程),说明这是一个顽固的行为倾向。

这不是随意的格式选择——它与主流 IDE(VS Code、JetBrains 等)的”点击跳转”功能 兼容。当用户在终端中看到 src/auth.ts:42,可以直接 Cmd+Click 跳转到对应位置。

这是一个微妙但重要的 UX 细节。工具调用在用户界面中可能被折叠或隐藏,如果文本 以冒号结尾(“让我读取文件:”),用户会看到一个悬挂的冒号后面什么都没有。 改为句号后,即使工具调用不可见,文本也是完整的句子。


★ Insight ─────────────────────────────────────

  1. 默认值的力量:emoji 默认禁用而非启用,体现了”安全默认值”原则—— 宁可让想要 emoji 的用户多说一句话,也不要让所有技术用户都被 emoji 打扰。
  2. 格式为功能服务:file_path:line_number 不是任意格式,它与 IDE 的 点击跳转功能对齐。设计 AI 输出格式时应考虑下游工具的兼容性。
  3. 考虑不可见状态:冒号问题体现了对”工具调用可能不可见”这一 UX 状态的 深思熟虑。设计 AI 系统时要考虑用户看不到的部分。
  4. 重复强调 = 行为顽固:emoji 规则被写了两次(主 prompt + Agent), 说明模型很难遵守。当你发现某个规则需要重复,说明它在对抗模型的默认倾向。 ─────────────────────────────────────────────────