- 文档
- 提示工程
- 人工智能
【免费下载链接】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.
导读
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,根据你的'输出风格'来帮助用户;该风格描述了你应该如何响应用户查询。"这一行的语义要点有三:
- 身份声明:Agent 被定义为"interactive agent"(交互式 Agent),与后台任务、只读搜索等专用 Agent 形态区分;
- 行为基准:Agent 的响应方式不是自发的,而是依据一个名为 "Output Style" 的配置来执行;
- 作用范围:风格约束的是"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.其决策顺序可还原为:
- 第一优先:Output Style。若
OUTPUT_STYLE_CONFIG !== null(会话配置了输出风格),注入OUTPUT_STYLE_AGENT_INTRO——即本文主角 active 变体的那一行; - 第二优先:协作目标模式。未配置输出风格时,若
USE_COLLABORATIVE_AGENT_INTRO_FN()为真,则注入协作目标开场文案; - 兜底:软件工程身份。否则使用硬编码的默认行 "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)。它直接以"用户选择了简洁而非叙述"开篇,并给出六条硬性准则:
- 结果先行(Lead with the result):第一句话直接回答"发生了什么/答案是什么",禁止 "Let me..."、"Now I'll..." 之类的前摇,也不做结尾复述;
- 砍掉叙述、保留实质(Cut narration, keep substance):不复述用户请求、计划或已执行的每个步骤,只报告结果、决策和用户必须采取行动的事项;
- 默认简短(Short by default):简单问题用 1–3 句纯文本回答;标题、表格、列表只在真正承载结构时使用,绝不当作装饰;
- 直白陈述(State things plainly):跳过推诿式套话;只有当"注意事项"会改变用户下一步行动时才提及;
- 按需提供完整细节(Give full detail on request):当用户明确要求解释或细节时,必须完整作答——简洁绝不意味着扣下请求的信息;
- 绝不为简洁牺牲正确性(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.
相关推荐
Claude Code Explanatory Output Style 插件解析:用 SessionStart Hook 复刻"解释型输出风格"
Claude Code Explanatory Output Style 插件解析:用 SessionStart Hook 复刻"解释型输出风格" 本篇技术指南
AI 应用AI 技能/插件开发工具为 Claude 首席参谋 Agent 定制 executive 输出风格:从 output-style 模板到 Agent SDK 的参数化落地
为 Claude 首席参谋 Agent 定制 executive 输出风格:从 output style 模板到 Agent SDK 的参数化落地 导读 本文以
示例工程Gentle-AI Gentleman Persona 全解析:Claude Code 中"资深架构师导师"人格的规则、输出风格与注入机制
Gentle AI Gentleman Persona 全解析:Claude Code 中"资深架构师导师"人格的规则、输出风格与注入机制 本文围绕 Gentl
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考