☰
Claude Code Output Style(输出风格)机制解析:从开场身份注入到内置风格定义
2026/10/7 2:04:08 网站建设 项目流程
  • 文档
  • 提示工程
  • 人工智能

【免费下载链接】claude-code-system-prompts

All parts of Claude Code's system prompt, 27 builtin tool descriptions, sub agent prompts (Plan/Explore/Task), utility prompts (CLAUDE.md, compact, statusline, magic docs, WebFetch, Bash cmd, security review, agent creation). Updated for each Claude Code version.

项目地址:https://gitcode.com/gh_mirrors/cl/claude-code-system-prompts
点击查看免费下载

导读

Claude Code 的系统提示词并非单一字符串,而是由数百个按环境与配置条件注入的片段构成。其中,Output Style(输出风格)是当用户配置了风格化输出时,决定 Agent "如何回答用户查询"的核心机制。本文以本仓库中提取自 Claude Code v2.1.251+ 的原始提示词文件为主线,系统讲解 Output Style 的开场身份声明、条件注入决策逻辑、内置 Concise 风格的具体行为准则、每轮提醒机制及其在 CHANGELOG 中的演进脉络,帮助你理解 Claude Code 是如何把"用户偏好"翻译成模型行为约束的。

一、Output Style 是什么:一行开场身份声明

在配置了输出风格(Output Style)的会话中,Claude Code 会注入一段极简的开场提示词,用于确立 Agent 的身份与行为基准。其完整内容位于 system-prompts/system-prompt-interactive-agent-intro-output-style-active.md:

You are an interactive agent that helps users according to your "Output Style", which describes how you should respond to user queries.

翻译过来即:"你是一个交互式 Agent,根据你的'输出风格'来帮助用户;该风格描述了你应该如何响应用户查询。"这一行的语义要点有三:

  1. 身份声明:Agent 被定义为"interactive agent"(交互式 Agent),与后台任务、只读搜索等专用 Agent 形态区分;
  2. 行为基准:Agent 的响应方式不是自发的,而是依据一个名为 "Output Style" 的配置来执行;
  3. 作用范围:风格约束的是"how you should respond"——即响应的形式、详略与节奏,而非任务本身的内容。

该文件的 HTML 注释(frontmatter)同时给出了元数据:name为 "System Prompt: Interactive agent intro (output-style active)",description指明它适用于"已配置 Output Style 的会话",ccVersion为 2.1.251。根据仓库 README.md 的统计,这段提示词约占40 tokens,是整个系统提示词中体量最小、但语义关键的"开场行"之一。

二、三套开场变体:Output Style 的条件注入逻辑

"开场身份行"并非只有这一个版本。仓库中同时存在三个相互配合的变体,共同构成一段条件注入决策。理解它们,才能明白 active 变体在什么时机、什么条件下被选中。

2.1 conditional 变体:真正的"决策中枢"

真正执行选择逻辑的是 system-prompts/system-prompt-interactive-agent-intro-output-style-conditional.md(约 231 tokens,ccVersion 2.1.268)。其 frontmatter 声明了五个注入变量:

变量语义
OUTPUT_STYLE_CONFIG当前会话的输出风格配置对象,为null表示未配置
OUTPUT_STYLE_AGENT_INTRO已配置输出风格时的开场行(即上文 active 变体的内容)
USE_COLLABORATIVE_AGENT_INTRO_FN是否使用"协作目标"身份的函数开关
COLLABORATIVE_AGENT_INTRO协作目标模式下的开场文案
SECURITY_POLICY_INSTRUCTIONS安全策略注入片段

核心逻辑是一段嵌套三元表达式:

${OUTPUT_STYLE_CONFIG!==null?OUTPUT_STYLE_AGENT_INTRO:USE_COLLABORATIVE_AGENT_INTRO_FN()?COLLABORATIVE_AGENT_INTRO:"You are an interactive agent that helps users with software engineering tasks."} Use the instructions below and the tools available to you to assist the user.

