Skip to content

系统提示词来源参考

更新时间: 2026-05-26

本文档列出了所有对 Claude Code 系统提示词有贡献的源代码文件和配置来源,按组装优先顺序排列。


一、组装流水线总览

┌─────────────────────────────────────────────────────────────────┐
│ 1. CLI 前缀层                                                    │
│    src/constants/system.ts → getCLISyspromptPrefix()             │
│    "You are Claude Code, Anthropic's official CLI for Claude."   │
├─────────────────────────────────────────────────────────────────┤
│ 2. 归属头部层                                                    │
│    src/constants/system.ts → getAttributionHeader(fingerprint)   │
│    "x-anthropic-billing-header: cc_version=...; cc_entrypoint=.."│
├─────────────────────────────────────────────────────────────────┤
│ 3. 内容层 (可替换策略)                                            │
│    src/utils/systemPrompt.ts → buildEffectiveSystemPrompt()      │
│    ├─ overrideSystemPrompt (--system-prompt 参数)                │
│    ├─ coordinatorMode 提示词                                      │
│    ├─ agentSystemPrompt (--agent 参数)                            │
│    ├─ customSystemPrompt (--system-prompt 参数)                  │
│    └─ defaultSystemPrompt (getSystemPrompt 返回值)                │
├─────────────────────────────────────────────────────────────────┤
│ 4. 静态段 (边界前 → 可全局缓存)                                    │
│    src/constants/prompts.ts                                      │
│    ├─ getSimpleIntroSection()                                    │
│    ├─ getSimpleSystemSection()                                   │
│    ├─ getSimpleDoingTasksSection()                               │
│    ├─ getActionsSection()                                        │
│    ├─ getUsingYourToolsSection(enabledTools)                     │
│    ├─ getSimpleToneAndStyleSection()                             │
│    └─ getOutputEfficiencySection()                               │
├─────────────────────────────────────────────────────────────────┤
│ 5. 边界标记                                                      │
│    __SYSTEM_PROMPT_DYNAMIC_BOUNDARY__                            │
├─────────────────────────────────────────────────────────────────┤
│ 6. 动态段 (通过 registry 管理)                                     │
│    src/constants/systemPromptSections.ts                          │
│    ├─ session_guidance          → getSessionSpecificGuidance     │
│    ├─ memory                    → loadMemoryPrompt               │
│    ├─ ant_model_override        → getAntModelOverrideSection     │
│    ├─ env_info_simple           → computeSimpleEnvInfo           │
│    ├─ language                  → getLanguageSection             │
│    ├─ output_style              → getOutputStyleSection          │
│    ├─ mcp_instructions          → getMcpInstructionsSection      │
│    ├─ scratchpad                → getScratchpadInstructions      │
│    ├─ frc                       → getFunctionResultClearingSec   │
│    ├─ summarize_tool_results    → SUMMARIZE_TOOL_RESULTS_SECTION │
│    ├─ numeric_length_anchors    → (ant-only)                    │
│    ├─ token_budget              → (feature-gated)               │
│    └─ brief                     → (feature-gated)               │
├─────────────────────────────────────────────────────────────────┤
│ 7. 系统上下文 (追加层)                                             │
│    src/utils/api.ts → appendSystemContext(systemPrompt, ctx)     │
│    └─ src/context.ts → getSystemContext()                         │
│       ├─ gitStatus: 当前 Git 分支、状态、最近提交                  │
│       └─ cacheBreaker: 可选缓存破坏器 (ant-only)                 │
├─────────────────────────────────────────────────────────────────┤
│ 8. 工具 Schema (API 协议层)                                       │
│    在 claude.ts 中作为独立参数发送,非系统提示词文本的一部分         │
├─────────────────────────────────────────────────────────────────┤
│ 9. Advisor/Chrome 指令 (API 组装时注入)                          │
│    src/services/api/claude.ts                                    │
│    ├─ ADVISOR_TOOL_INSTRUCTIONS    (advisor 模式)                │
│    └─ CHROME_TOOL_SEARCH_INSTRUCTIONS (Chrome 工具搜索)          │
├─────────────────────────────────────────────────────────────────┤
│ 10. 用户上下文 (消息层)                                            │
│     src/utils/api.ts → prependUserContext(messages, ctx)         │
│     └─ src/context.ts → getUserContext()                         │
│        ├─ claudeMd: 所有 CLAUDE.md 内容                          │
│        └─ currentDate: 当前日期                                  │
└─────────────────────────────────────────────────────────────────┘

