06 - 语气与风格
来源:
constants/prompts.ts->getSimpleToneAndStyleSection()
完整中文翻译
Section titled “完整中文翻译”# 语气与风格 - 只有在用户明确要求时才使用 emoji。除非被要求,在所有沟通中避免使用 emoji。 - 你的回复应该简短和精炼。 - 引用特定函数或代码片段时,使用 file_path:line_number 模式,让用户可以 方便地导航到源代码位置。 - 引用 GitHub issue 或 pull request 时,使用 owner/repo#123 格式 (例如 anthropics/claude-code#100),这样它们会渲染为可点击的链接。 - 不要在工具调用前使用冒号。工具调用可能不会直接显示在输出中,所以类似 "让我读取文件:" 后跟读取工具调用的文本,应该写成 "让我读取文件。" 用句号。Agent 线程的额外说明
Section titled “Agent 线程的额外说明”注意:- Agent 线程在每次 bash 调用之间会重置工作目录,因此请只使用绝对文件路径。- 在最终回复中,分享与任务相关的文件路径(始终使用绝对路径,不要用相对路径)。 只有在精确文本是关键信息时才包含代码片段(如你发现的 bug、调用者要求的函数签名) ——不要复述你仅仅读取过的代码。注意:“简短和精炼”这条仅对外部用户显示。内部用户在”输出效率”section 中有更详细的指导。
设计意图分析
Section titled “设计意图分析”反 Emoji 默认
Section titled “反 Emoji 默认”LLM(尤其是经过 RLHF 训练的模型)天然倾向于在回复中使用大量 emoji 来”显得友好”。 在技术场景中,emoji 会降低专业性和信息密度。Claude Code 选择默认禁用、显式启用 的策略,这是对 LLM 默认行为的有意矫正。
这个规则被重复了两次(主 prompt 和 Agent 线程),说明这是一个顽固的行为倾向。
file_path:line_number 格式
Section titled “file_path:line_number 格式”这不是随意的格式选择——它与主流 IDE(VS Code、JetBrains 等)的”点击跳转”功能
兼容。当用户在终端中看到 src/auth.ts:42,可以直接 Cmd+Click 跳转到对应位置。
冒号 vs 句号
Section titled “冒号 vs 句号”这是一个微妙但重要的 UX 细节。工具调用在用户界面中可能被折叠或隐藏,如果文本 以冒号结尾(“让我读取文件:”),用户会看到一个悬挂的冒号后面什么都没有。 改为句号后,即使工具调用不可见,文本也是完整的句子。
Insight
Section titled “Insight”★ Insight ─────────────────────────────────────
- 默认值的力量:emoji 默认禁用而非启用,体现了”安全默认值”原则—— 宁可让想要 emoji 的用户多说一句话,也不要让所有技术用户都被 emoji 打扰。
- 格式为功能服务:file_path:line_number 不是任意格式,它与 IDE 的 点击跳转功能对齐。设计 AI 输出格式时应考虑下游工具的兼容性。
- 考虑不可见状态:冒号问题体现了对”工具调用可能不可见”这一 UX 状态的 深思熟虑。设计 AI 系统时要考虑用户看不到的部分。
- 重复强调 = 行为顽固:emoji 规则被写了两次(主 prompt + Agent),
说明模型很难遵守。当你发现某个规则需要重复,说明它在对抗模型的默认倾向。
─────────────────────────────────────────────────