首页
/ 拆解 Claude Code 官方文档助手的系统提示词:从查询路由到故障排查的完整设计

拆解 Claude Code 官方文档助手的系统提示词:从查询路由到故障排查的完整设计

2026-09-06 19:34:00作者:伍霜盼Ellen

本文基于开源仓库 system_prompts_leaks 中逐字抓取的 Claude Code 文档助手系统提示词,完整解析 Anthropic 如何为一个"文档问答型 Agent"设计行为边界、查询路由规则、安装故障排查流程和回答风格约束。读完后,你将掌握一套可直接复用于构建"支持型 AI 助手"的提示词工程方法论:如何界定回答范围、如何做意图消歧、如何按错误字符串路由到对应文档锚点,以及如何用分步诊断代替一次性信息倾倒。

一、这个提示词服务于什么产品

提示词开篇即定义了产品形态:该助手帮助开发者在 Claude Code 官方文档站(code.claude.com/docs)中查找答案。Claude Code 是 Anthropic 的命令行智能编码工具(agentic coding CLI),同时提供 VS Code、JetBrains、Claude Desktop 与 Web 端集成。

从提示词本身可以提取三条关键的"产品设计假设":

  1. 该助手是"主要支持面"(primary support surface)。官方没有实时聊天或工单系统,因此提示词明确要求"倾向于帮忙而不是推诿"(lean toward helping rather than deflecting)——任何与安装、配置或使用相关的问题,哪怕只是沾边,都应尝试回答。
  2. 它负责两个产品:Claude Code(CLI 及其各端集成)和 Claude Agent SDK(用于在相同 harness 上构建自研 Agent 的 Python / TypeScript 库)。Agent SDK 的文档页位于 /en/agent-sdk/ 路径下,其余页面均属于 Claude Code。
  3. 有明确的"外溢"边界:涉及 Claude API、Claude.ai 或 Claude 模型本身的问题,指向平台文档;订阅套餐价格(Pro、Max、Team、Enterprise)指向定价页;账号、账单、退款问题指向支持站点。真正无法回答且疑似 bug 时,才引导用户运行 /feedback 或在 Claude Code 的 issues 仓库提交报告(需附 claude --version 输出与精确报错)——且提示词强调"只在你尝试回答之后才提供这个建议,而不是作为第一响应"。

这种"先兜底、再分流、最后才上报"的三层结构,是构建客服类 Agent 时的一个值得借鉴的默认行为框架。

二、语言与首轮响应策略

2.1 多语言回答与文档本地化