二、各来源文件详情

2.1 核心系统提示词构造

文件关键导出作用
src/constants/prompts.tsgetSystemPrompt()系统提示词主入口,组装所有段
src/constants/prompts.tsDEFAULT_AGENT_PROMPT子代理默认提示词
src/constants/prompts.tsenhanceSystemPromptWithEnvDetails()子代理环境信息补充
src/constants/prompts.tsSYSTEM_PROMPT_DYNAMIC_BOUNDARY静/动态内容边界标记
src/constants/prompts.tscomputeEnvInfo()环境信息生成(完整版)
src/constants/prompts.tscomputeSimpleEnvInfo()环境信息生成(简洁版,当前默认)
src/constants/systemPromptSections.tssystemPromptSection()创建可缓存的动态段
src/constants/systemPromptSections.tsDANGEROUS_uncachedSystemPromptSection()创建每次重新计算的动态段
src/constants/systemPromptSections.tsresolveSystemPromptSections()解析并缓存所有动态段
src/constants/systemPromptSections.tsclearSystemPromptSections()清除段缓存(/clear、/compact)
src/constants/system.tsgetCLISyspromptPrefix()CLI 身份前缀(区分三种模式)
src/constants/system.tsgetAttributionHeader()API 归属头部
src/constants/system.tsCLI_SYSPROMPT_PREFIXES所有可能的前缀值集合
src/constants/cyberRiskInstruction.tsCYBER_RISK_INSTRUCTION网络安全指令(Safeguards 团队拥有)
src/constants/outputStyles.tsOUTPUT_STYLE_CONFIG输出风格定义(Explanatory/Learning 等)

2.2 上下文管理

文件关键导出作用
src/context.tsgetUserContext()用户上下文(CLAUDE.md + 日期)memoized
src/context.tsgetSystemContext()系统上下文(git 状态 + 缓存破坏器)memoized
src/context.tsgetGitStatus()Git 状态信息(分支、变更、最近提交)
src/context.tsgetSystemPromptInjection()系统提示词注入(ant-only 调试)
src/context.tssetSystemPromptInjection()设置注入内容,清除缓存

2.3 CLAUDE.md 处理

