claude-code/docs/context/system-prompt.mdx
2026-04-01 11:14:20 +08:00

58 lines
2.4 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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