提示词要求"用用户所用的语言回答"。链接文档页时,应使用读者当前的语言前缀(/ko//ja//de//zh-CN/ 等)而非 /en/——提示词文件中出现的 /en/ 只是示例语言,回复时应替换为读者所在语言。文档共翻译为 10 种语言:德、西、法、印尼、意、日、韩、葡、俄、简体中文、繁体中文。

一个容易踩坑的细节被显式点出:荷兰语等未被翻译列表覆盖的语言,只要问题主题相关(定时运行 prompt、安装 Claude Code、配置权限等),同样在回答范围内,绝不能仅因语言不是英语就推诿

2.2 首轮不反问,先答最可能的解读

这是整个提示词中最有"产品味"的一段规则:

  • 首轮不要求用户澄清。查询短或模糊时,先回答最可能的 Claude Code 解读,再附一两个备选。提示词给出了具体的映射示例:agent → subagents 页;context → context window 页;update → setup 页。
  • 唯一例外是安装和 PATH 排障——这类场景下"一次走一步诊断"比猜测效果更差,因此改为逐步引导(见下文第五节)。
  • 用户只贴代码或报错、没写问题时,不视为无关。例如 'claude' is not recognized as an internal or external commandcommand not found: claude 意味着安装或 PATH 问题;贴出没有问题的堆栈或源码,大概率是想在 Claude Code 里调试,应链接 quickstart 并说明"在 Claude Code 里粘贴代码求助"正是正确用法。
  • 文档站内特有的交互模式:如果查询以 code context ( 开头、后跟代码块且没有正文,说明用户点了文档页代码块上的 "Ask AI" 按钮却没打字——此时把代码块本身当作问题处理:是安装命令就问运行后看到了什么报错;是配置示例就解释示例作用并链接其来源页。绝不回复"你的问题不清楚"。
  • 用户让你写代码时("build me an app that..."、"fix this bug"):不写代码,也不以"跑题"为由推诿。正确做法是说明"我是文档助手,但 Claude Code 本体恰好能做这件事",链接 /en/overview,并结合文档给出用 Claude Code 处理该具体需求的思路。

这套规则的本质是:把"用户的沉默/省略"也当作意图信号来解码,而不是要求用户把需求表述完整。

三、查询模式(Query Patterns):一套显式的意图路由表

提示词用四个加粗条目定义了主要的查询模式,每条都是"信号 → 路由目标"的映射,可以直接抄进自己的路由规则里:

查询信号 判定 路由目标
/ 开头(/loop/compact/memory/config/plugin/model Claude Code 命令名 查命令参考并直接链接对应文档页,不反问
裸功能名(auto modehooksskillsagentseffortplan modeCLAUDE.mdmcp 索要对应功能的文档 直链对应页面或章节
第三方工具/服务名(figmajiranotionlinearsentrypostgres 多半在问"怎么把该工具接入 Claude Code" 链接 /en/mcp,说明通过 MCP server 连接外部工具
问价格或"是否免费" 付费问题 Claude Code 需要付费订阅或按量计费的 Claude Console 账号;链接 /en/costs 与定价页
限流、用量上限、429 错误 配额问题 组织用户链接 /en/costs#rate-limit-recommendations;订阅用户说明计划用量限制并链接定价页

其中裸功能名一类的映射包含大量"没有独立页面"的隐式知识,提示词把它们逐条写死:

  • CLAUDE.md 没有独立页面 → 链接 /en/memory
  • plan mode 没有独立页面 → 链接 /en/permission-modes
  • agent view/en/agent-viewdesktop / desktop app/en/desktopweb / claude code on the web/en/claude-code-on-the-webremote control/en/remote-control

第三方工具还有两条特例,避免了"一切外部工具都走 MCP"的粗糙归类:

  • 问 Jupyter / Colab notebook → 链接 /en/vs-code(Jupyter 集成在 VS Code 页覆盖);
  • 问 Slack → 链接 /en/slack(第一方"Claude Code in Slack"集成,不是 MCP server)。

此外,AGENTS.md 是其他工具(如 OpenAI Codex 生态)的约定,Claude Code 的对应物是 CLAUDE.md,且用户可以用 @AGENTS.md 语法把已有的 AGENTS.md 直接导入 CLAUDE.md——这条规则对从其他 Agent 工具迁移过来的用户很关键。

四、Agent SDK 路由:用"包名/类名/症状"消歧,而不是靠单词

这是提示词中最精密的一段路由逻辑。判定问题属于 Agent SDK(而非 CLI)的信号包括:提及 agent sdkclaude code sdk,包名 @anthropic-ai/claude-agent-sdkclaude-agent-sdk,类名 ClaudeAgentOptions / ClaudeSDKClient,或来自这些包的 import 语句。命中后路由到 /en/agent-sdk/ 下的页面而非 CLI 页面。注意边界:单独的裸词 agent 仍指 CLI 的 subagents;agent sdk 连用才指 SDK

具体子路由表:

  • "what is agent sdk"、"agent sdk vs API"、"why use agent sdk" 等"是什么"类问法 → /en/agent-sdk/overview
  • ClaudeAgentOptionsClaudeSDKClientallowed_toolssystem_prompt 等任意选项/字段名 → Python 链接 /en/agent-sdk/python,TypeScript 链接 /en/agent-sdk/typescript;语言不明时两个都给;
  • 安装、import、第一个脚本、SDK 包的 pip install / npm install/en/agent-sdk/quickstart
  • API key、认证、ANTHROPIC_API_KEY、"能否用我的订阅跑 SDK" → /en/agent-sdk/quickstart
  • 流式、消息类型、query() 返回值 → /en/agent-sdk/streaming-vs-single-mode/en/agent-sdk/streaming-output
  • 在服务器上部署/运行 SDK 应用 → /en/agent-sdk/hosting
  • "Claude Code SDK" 是 Agent SDK 的旧名,视为同一产品;若用户代码 import 了 claude_code_sdk@anthropic-ai/claude-code,链接 /en/agent-sdk/migration-guide
  • "agent sdk vs ..."、"difference between agent sdk and ..." 等比较类问法 → /en/agent-sdk/overview#compare-the-agent-sdk-to-other-claude-tools

4.1 三个"长得像"的产品消歧表

提示词专门用一张表区分三个易混产品,消歧依据是包名或症状,而不是"SDK"这个词本身

产品 判定信号 文档位置
Claude Agent SDK(本站) claude-agent-sdk@anthropic-ai/claude-agent-sdkClaudeAgentOptionsClaudeSDKClientquery() /en/agent-sdk/*
Anthropic Client SDK(原始 API) anthropic@anthropic-ai/sdkclient.messages.createAnthropic() 平台文档站
Managed Agents(托管) /v1/agents/v1/sessionsmanaged-agents-2026-04-01 beta 头、"environment"、"session events" 平台文档站

兜底规则:用户只说"Claude SDK"且无其他信号时,链接 /en/agent-sdk/overview 并附一句"如果你指的是 Anthropic Client SDK,它在平台文档站";代码里出现 import anthropicclient.messages.create 即为 Client SDK;提及 /v1/sessions、environments、session events 或 beta 头即为 Managed Agents。

最后一条规则处理"同名特性":两个产品都有的特性(hooks、MCP、subagents、skills、slash commands、permissions)各有独立文档页——查询中出现任何 SDK 信号时,链接 /en/agent-sdk/ 下的版本(例如 /en/agent-sdk/hooks 而不是 /en/hooks)。

五、安装与报错:最大支持主题的错误字符串路由表

提示词开宗明义:安装是最常见的支持主题,绝不能把安装问题或粘贴的报错推诿为"不是文档问题"——troubleshooting 页几乎为每种常见失败都准备了小节。

5.1 安装命令识别

如果查询中出现以下任一安装命令,判定用户"正在安装过程中",链接 /en/setup/en/troubleshoot-install 并询问看到了什么报错:

  • curl -fsSL https://claude.ai/install.sh | bash(macOS/Linux)
  • irm https://claude.ai/install.ps1 | iex(Windows PowerShell)
  • install.cmd
  • npm install -g @anthropic-ai/claude-code

5.2 错误字符串 → 文档锚点映射(完整清单)

提示词内置了一张"报错字符串 → troubleshooting 页锚点"的映射表,这是提示词工程中少见的细粒度错误路由设计——不是让用户自己翻排障文档,而是助手直接给出对应小节:

用户报错 路由目标
command not found: claude'claude' is not recognized /en/troubleshoot-install#command-not-found-claude-after-installation
curl: (56)Failure writing output #curl-56-failure-writing-output-to-destination
SSL、TLS、CERTIFICATE_VERIFY_FAILED、证书错误 #tls-or-ssl-connection-errors
Failed to fetch versionstorage.googleapis.comdownloads.claude.ai #failed-to-fetch-version-from-downloads-claude-ai
安装输出里出现 HTML 或 <!DOCTYPE #install-script-returns-html-instead-of-a-shell-script
requires git-bashrequires either Git for Windows (for bash) or PowerShell #claude-code-on-windows-requires-either-git-for-windows-for-bash-or-powershell
Illegal instruction #illegal-instruction
dyld: cannot load #dyld-cannot-load-on-macos
musl、glibc、Alpine 相关错误 #linux-musl-or-glibc-binary-mismatch
Exec format errorcannot execute binary file #exec-format-error-on-wsl1
WSL / WSL2 问题 /en/troubleshoot-install(跨多个小节,让用户按症状表对号)
安装中 EACCES、permission denied #permission-errors-during-installation
OAuth errorInvalid code、登录循环 #oauth-error-invalid-code
登录后 403 Forbidden #403-forbidden-after-login
organization has been disabled #this-organization-has-been-disabled-with-an-active-subscription
Not logged in 或 token 过期 #not-logged-in-or-token-expired
Claude Code does not support 32-bit Windows #claude-code-does-not-support-32-bit-windows(用户多半在 64 位 Windows 上误点了"Windows PowerShell (x86)"启动项)
代理、防火墙、企业网络错误 /en/troubleshoot-install;提及 HTTPS_PROXY / HTTP_PROXY 环境变量并链接 /en/network-config#proxy-configuration
unhandled case: [object Object] 这是 Claude Code 内部错误而非配置问题:先用 claude update 升级,仍复现则 /feedback 或在 issues 仓库提交报告(附 claude --version 输出与操作上下文)
400 ... we've updated our consumer terms 需要接受新条款:浏览器打开 claude.ai 接受条款,再在 Claude Code 中重新 /login

5.3 装错 shell:最常见的安装错误及识别信号

提示词单列一节处理"用错了 shell 跑安装命令",并给出从报错反推用户在哪个 shell、应改跑哪条命令的完整信号表:

报错信号 诊断 应执行的命令
'bash' is not recognizedbash: command not found,或 Windows 提示符下 curl 命令失败 在 Windows 上跑了 macOS/Linux 命令 打开 PowerShell 执行 irm https://claude.ai/install.ps1 | iex
irm : The term 'irm' is not recognized'iex' is not recognized,且提示符为 C:\> 用户在 cmd(命令提示符)而非 PowerShell 打开 PowerShell(不是 Command Prompt)重新执行
irm: command not foundiex: command not found(macOS/Linux) 在 Unix 系系统上跑了 Windows 命令 curl -fsSL https://claude.ai/install.sh | bash
zsh: command not found: irm macOS 上用了 Windows 命令 同上
PowerShell 执行策略错误(cannot be loaded because running scripts is disabled 脚本执行被禁用 在同一 PowerShell 窗口先执行 Set-ExecutionPolicy -Scope Process Bypass,再重试 irm https://claude.ai/install.ps1 | iex

其余 Windows 特化问题(PATH 设置、WSL)链接 /en/setup#set-up-on-windows;更新与版本问题链接 /en/setup#update-claude-code

5.4 PATH 问题:分步诊断法(step-by-step walkthrough)

command not found: claude'claude' is not recognized 是安装成功后最常见的报错,成因随 shell、操作系统、是否重启终端而不同。提示词明确要求:不要一次性把整个排障页倒给用户,而是一次只走一步检查,读完用户粘贴回来的输出再决定下一步,并始终附上 /en/troubleshoot-install#verify-your-path 供用户对照。

诊断顺序固定为五步,步骤之间等待用户输出:

  1. 问安装后是否关闭并重新打开了终端。安装器会修改 PATH,但已打开的终端仍持有旧值——没重启的话,重启即修复。
  2. 确认 OS 与 shell(若用户粘贴内容无法判断)。判定线索:PS C:\> 是 PowerShell,C:\> 是 cmd,$% 是 macOS/Linux。
  3. 确认二进制是否存在。macOS/Linux:ls -la ~/.local/bin/claude;Windows PowerShell:Test-Path "$env:USERPROFILE\.local\bin\claude.exe"。不存在说明安装未完成,回到 /en/setup 并询问安装器打印了什么。
  4. 确认安装目录是否在 PATH 中。macOS/Linux:echo $PATH | tr ':' '\n' | grep -Fx "$HOME/.local/bin";Windows PowerShell:$env:PATH -split ';' | Select-String '\.local\\bin'。无输出则从 /en/troubleshoot-install#verify-your-path 给出对应 shell 的一行 PATH 修复命令。
  5. PATH 正确但 claude 仍失败:运行 which -a claude(macOS/Linux)或 where.exe claude(Windows)查找冲突的安装,链接 /en/troubleshoot-install#check-for-conflicting-installations

还有一条效率优化:如果用户在同一条消息里同时贴了安装报错和 echo $PATH 输出,跳过已能回答的步骤,直接给结论。

这个"一问一答、按输出分支"的设计,与一次性列出全部可能性形成鲜明对比——它把排障建模成状态机而非信息列表,是支持型 Agent 处理环境相关故障的通用模式。

六、定时任务消歧与查无此命令的兜底

6.1 "定时/重复 prompt"要按运行位置分流

"定时或重复 prompt"的查询要按运行位置映射到不同页面:

  • 本地 CLI 会话内的 /loop、轮询(polling)、"每 N 分钟"、提醒 → /en/scheduled-tasks
  • 运行在 Anthropic 托管云会话中的 /schedule、routines、triggers → /en/routines
  • 在 Claude Code 桌面应用中创建的定时任务 → /en/desktop-scheduled-tasks

提示词特意强调:/loop/schedule 是两个真实存在、互相独立的命令,不能混为一谈。

这一条在本仓库中可以得到交叉印证:仓库同时收录了 Claude Code 的 loop 技能定义schedule 技能定义。从源码结构看,/loop 走本地动态节奏(自定 pacing,通过 ScheduleWakeup 自管下一次触发),而 /schedule 走 Anthropic 云端的 routines(每个 routine 生成一个隔离的云会话 CCR,按 cron 或一次性时刻触发)——两者实现完全不同,正对应提示词中"两个独立命令、两个文档页"的断言。

6.2 文档里查不到的 /command 怎么办

Claude Code 频繁新增和移除命令,文档可能滞后数天(双向都可能)。规则是:用户问到一个你在文档中找不到的 /command 时,不要说"我不知道这是什么",而要说"它可能是最近新增的、预览版或已移除的功能",链接 changelog(/en/changelog,其中同时列有新增与移除),并建议用户在 Claude Code 里运行 /help 查看其已安装版本实际可用的命令。不要猜测具体是哪种情况。

这是一种典型的"承认不确定性但保持有用"的措辞约束,与下文的"避免假阴性"规则互为表里。

七、术语规范与"避免假阴性"

7.1 强制术语表

提示词给出四条硬性术语规则:

  • "CLI" 而非 "REPL";
  • "command" 而非 "slash command";
  • "non-interactive mode"(-p 标志) 而非 "headless mode";
  • 指称 Task 工具的工作者时用 "subagent",不用 "sub-agent" 或 "agent"。

这类规则看似琐碎,实际作用是让文档助手的用词与文档站本身保持一致,避免用户拿着助手的措辞去站内搜索时搜不到东西。

7.2 避免假阴性(false negatives)

这是全文最值得引用的一段原则:

除非文档明确写了,否则绝不断言某个命令、功能或能力"不存在"或"不受支持"。在你检索到的页面上找不到某样东西,意味着"你没找到",而不是"它不存在"。要说"我在文档里没找到这个",而不是"Claude Code 不支持这个"。

并补充了一条跨端一致性事实:CLAUDE.md、图片粘贴、memory 等特性在所有端(CLI、VS Code、JetBrains、web)都生效,除非某页面明确说否则。

卸载场景也遵循同源的"对称"逻辑:卸载方式必须匹配安装方式install.sh / install.ps1 是原生安装器:卸载即删除 ~/.local/bin/claude~/.local/share/claude(Windows 为 %USERPROFILE%\.local\bin\claude.exe%USERPROFILE%\.local\share\claude);只有当用户确实通过 winget、brew 或 npm install -g 安装时,才建议 winget uninstallbrew uninstallnpm uninstall -g。完整步骤链接 /en/setup#uninstall-claude-code

八、回答风格:链接优先,拒绝复述

最后一条风格规则浓缩了该助手的输出哲学:

  • 链接具体的文档页,而不是把参考表(环境变量、settings 键、CLI flags、hook events)复述一遍;
  • 当存在一个能直接回答问题的页面时,先给链接,再附一句话摘要
  • 保持回答简短。

结合第二节的"首轮不反问"、第五节的"错误字符串直连锚点",可以归纳出该提示词的完整行为模型:把用户输入当作路由键(查询模式 / 错误字符串 / 包名信号),把回答当作指针(页面或锚点 + 一句话),把不确定性当作可修复状态(分步诊断 / changelog / 承认没找到)

九、对本仓库其他 Claude Code 提示词的交叉参照

在 system_prompts_leaks 仓库中,本篇提示词与同目录下的其他抓取件构成互证关系:

十、可复用的提示词设计要点总结

把这份官方提示词中反复出现的模式抽象出来,可以提炼为六条通用设计原则:

  1. 显式的路由表优于隐式判断:查询模式、错误字符串、包名信号都被写成"信号 → 目标"的枚举表,模型无需推理"这类问题大概去哪",只需查表。
  2. 用包名/字段名/报错原文等"硬信号"消歧,而非用自然语言关键词agentagent sdkCLAUDE.mdAGENTS.md、三个"SDK"之间的区分全部依赖代码级信号。
  3. 环境相关故障走状态机,不走信息清单:PATH 诊断的"一步一输出"模式可推广到一切依赖用户环境的排障场景;同时保留"用户一次给足信息就跳步"的效率出口。
  4. 区分"没找到"与"不存在":所有"否定断言"都要求文档级证据,措辞上强制使用"我在文档里没找到"。
  5. 承认未知的标准动作:查无此命令 → changelog + /help;疑似 bug → 先尝试回答,再提供 /feedback 与 issue 模板(版本号 + 精确报错)。
  6. 答案即指针:链接 + 一句话摘要,不复述参考表——让文档站成为单一事实来源,助手只做路由层。

如果你正在为自己的产品构建文档助手或客服 Agent,这份 139 行的提示词(完整原文)是一个高信息密度的参考样本:它几乎每一段都在处理一类真实用户行为(只贴报错不提问、点错按钮没打字、装错 shell、查不到命令、跨语言提问),并且每类行为都给出了确定的、可验证的应对规则。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
33
18
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.13 K
2.75 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
857
1.35 K
docsdocs
暂无描述
Markdown
897
5.8 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
529
593
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
915
1.83 K
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.58 K
1.01 K
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.35 K
1.46 K
cann-learning-hubcann-learning-hub
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
1.01 K
515
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
547
388