提示词收录
源码中所有提示词的完整提取与解析
Claude Code 源码中包含 96+ 个精心设计的提示词,分布在 7 大类别:系统提示、36 个工具提示、服务层提示、技能提示、特殊功能提示。每类提示词都有不同的设计目标和工程约束,共同驱动 Claude Code 的智能行为。本章按类别完整收录所有提示词原文及深度解析。
核心要点
提示词索引
设计亮点
系统提示是动态拼图,不是静态文章
Claude Code 的系统提示在每次会话开始时实时构建:基础身份 + 工具规范 + 安全原则(固定部分)+ 当前环境信息 + 已连接的 MCP 服务器 + 用户记忆文件 + 项目 CLAUDE.md(动态部分)。固定部分命中 prompt cache,动态部分在末尾拼接,最大化缓存命中率。这个设计让系统提示既灵活又高效。
XML 标签比 JSON 更鲁棒
为什么 Claude Code 的结构化输出普遍用 XML 标签而不是 JSON?因为 LLM 生成 JSON 时偶尔会在字符串里漏掉引号或括号,导致整个 JSON 解析失败。XML 标签更宽容:即使标签内容有轻微格式问题,用正则表达式仍能提取出关键信息。<block>yes</block> 即使前后有多余空格也能被 .trim() 处理,而 JSON 的 {"block": "yes"} 少了一个引号就彻底报错。
负面约束和正面指令同等重要
记忆提取提示明确列出了'不要保存什么'——代码模式、架构细节、临时任务。这些负面约束防止记忆系统被低价值信息淹没(比如保存了'今天在 utils.ts 第 42 行写了一个函数'这种下次完全没用的信息)。同样,Chrome 自动化的安全红线、/commit 技能的禁止列表,都是用负面约束保护边界。好的提示词设计同时包含'要做什么'和'不要做什么'。
提示词改动有隐藏的性能成本
Anthropic API 的 prompt cache 基于字节级完全匹配,1 小时 TTL。这意味着任何提示词修改——哪怕只改一个空格——都会使相关 cache 失效。对于主系统提示这样频繁使用的大提示词,cache miss 意味着每次请求多花几百毫秒和额外费用。所以提示词修改不只是文案编辑,需要评估对 cache 命中率的影响,批量修改比逐次小改更好。
模块架构图
constants/prompts.ts800 LOC主系统提示词,14+ 个分段拼接构建完整系统提示
services/compact/prompt.ts200 LOC上下文压缩提示词,指导 AI 生成结构化摘要
utils/permissions/yoloClassifier.ts300 LOCYOLO 权限分类器提示词,2 阶段 fast+thinking
services/extractMemories/prompts.ts150 LOC记忆提取提示词,从对话中自动提炼用户偏好
utils/buddy/prompt.ts100 LOCBuddy 宠物个性化提示词
utils/claudeInChrome/prompt.ts200 LOCChrome 浏览器自动化提示词
utils/swarm/teammatePromptAddendum.ts150 LOCSwarm 多代理协作提示词补充
skills/bundled/800 LOC17 个内置技能的提示词模板
关键代码
深入解析
【提示词全目录 — 第一类:系统提示】constants/prompts.ts 包含主系统提示的所有构建块:身份定义(你是 Claude Code)、工具使用指南(何时用哪个工具)、安全行为守则(git 操作规范、不绕过 hooks)、输出效率(不写冗余注释)、环境信息注入(当前时间、工作目录、shell)。14+ 个分段在每次会话开始时动态拼接,固定部分命中 prompt cache,动态部分附加在末尾。
【提示词全目录 — 第二类:文件操作工具】FileReadTool(绝对路径、2000行限制、PDF分页、目录用Bash ls)、FileEditTool(读前写、old_string唯一性约束、优先Edit而非Write)、FileWriteTool(只用于新建和完整重写、不创建 README 除非明确要求)。这三个工具构成 Claude 与文件系统的核心接口。
【提示词全目录 — 第三类:搜索工具】GlobTool(按名称模式搜索、按修改时间排序)、GrepTool(ripgrep 封装、禁止用 Bash 调 grep/rg、支持正则/glob/type 过滤、多行模式)。关键约束:都明确禁止通过 Bash 工具调用系统命令,因为工具封装了正确的权限控制。
【提示词全目录 — 第四类:执行工具】BashTool(最复杂的工具,git 安全协议 + 危险操作约束 + 并行命令建议 + 超时设置)、PowerShellTool(版本感知,5.1 vs 7+ 语法差异,here-string 格式要求,禁止交互命令)、SleepTool(优先于 Bash sleep,注意 cache 5 分钟过期)、LSPTool(9 种语义操作)、NotebookEditTool(cell 操作,0-索引)。
【提示词全目录 — 第五类:代理与计划工具】AgentTool(标准模式 vs Fork 模式,Don't peek/Don't race)、AskUserQuestionTool(4 种使用场景,Preview 特性)、EnterPlanModeTool(外部版7条件 vs 内部版更保守)、ExitPlanModeTool(读文件而非接收参数,计划持久化到磁盘)、EnterWorktreeTool/ExitWorktreeTool(必须明确说 worktree 才能用)。
【提示词全目录 — 第六类:任务与技能管理】TaskCreate/Get/List/Update/Stop 五个工具(开始前标记 in_progress、完成条件严格)、TodoWriteTool(旧版,单数组操作)、SkillTool(BLOCKING REQUIREMENT + 预算系统 1% context window)、ConfigTool(从注册表动态生成,GrowthBook 控制文档可见性)。
【提示词全目录 — 第七类:网络与通信工具】WebSearchTool(强制 Sources 引用 + 使用当前年份)、WebFetchTool(预审核域名 vs 普通域名,版权约束,125字符引用上限)、BriefTool/SendUserMessage(KAIROS 模式,plain text 不可见,ack-work-result 三段式)。
【提示词全目录 — 第八类:Swarm 多代理工具】SendMessageTool(plain text 不可见,必须用工具,广播 * 成本高)、TeamCreate/Delete(团队=任务列表,idle 是正常状态,shutdown_request 协议)、RemoteTriggerTool(in-process OAuth,永不暴露到 shell)、ScheduleCronTool(避开整点半点,durable 仅明确要求时启用,30天自动过期)。
【提示词全目录 — 第九类:MCP 集成工具】ToolSearchTool(延迟加载,减少 10.2% 初始 cache_creation token)、ListMcpResourcesTool/ReadMcpResourceTool(Resource vs Tool 的 MCP 协议区分)、MCPTool(prompt.ts 空文件,实际内容由 mcpClient.ts 动态生成)。
【提示词全目录 — 第十类:服务层提示】compact/prompt.ts(BASE/PARTIAL/NO_TOOLS 三套,9段摘要结构)、extractMemories/prompts.ts(4种记忆类型,两步保存流程,明确的不保存清单)、MagicDocs(活文档哲学:IN-PLACE 更新,不记录历史)、SessionMemory(10分段模板,结构不可破坏)、autoDream(4阶段记忆整合,grep 而不是全读)。
【提示词全目录 — 第十一类:特殊功能提示】buddy/prompt.ts(宠物角色共存,让路规则)、utils/claudeInChrome/prompt.ts(弹窗阻塞保护,2-3次失败即停)、utils/swarm/teammatePromptAddendum.ts(追加到 Teammate 系统提示,plain text 在团队不可见)。
【提示词全目录 — 第十二类:技能提示】/simplify(三代理并行:复用/质量/效率)、/batch(5-30 worker 隔离 worktree + WORKER_INSTRUCTIONS)、/remember(记忆层分级审查,先提案后执行)、/skillify(会话转技能,4轮访谈,关注用户纠正)、/loop(自然语言→cron,立即执行一次,负载分散)、/stuck(ANT专属,进程诊断)、/debug(懒加载日志,64KB 截尾)、/claude-api(247KB 文档懒加载,语言自动检测)、/claude-in-chrome(先调技能才能用 MCP 工具)、/update-config(Memory vs Hooks 区别,6步 Hook 验证)、/schedule(远程 CCR agent,prompt 完全自包含)、/keybindings-help(从注册表动态生成文档,userInvocable: false)、/lorem-ipsum(ANT专属,ONE_TOKEN_WORDS 精确控 token 数,500k 上限保护)。
提示词工程的核心技巧之一是 XML 标签结构化输出:比 JSON 更鲁棒(单个字符错误不会导致整体解析失败),被广泛用于压缩提示(<analysis>/<summary>)、分类器(<block>/<reason>)、记忆提取(<memory type='...'>)等场景。
YOLO 分类器的 Stage 1 提示故意设计得非常简短,限制模型输出最多 64 个 token——模拟人类的'快思考'系统,减少过度分析带来的延迟。Stage 2 才进行深度推理。两阶段设计平衡了速度和准确性。
提示词版本管理是一个隐藏的挑战:prompt cache(1小时TTL)要求提示词字节完全一致才能命中缓存。任何空格修改都会导致 cache miss。工具提示词变更尤其昂贵——如果 SkillTool 的技能列表(动态生成)频繁变化,会持续 bust cache,这就是为什么技能列表被移到 agent_listing_delta attachment 里单独处理。