---
title: "System Prompt 动态组装 - AI 工作记忆构建"
description: "深入解析 Claude Code 的 System Prompt 动态组装过程：如何将 CLAUDE.md、项目上下文、工具定义和用户偏好拼装为 AI 的工作记忆。"
keywords: ["System Prompt", "系统提示词", "动态组装", "CLAUDE.md", "上下文构建"]
---

{/* 本章目标：解释 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 状态、记忆文件）每次重新生成
- 缓存节点的位置经过精心设计，最大化缓存命中率
