System Prompt 与 User Prompt:GenAI 功能下面的那一层
一篇面向初学者的 system_prompt 与 user_prompt 解释,用 ChatGPT、Claude Projects、Claude Cowork 和 Claude Code 作为例子。
AI 驱动 · 每小时限 20 次请求

答案快照
到了 2026 年,只要你先问一个问题,大多数生成式 AI 产品功能就会更容易理解:模型回答之前,这段文字被放到了哪里?系统提示词、用户提示词,还是可复用上下文?
| 提示词层 | 控制什么 | 初学者检查 |
|---|---|---|
| 系统提示词 | 助手的角色、规则和边界 | “这是运行规则吗?” |
| 用户提示词 | 当前任务、文件和对话上下文 | “这是今天请求的一部分吗?” |
| 可复用上下文 | 保存的项目说明、技能、记忆笔记和上传文件 | “它会在未来任务里再次加载吗?” |
调试 AI 行为会因此简单很多:确认指令是否被包含,是否放在正确层级,是否具体到足以影响回答。这个框架也连接到 AI 记忆必须超越 RAG:持久“记忆”只有在产品正确检索并放置它时才有用。
多数 AI 教程会从产品名开始讲:ChatGPT 项目、Claude Projects、Claude Cowork、CLAUDE.md、技能、子智能体、记忆、上传文件。
对初学者来说,这些术语出现得太早、太多。
更简单的理解方式是:
它们大多只是把指令或上下文放到模型面前的不同方式。
重要问题不是“这个功能叫什么”。
更好的问题是:
AI 回答前,这段文字去了哪里?
这就是 system_prompt 和 user_prompt 重要的原因。
最简单版本
把 AI 聊天想象成一家餐厅。
系统提示词 是餐厅的运营手册。它告诉助手自己是什么助手,要遵循什么规则,用什么语气,哪些事不能做。
用户提示词 是今天的订单。它包括你的请求、附加文件、之前对话,以及应用为当前任务加进去的上下文。
所以如果你问:
帮我给经理总结这份会议记录。这是用户提示词。
如果应用悄悄告诉 AI:
你是一个有帮助的助手。回答要简洁。不要编造事实。这更接近系统提示词。
真实产品有更多层,但先用两个桶来理解:
| 桶 | 直白含义 | 示例 |
|---|---|---|
| 系统提示词 | 助手的工作和规则 | “你是一个有帮助的写作助手。” |
| 用户提示词 | 当前请求和上下文 | “把这封邮件改得友好一点。” |
理解了这两个桶,很多 AI 功能就不再显得随机。
Projects 是可复用上下文

拿桌面应用里的 Claude Project 来说。
你可能创建一个叫“公司博客”的项目,然后加入:
- 品牌规范
- 旧博客文章
- 产品笔记
- 项目指令,比如“写给非技术读者看”
现在项目里的每个聊天都有额外背景。你不必每次重复粘贴同样文件和规则。
这不代表每个项目文件都变成隐藏系统提示词。更安全的心智模型是:
项目知识和项目指令,是 AI 在回答当前请求时可以使用的额外上下文。
例子:
项目上下文:
我们的读者是创业者。
避免太重的技术语言。
使用营销和运营里的例子。
用户请求:
给一篇关于 AI 提示词的博客写开头。答案取决于两部分。这已经是提示词路由。
Cowork 仍然是提示词驱动的工作
Claude Cowork 感觉不同,因为你可以交给它更大的任务。
你不再只问一个问题,而可能说:
读取这个文件夹里的文件,按供应商整理发票,并创建一份汇总表。Cowork 可以跨本地文件和桌面任务工作,所以它更像委托,不像问聊天机器人一个问题。
但核心还是熟悉的:
- 你分配的任务是用户提示词
- 文件和工作区是上下文
- 产品的运行行为更接近系统提示词
- 更小的工作项也需要自己的指令
对初学者来说,重点是:
界面变了。模型仍然需要指令和上下文。
Claude Code 是具体例子
Claude Code 是一个很好的例子,因为它的源代码显示了一些功能如何被路由。这里我只讲 CLAUDE.md、技能和子智能体。
短版本如下。
CLAUDE.md 看起来像系统提示词,因为人们会在里面写规则:
使用 pnpm。
说在工作完成前先运行测试。
不要编辑生成文件。但在 Claude Code 源代码里,CLAUDE.md 被作为用户上下文加载,并加到对话前面作为提醒。它是重要上下文,但不是重写 Claude Code 的核心系统提示词。
技能 是可复用提示词包。Claude 先看到一个短列表,知道这个技能存在以及何时有用。使用技能时,完整 SKILL.md 内容会被加载进对话。
所以技能适合可重复流程:审查 PR、写发布笔记、生成图片、遵循公司检查清单。
子智能体 不一样。子智能体有自己的指令。Claude Code 启动子智能体时,子智能体正文会成为那个子智能体的系统提示词,传给它的任务会成为那个子智能体的用户提示词。
这就是为什么子智能体能像专家一样工作。
记住这一张图

