system-prompt.mdx 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. ---
  2. title: "System Prompt 动态组装 - AI 工作记忆构建"
  3. description: "深入解析 Claude Code 的 System Prompt 动态组装过程:如何将 CLAUDE.md、项目上下文、工具定义和用户偏好拼装为 AI 的工作记忆。"
  4. keywords: ["System Prompt", "系统提示词", "动态组装", "CLAUDE.md", "上下文构建"]
  5. ---
  6. {/* 本章目标:解释 System Prompt 的组装过程和设计思想 */}
  7. ## 什么是 System Prompt
  8. 每次调用 AI API 时,都需要发送一个 System Prompt——它是 AI 的"人设说明书",告诉 AI:
  9. - 你是谁(Claude Code,一个编程助手)
  10. - 你能做什么(可用工具列表)
  11. - 你在什么环境(操作系统、当前目录、git 状态)
  12. - 你需要遵守什么规则(安全规范、输出格式)
  13. ## 不是静态模板,而是动态组装
  14. Claude Code 的 System Prompt 不是一段写死的文本,而是根据当前环境**实时组装**的:
  15. <Frame caption="System Prompt 的 6 大组成部分">
  16. <img src="/docs/images/system-prompt-assembly.png" alt="System Prompt 动态组装图" />
  17. </Frame>
  18. | 组成部分 | 内容 | 来源 |
  19. |----------|------|------|
  20. | 基础人设 | 角色定义、行为准则 | 内置模板 |
  21. | 环境信息 | 操作系统、shell 类型、当前日期 | 运行时检测 |
  22. | Git 状态 | 当前分支、最近提交、工作区状态 | `git` 命令输出 |
  23. | 项目知识 | CLAUDE.md 文件内容 | 项目目录层级扫描 |
  24. | 记忆文件 | 用户偏好、项目约定 | 持久化记忆系统 |
  25. | 工具说明 | 每个可用工具的描述和参数 | 工具注册表 |
  26. ## CLAUDE.md:项目级知识注入
  27. 这是 Claude Code 最巧妙的设计之一。在项目根目录放一个 `CLAUDE.md` 文件,就能让 AI "理解" 你的项目:
  28. - **项目概述**:这个项目做什么、用了什么技术栈
  29. - **开发约定**:代码风格、命名规范、分支策略
  30. - **常用命令**:怎么构建、怎么测试、怎么部署
  31. - **注意事项**:已知的坑、特殊的配置
  32. 系统会自动发现并合并多级 CLAUDE.md:
  33. ```
  34. ~/.claude/CLAUDE.md ← 用户全局(个人偏好)
  35. └── /project/CLAUDE.md ← 项目根目录(团队共享)
  36. └── /project/src/CLAUDE.md ← 子目录(模块特定)
  37. ```
  38. ## 缓存策略
  39. System Prompt 的 token 消耗不小(可能占总量的 30%+)。为了降低成本,系统使用了缓存机制:
  40. - 不变的部分(基础人设、工具说明)可以跨请求复用
  41. - 变化的部分(git 状态、记忆文件)每次重新生成
  42. - 缓存节点的位置经过精心设计,最大化缓存命中率