其决策顺序可还原为:

  1. 第一优先:Output Style。若OUTPUT_STYLE_CONFIG !== null(会话配置了输出风格),注入OUTPUT_STYLE_AGENT_INTRO——即本文主角 active 变体的那一行;
  2. 第二优先:协作目标模式。未配置输出风格时,若USE_COLLABORATIVE_AGENT_INTRO_FN()为真,则注入协作目标开场文案;
  3. 兜底:软件工程身份。否则使用硬编码的默认行 "You are an interactive agent that helps users with software engineering tasks."。

紧随其后固定拼接两段内容:指令引用("Use the instructions below and the tools available to you to assist the user.")以及${SECURITY_POLICY_INSTRUCTIONS}安全策略注入,并附带一条明确约束:除非确信 URL 是用于帮助用户编程,否则绝不生成或猜测 URL;只允许使用用户消息或本地文件中提供的 URL。

从源码结构可以推断:OUTPUT_STYLE_CONFIG是本次注入决策的"开关总闸",而 active 变体正是它被打开时选中的分支文本——这就是为什么 active 文件本身不包含任何条件逻辑,因为它只是被条件表达式"引用"的纯文本常量。

2.2 short 变体:无风格时的最小开场

system-prompts/system-prompt-interactive-agent-intro-short.md(约 27 tokens)则是最精简的兜底行:

You are an interactive agent that helps users with software engineering tasks.

它与 conditional 变体中的默认分支文案一致,表明"软件工程任务助手"是未做任何特殊配置时的标准身份。

三、内置 Output Style 实例:Concise 风格的六条行为准则

Output Style 并不仅仅是"存在一个配置",它必须有可执行的具体内容。仓库中保存了一个内置风格的完整定义——Concise(简洁)输出风格,位于 system-prompts/system-prompt-concise-output-style.md(约 373 tokens,ccVersion 2.1.237)。它直接以"用户选择了简洁而非叙述"开篇,并给出六条硬性准则:

  1. 结果先行(Lead with the result):第一句话直接回答"发生了什么/答案是什么",禁止 "Let me..."、"Now I'll..." 之类的前摇,也不做结尾复述;
  2. 砍掉叙述、保留实质(Cut narration, keep substance):不复述用户请求、计划或已执行的每个步骤,只报告结果、决策和用户必须采取行动的事项;
  3. 默认简短(Short by default):简单问题用 1–3 句纯文本回答;标题、表格、列表只在真正承载结构时使用,绝不当作装饰;
  4. 直白陈述(State things plainly):跳过推诿式套话;只有当"注意事项"会改变用户下一步行动时才提及;
  5. 按需提供完整细节(Give full detail on request):当用户明确要求解释或细节时,必须完整作答——简洁绝不意味着扣下请求的信息;
  6. 绝不为简洁牺牲正确性(Never trade correctness for brevity):错误报告、失败的测试输出、安全警告、破坏性操作的确认信息,必须保留完整内容。

文件最后还明确了一条优先级规则:当这些规则与系统中其他更一般的沟通/格式指导冲突时,本风格规则优先("Where these rules conflict with more general communication or formatting guidance elsewhere in your instructions, these rules win.")。

这一实例揭示了两点机制事实:其一,Output Style 本质是一段"覆盖型指令",通过末条"冲突时本规则优先"的声明获得对通用指令的覆盖权;其二,风格约束的是表达形态与信息取舍,而正确性底线不可让渡——这与 active 变体"根据 Output Style 响应查询"的身份声明形成了完整的闭环。

四、每轮提醒机制:System Reminder 的"风格激活"通知

Output Style 并非只在开场注入一次。仓库中的 system-prompts/system-reminder-output-style-active.md(约 102 tokens,ccVersion 2.1.238)展示了它在会话中的持续存在方式。该 Reminder 声明了两个注入变量:ESCAPE_UNTRUSTED_TEXT_FN(对不可信文本做转义的函数)与OUTPUT_STYLE_CONFIG,其模板为:

${ESCAPE_UNTRUSTED_TEXT_FN(OUTPUT_STYLE_CONFIG.style)} output style is active. ${OUTPUT_STYLE_CONFIG.turnReminder??"Remember to follow the specific guidelines for this style."}