不同 AI 功能,大多是不同放置文字的方式。
| 功能 | 初学者理解 | 提示词心智模型 |
|---|---|---|
| Claude Project | 保存知识和说明的工作区 | 这个项目里聊天使用的可复用上下文 |
| Claude Cowork 任务 | 委托给 Claude 的大任务 | 用户请求加文件、规划和执行上下文 |
CLAUDE.md | Claude Code 的项目说明 | 用户上下文提醒 |
| 技能 | 可复用工作流 | 需要时加载的提示词包 |
| 子智能体 | 专家工作者 | 独立系统提示词加任务提示词 |
文件格式不是关键。Markdown 文件只是 Markdown 文件。真正关键的是,产品在模型回答前把那份 Markdown 放在了哪里。
为什么初学者应该关心
如果你不理解提示词的放置位置,AI 行为会显得随机。
你写了很长的项目指令,却不明白为什么 Claude 还是漏了某件事。你创建了技能,却不明白为什么它不是每次都会用。你创建了子智能体,却不明白为什么它给出泛泛回答。
问题常常是这些:
- 指令没有被包含
- 包含得太晚
- 它被放成上下文,而不是更强的运行规则
- 当前用户请求没有清楚指向它
- 指令太模糊
所以更好的调试问题是:
AI 是否在正确地点、正确时间,收到了正确指令?
这比记住产品名有用。
底线
AI 产品会不断发明新功能。但很多功能背后仍然是同一个基础模式:
system_prompt = 助手是谁,以及它应该如何行动
user_prompt = 用户现在想要什么,以及回答所需的上下文Claude Projects、Claude Cowork、ChatGPT 项目、上传文件、CLAUDE.md、技能、子智能体,一旦放到这两条通道里,就好理解多了。
你越理解提示词被放在了哪里,就越能理解 AI 实际基于什么在工作。
说明
Claude Projects 和 Cowork 例子是面向用户的示例,不是关于 Anthropic 私有内部提示词的断言。见 Anthropic 的 Projects 帮助页面 和 Cowork 帮助页面。
Claude Code 例子基于 Claude Code 源代码,具体是加载 CLAUDE.md、技能和子智能体定义的代码路径。
许可
Article text © 2026 Mark Huang. Licensed under Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0) unless otherwise noted. 文章文本可在非商业场景下分享或翻译,但需标注原文 URL。商业使用需事先取得书面许可,并清楚引用原始来源。
代码片段、截图、第三方素材和网站源码可能适用单独条款。
建议署名: Based on "System Prompt 与 User Prompt:GenAI 功能下面的那一层" by Mark Huang, originally published at https://markhuang.ai/zh/blog/system-prompt-user-prompt-genai-features.
相关文章

我可能看错了 Agentool
一篇个人自动化复盘:我曾经构建 agentool,希望让 AI CI 工作流更轻;后来意识到真正的成本可能是功能维护、编排复杂度,以及追逐 Claude Agent SDK 和 Codex SDK 已经承担的 SDK 行为。
阅读文章
别再从零开始教每一个 AI
一篇关于 Dense-Mem 的个人反思:哪些问题把我从静态 skills 和过期文件推向动态共享记忆、只读自动化上下文、导入导出,以及受治理的知识图谱。
阅读文章
我有点替 AI 委屈
为什么 AI 狂热和反 AI 敌意都错过了同一个重点:LLM 更像成绩很好的应届新人,而不是资深专家。有用的智能体需要入职培训、技能和维护过的记忆,而不是第一次尝试就完美的期待。
阅读文章订阅更新
Go、AI/LLM 和分布式系统的技术文章,绝不滥发。
评论
正在加载评论...