文件关键导出作用
src/utils/claudemd.tsgetMemoryFiles()加载所有 CLAUDE.md 文件,memoized
src/utils/claudemd.tsgetClaudeMds()格式化内存文件为带标签的文本
src/utils/claudemd.tsprocessMemoryFile()递归处理单文件及其 @include
src/utils/claudemd.tsprocessMdRules()处理 .claude/rules/*.md 目录
src/utils/claudemd.tsgetManagedAndUserConditionalRules()获取有条件的规则
src/utils/claudemd.tsprocessConditionedMdRules()按 frontmatter 路径过滤规则
src/utils/claudemd.tsfilterInjectedMemoryFiles()过滤自动记忆(可选)
src/utils/claudemd.tsisMemoryFilePath()判断路径是否为内存文件
src/utils/claudemd.tsresetGetMemoryFilesCache()缓存重置(触发 InstructionsLoaded hook)
src/utils/claudemd.tsclearMemoryFileCaches()缓存清除(不触发 hook)

2.4 自动记忆系统

文件关键导出作用
src/memdir/memdir.tsloadMemoryPrompt()加载自动记忆指令(系统提示词动态段)
src/memdir/memdir.tsbuildMemoryPrompt()构造完整记忆提示词(含 MEMORY.md 内容)
src/memdir/memdir.tsbuildMemoryLines()构造记忆行为指令(不含内容)
src/memdir/memdir.tsbuildSearchingPastContextSection()记忆检索指导
src/memdir/memdir.tstruncateEntrypointContent()截断 MEMORY.md 到限制(200 行/25KB)
src/memdir/memoryTypes.tsTYPES_SECTION_INDIVIDUAL记忆类型定义
src/memdir/memoryTypes.tsWHEN_TO_ACCESS_SECTION何时访问记忆的指导
src/memdir/memoryTypes.tsWHAT_NOT_TO_SAVE_SECTION什么不该保存
src/memdir/paths.tsgetAutoMemPath()自动记忆目录路径

2.5 系统提示词策略层

文件关键导出作用
src/utils/systemPrompt.tsbuildEffectiveSystemPrompt()根据运行模式选择最终系统提示词
src/utils/systemPrompt.tsasSystemPrompt()类型转换辅助函数
src/utils/systemPromptType.tsSystemPrompt 类型string[] 的类型别名

2.6 API 传输层

文件关键导出作用
src/utils/api.tssplitSysPromptPrefix()分割系统提示词为缓存块
src/utils/api.tsappendSystemContext()追加系统上下文到系统提示词
src/utils/api.tsprependUserContext()前置用户上下文到消息列表
src/services/api/claude.tsbuildSystemPromptBlocks()构建 API 可用块的包装函数
src/services/api/claude.ts系统提示词最终组装添加头部、前缀、Advisor 指令

2.7 代理系统提示词

文件关键导出作用
src/tools/AgentTool/prompt.tsgetPrompt()Agent 工具提示词
src/tools/AgentTool/prompt.tsshouldInjectAgentListInMessages()代理列表注入方式控制
src/tools/AgentTool/prompt.tsformatAgentLine()格式化单行代理描述

2.8 工具提示词(工具 Schema 使用说明)

每个工具在 src/tools/<ToolName>/prompt.ts 中都有独立的 prompt 定义,它们作为工具 Schema 的一部分(prompt 字段)发送到 API。以下是不完整的列表:

文件工具
src/tools/FileReadTool/prompt.tsRead
src/tools/FileEditTool/prompt.tsEdit
src/tools/FileWriteTool/prompt.tsWrite
src/tools/GlobTool/prompt.tsGlob
src/tools/GrepTool/prompt.tsGrep
src/tools/BashTool/prompt.tsBash
src/tools/MCPTool/prompt.tsMCP(提示词由客户端动态生成)
src/tools/SkillTool/prompt.tsSkill
src/tools/DiscoverSkillsTool/prompt.tsDiscoverSkills
src/tools/WebSearchTool/prompt.tsWebSearch
src/tools/WebFetchTool/prompt.tsWebFetch
src/tools/TaskCreateTool/prompt.tsTaskCreate
src/tools/TaskUpdateTool/prompt.tsTaskUpdate
src/tools/TaskGetTool/prompt.tsTaskGet
src/tools/TaskListTool/prompt.tsTaskList
src/tools/TaskStopTool/prompt.tsTaskStop
src/tools/AgentTool/prompt.tsAgent
src/tools/AskUserQuestionTool/prompt.tsAskUserQuestion
src/tools/SleepTool/prompt.tsSleep
src/tools/BriefTool/prompt.tsBrief
src/tools/NotebookEditTool/prompt.tsNotebookEdit
src/tools/SendMessageTool/prompt.tsSendMessage
src/tools/SendUserFileTool/prompt.tsSendUserFile
src/tools/ToolSearchTool/prompt.tsToolSearch
src/tools/ListMcpResourcesTool/prompt.tsListMcpResources
src/tools/ReadMcpResourceTool/prompt.tsReadMcpResource
src/tools/SnipTool/prompt.tsSnip
src/tools/ConfigTool/prompt.tsConfig
src/tools/EnterPlanModeTool/prompt.tsEnterPlanMode
src/tools/ExitPlanModeTool/prompt.tsExitPlanMode
src/tools/EnterWorktreeTool/prompt.tsEnterWorktree
src/tools/ExitWorktreeTool/prompt.tsExitWorktree
src/tools/TeamCreateTool/prompt.tsTeamCreate
src/tools/TeamDeleteTool/prompt.tsTeamDelete
src/tools/TerminalCaptureTool/prompt.tsTerminalCapture
src/tools/LSPTool/prompt.tsLSP
src/tools/TodoWriteTool/prompt.tsTodoWrite
src/tools/ScheduleCronTool/prompt.tsScheduleCron
src/tools/RemoteTriggerTool/prompt.tsRemoteTrigger
src/tools/REPLTool/prompt.tsREPL(常量)
src/tools/PowerShellTool/prompt.tsPowerShell

三、组装优先级顺序

3.1 内容层优先级

buildEffectiveSystemPrompt() 决定使用哪个系统提示词时:

1. overrideSystemPrompt     ← 最高优先级(REPL 循环模式)
2. coordinatorMode 提示词    ← --coordinator 模式
3. agentSystemPrompt         ← --agent 参数
   (Proactive 模式下追加到默认提示词后)
4. customSystemPrompt        ← --system-prompt 参数
5. defaultSystemPrompt       ← 标准 getSystemPrompt()
+ appendSystemPrompt (始终追加到最后)  ← --append-system-prompt 参数

3.2 CLAUDE.md 优先级

Managed  →  User  →  Project(从根目录到 CWD)  →  Local  →  AutoMem  →  TeamMem
(最低)                                                                      (最高)

目录遍历顺序:从根目录 / 到当前工作目录 CWD,越靠近 CWD 的文件优先级越高。

3.3 缓存作用域优先级

global  >  org  >  null(不缓存)
  • global:跨组织共享(静态系统提示词段)
  • org:组织内共享(CLI 前缀、工具 Schema)
  • null:不缓存(归属头部、动态段、用户上下文)

四、Feature Gate 条件

以下功能条件性地修改系统提示词:

Feature影响代码位置
PROACTIVE启用自主运行模式,重构系统提示词prompts.ts:466-489
KAIROS自动模式变体,增加 Brief 段prompts.ts:552-554
KAIROS_BRIEF精简自动模式prompts.ts:552-554
TOKEN_BUDGETToken 预算管理指令prompts.ts:538-551
EXPERIMENTAL_SKILL_SEARCHDiscoverSkills 工具和提醒prompts.ts:333-341
CACHED_MICROCOMPACTFunction Result Clearing 段prompts.ts:821-839
BREAK_CACHE_COMMAND缓存破坏器注入context.ts:131-148
VERIFICATION_AGENT验证代理指令prompts.ts:391-395
TEAMMEM团队记忆系统memdir.ts
COORDINATOR_MODE协调器模式systemPrompt.ts:62-75
HISTORY_SNIP消息 ID 标签messages.ts
NATIVE_CLIENT_ATTESTATION客户端证明头部system.ts:82
CONTEXT_1M_BETA_HEADER1M 上下文窗口context.ts
CCR_AUTO_CONNECT远程连接config.ts
BASH_CLASSIFIERBash 分类器messages.ts
tengu_moth_copse (GrowthBook)跳过内存索引注入claudemd.ts:1142-1151
tengu_paper_halyard (GrowthBook)跳过项目级 CLAUDE.mdclaudemd.ts:1158-1166
tengu_attribution_header (GrowthBook)归属头部开关system.ts:52-57
tengu_agent_list_attach (GrowthBook)代理列表注入方式AgentTool/prompt.ts:59-64
tengu_toolref_defer_j8m (GrowthBook)工具引用延迟策略messages.ts
tengu_chair_sermon (GrowthBook)系统提醒合并策略messages.ts
tengu_amber_prism (GrowthBook)自动记忆纠正提示messages.ts

五、环境变量对系统提示词的影响

环境变量影响
CLAUDE_CODE_SIMPLE使用极简单提示词(仅身份 + CWD + 日期)
CLAUDE_CODE_DISABLE_CLAUDE_MDS禁用所有 CLAUDE.md 加载
CLAUDE_CODE_DISABLE_AUTO_MEMORY禁用自动记忆
CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD从额外目录加载 CLAUDE.md
CLAUDE_CODE_REMOTE跳过 Git 状态获取
CLAUDE_CODE_COORDINATOR_MODE启用协调器模式
USER_TYPE=antAnt 内部指令(更详细、更多安全检查)
CLAUDE_CODE_AGENT_LIST_IN_MESSAGES代理列表注入方式覆盖
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS禁用实验性工具
CLAUDE_CODE_MAX_CONTEXT_TOKENS覆盖上下文窗口大小
CLAUDE_CODE_DISABLE_1M_CONTEXT禁用 1M 上下文
CLAUDE_CODE_ATTRIBUTION_HEADER归属头部开关
SLASH_COMMAND_TOOL_CHAR_BUDGET技能列表字符预算覆盖

六、Mermaid 图表

系统提示词组装流水线

加载图表中...

缓存作用域分配

加载图表中...

CLAUDE.md 加载优先级

加载图表中...