可还原为:

<风格名> output style is active. <每轮提醒文本>

机制要点:

  • OUTPUT_STYLE_CONFIG.style:风格名称经转义函数处理后嵌入句首,向模型通报当前激活的风格;
  • turnReminder:可选的每轮提醒字段。若风格配置提供了该字段,则使用自定义文本(例如某风格想强调的专属要点);若为空(??空值合并),则回退到默认文案 "Remember to follow the specific guidelines for this style."(记得遵循该风格的特定指南)。

结合 CHANGELOG.md 第 2114 行的记录("Output style active — Lets an output style supply its own per-turn reminder text, falling back to the default 'follow the specific guidelines' wording"),可以确认:每轮提醒文本是风格配置可自定义的字段,这使输出风格不仅约束开场身份,还能在每一轮持续强化其行为准则。

五、演进脉络:CHANGELOG 中的版本足迹

从仓库 CHANGELOG.md 可以还原 Output Style 机制近期的演进轨迹:

  • 新增 Concise 风格(第 855 行):NEW: System Prompt: Concise output style——定义内置 Concise 风格,要求"结果先行、省略叙述与重复复述、默认简短、按需完整、保留错误报告/失败测试输出/安全警告/破坏性确认的完整内容"。这说明 Output Style 体系内置了开箱即用的风格,而非仅有自定义能力;
  • 开场行拆分(第 641 行):Interactive agent intro 被拆分为"仅在风格确实位于开场行下方时才声明 style below"的变体,即本主题 active/conditional 变体分化的由来;
  • 移除误导性措辞(第 457 行):REMOVED: Interactive agent intro (output-style below)——移除了"风格在下方"这一可能失真的表述,风格指导本身保留;
  • 协作身份分支(第 822 行):未激活输出风格时,新增 collaborative-goals 身份分支,与既有软件工程身份并存,即 conditional 变体中USE_COLLABORATIVE_AGENT_INTRO_FN的来源;
  • 可自定义每轮提醒(第 2114 行):Output style active Reminder 支持风格自定义turnReminder文本。

从这一脉络可以推断:Output Style 机制正朝着"更精确的条件注入 + 更强的自定义能力"方向演化——开场行只说真实存在的内容,风格可携带自己的每轮提醒,未配置时则回退到协作或软件工程默认身份。

六、在仓库中继续深入

若希望进一步研究这套机制,可按以下路径在仓库中继续追踪:

  • 开场身份三变体:active 变体、conditional 变体、short 变体;
  • 内置风格实例:Concise 输出风格;
  • 每轮提醒:Output style active Reminder;
  • 整体索引与 token 统计:README.md(System Prompt 一节收录了上述文件的说明与 token 数,如 active 变体约 40 tks、conditional 变体约 231 tks、short 变体约 27 tks、Concise 风格约 373 tks、Reminder 约 102 tks);
  • 演进历史:CHANGELOG.md 中搜索 "output style" 相关条目。

需要说明的是:仓库中的提示词文件是从 Claude Code 编译产物中提取的一手材料(见 README.md 的 Extraction 一节),token 数会因会话内插值(如内置工具名、子 Agent 列表等)略有浮动,但 ±20 tokens 以内;具体输出风格的完整自定义配置方式属于 Claude Code 产品级功能,应以你所安装的 Claude Code 版本的官方配置文档为准。

  • 文档
  • 提示工程
  • 人工智能

【免费下载链接】claude-code-system-prompts

All parts of Claude Code's system prompt, 27 builtin tool descriptions, sub agent prompts (Plan/Explore/Task), utility prompts (CLAUDE.md, compact, statusline, magic docs, WebFetch, Bash cmd, security review, agent creation). Updated for each Claude Code version.

项目地址:https://gitcode.com/gh_mirrors/cl/claude-code-system-prompts
点击查看免费下载

相关推荐

上一篇:如何用RyzenAdj榨干AMD处理器性能:新手必学的终极调校指南
下一篇:如何用Pulover's Macro Creator轻松实现Windows自动化?新手必备的脚本录制神器

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询