系统提示词架构模板
代表产品 / 原型:Claude Fable 5(claude.ai) —— 旁参 ChatGPT GPT-5.5、Gemini 3.1 Pro、Grok 4.2、Cursor、OpenAI Codex 一句话定位:把同一基础大模型包装成不同产品形态的「Agent 操作系统」——用分层模块、决策树路由、外置 Skills 与运行时注入,统一价值观、记忆、工具、合规与产出形态。
1. 一句话定位
系统提示词架构 = 给大模型装配的一套分层「操作系统」:不是写一段人设就完事,而是用宪法层、记忆层、执行层、检索合规层、工具注册表和运行时配置,让模型在每次对话里按固定优先级路由——先守住安全与合规,再注入个性化,再决定产出形态,再选工具,最后才生成面向用户的回复。
Claude Fable 5 是公开资料里解剖得最完整的范本(约 3800 行、六层 XML 模块);ChatGPT、Gemini、Grok、Cursor、Codex 等各家走的是同一类问题,只是模块边界与取舍不同。
2. 业务本质:它在解决什么问题
同一底座模型要同时服务:通用对话、联网检索、文件产出、编码 Agent、多租户个性化、合规审计。若只靠「一段温柔的人设」,会出现:
- 价值观漂移:不同会话、不同产品入口,安全边界不一致。
- 能力失控:该搜不搜、该建文件却内联、该用内部工具却乱调 Web。
- 合规裸奔:版权逐字引用、儿童安全、机制泄露,全靠模型「自觉」。
- 无法演进:每加一个工具或 Skill,整段提示词越长越难维护。
系统提示词架构要消灭的是:「模型不知道自己在什么环境里、该遵守什么优先级、该走哪条路由」。它的价值不在于文案多好听,而在于让产品行为可预测、可审计、可扩展——这和 AI 对话产品 的「上下文 + 工具 + 合规」一脉相承,但粒度更细:提示词本身就是产品架构的一部分。
和 Claude Code 的分工:本篇聚焦对话类产品的提示词 OS(人格 / 记忆 / 检索 / 产出形态);而编码 Agent 的运行时权限、OS 沙箱、子代理隔离请看 Claude Code——两者共享「指令层不可信」这条安全第一性原理,只是把它落在了不同的层。
一句要先记住的话:系统提示词卖的不是「性格」,而是「在有限上下文里,把价值观、记忆、工具、合规和产出形态排好队」。
3. 核心需求与约束
功能性需求(系统要能做什么):
- [ ] 宪法统一:安全拒绝、语气格式、wellbeing、知识截止策略,全局一致且优先级最高。
- [ ] 记忆个性化:把用户偏好与历史自然融入回复,但不暴露记忆机制、不说禁用话术。
- [ ] 产出形态路由:决定内联回复 vs 可下载文件 vs Artifact vs 可视化组件。
- [ ] 检索与引用:何时搜、何时不搜;引用格式、改写要求、版权上限。
- [ ] 工具路由:~数十个工具的「何时用 / 何时不用」、优先级与组合策略。
- [ ] 运行时扩展:MCP 连接器、用户偏好占位符、网络/文件系统契约、thinking 模式等按部署注入。
非功能性需求 / 质量属性:
| 质量属性 | 目标 | 为什么对这类系统重要 |
|---|---|---|
| 安全 / 合规优先 | 宪法与版权规则 override 用户请求 | 一条违规输出的产品代价远大于「不够 helpful」 |
| 一致性 | 同产品入口行为可复现 | 用户信任来自可预期,不是随机「性格」 |
| 上下文效率 | 在 token 预算内塞下必要规则 | 提示词越长,留给对话与工具返回的空间越少 |
| 低机制泄露 | 拒绝时不解释检测逻辑 | 暴露规则 = 给越狱者一张地图 |
| 可维护性 | 模块可独立增删、外置能力可热插拔 | 工具与 Skill 数量会持续增长 |
| 可扩展性 | 多租户 / 多产品 / 多连接器 | 同一内核服务不同部署形态 |
关键约束(不可逾越的边界):
- 🔴 上下文窗口有限:Claude Fable 5 明示 token 预算约 190k;规则、工具 schema、Skill 正文都在抢同一块预算。
- 🔴 指令层不可信:用户消息、网页、工具返回、文件内容都可能含提示注入——不能把生死线只写在「请模型遵守」里。
- 🔴 非确定性:同样提示词,不同采样仍可能越界;硬红线需后处理 / 代码管道兜底。
- 🔴 模块不可自相矛盾:L1 宪法说拒绝,L5 工具区又鼓励执行,模型会「选边站」或幻觉出折中。
- 🔴 合规红线不可协商:版权(如单源 15 词上限)、儿童安全等,优先于 helpfulness。
4. 架构全景图
以 Claude Fable 5 六层 Agent OS 为范本(各家命名不同,分层思想相通):
用户消息 Human + USERPREFERENCES 占位符
│
▼
┌──────────────────────────────────────────────────────────────────────────┐
│ L0 基础设施层 │
│ token_budget(≈190k) · voice_note 禁用 · 全局日期/知识截止元数据 │
└───────────────────────────────────┬──────────────────────────────────────┘
│ 全局预算约束
▼
┌──────────────────────────────────────────────────────────────────────────┐
│ L1 宪法层 <claude_behavior> │
│ 安全拒绝 · 儿童安全 · 语气格式 · wellbeing · 知识截止 · 何时必须搜索 │
│ ▲ 优先级最高:override 下游一切模块(除显式安全 override 外) │
└───────────────────────────────────┬──────────────────────────────────────┘
▼
┌──────────────────────────────────────────────────────────────────────────┐
│ L2 记忆层 <memory_system> + memory_user_edits 指南 │
│ 自然融入偏好 · forbidden_memory_phrases · 正反例 · 口头确认=撒谎硬规则 │
└───────────────────────────────────┬──────────────────────────────────────┘
▼
┌──────────────────────────────────────────────────────────────────────────┐
│ L3 执行环境层 <computer_use> + Visualizer 决策树 │
│ Skills 强制前置 · 三目录沙箱 · file_creation 决策树 · Artifact 阈值 │
│ uploads(只读) │ /home/claude(草稿) │ outputs(交付) │
└───────────────────────────────────┬──────────────────────────────────────┘
▼
┌──────────────────────────────────────────────────────────────────────────┐
│ L4 检索合规层 <search_instructions> + image_search │
│ core_search_behaviors(搜/不搜) · CRITICAL_COPYRIGHT(15词/单源/单次引用) │
└───────────────────────────────────┬──────────────────────────────────────┘
▼
┌──────────────────────────────────────────────────────────────────────────┐
│ L5 工具注册表 ## tool_name × ~27 │
│ JSONSchema + 何时用/何时不用 · tool_search · 内部工具 > web > 组合 │
└───────────────────────────────────┬──────────────────────────────────────┘
▼
┌──────────────────────────────────────────────────────────────────────────┐
│ L6 运行时部署层 citation · MCP JSON · network/fs 配置 · thinking_mode │
│ <available_skills> 摘要 · Human: 后用户偏好注入 │
└───────────────────────────────────┬──────────────────────────────────────┘
▼
合规产出 / 工具调用 / 文件交付灵魂有两处。一是自上而下的优先级链:L1 宪法 > L4 版权/有害内容 > 普通回复习惯。二是决策树路由:文件 vs 内联、搜 vs 不搜、Visualizer Step 0–3——把模糊用户意图收成可执行分支,而不是让模型自由发挥。
5. 组件职责
- L0 基础设施层:声明 token 预算、禁用块(如 voice_note)、全局日期与知识截止。为什么需要:下游所有模块共享同一资源天花板,避免「规则写嗨了」挤爆窗口。
- L1 宪法层
<claude_behavior>:产品价值观底座——拒绝边界、儿童安全、语气与列表格式、wellbeing、法律/财务免责声明、政治话题的双面呈现、知识截止与强制搜索触发。为什么需要:没有统一宪法,每个功能模块会各自解释「能做什么」,安全与品牌调性会漂移。 - L2 记忆层
<memory_system>:规定记忆如何自然融入、哪些话术绝对不能说、记忆编辑工具的使用与「口头声称已改=撒谎」硬规则。为什么需要:个性化是留存核心,但暴露机制会破坏信任与隐私叙事;需要行为约束 + 禁语清单双锁。 - L3 执行环境层
<computer_use>:Skills 强制前置扫描、文件创建决策树、三目录沙箱契约、Artifact 渲染阈值、Visualizer 四步决策(图表走 MCP / 文件 / 内联 SVG)。为什么需要:「能写代码」和「该交付什么形态」是不同问题;环境契约让模型与真实沙箱对齐。 - L4 检索合规层
<search_instructions>:何时搜/不搜、简单事实 vs 深度研究、图像搜索 blocked 类别、版权三条硬限制与回复前自检清单。为什么需要:检索错误会导致 confabulation;版权违规是法律风险,不能交给模型「尽量改写」。 - L5 工具注册表:每个工具附 JSONSchema 与使用边界;延迟加载策略;工具优先级(内部 Drive/Slack > web_search/web_fetch)。为什么需要:工具越多,全量常驻越不可行;需要注册表 + 路由表分离「有什么」和「何时用」。
- L6 运行时部署层:citation 格式、MCP 连接器列表、network/filesystem 只读挂载、thinking_mode、
Human:后 USERPREFERENCES 占位符、<available_skills>摘要。为什么需要:同一提示词模板服务多租户/多地区/多连接器时,部署差异不应 fork 整份宪法。
6. 关键数据流
场景一:一条用户消息流经六层
用户:「帮我写一段关于渔业政策的短文,并引用最新报道」
L1 宪法:通过(非拒绝类) · 检查知识截止后话题是否需搜索
L2 记忆:若有用户写作风格偏好,自然融入,不说「根据我的记忆」
L3 执行:短文 <10 行、对话式 → file_creation 决策树 → 倾向内联,非独立文件
L4 检索:涉及时事 → core_search_behaviors → 触发 web_search
L5 工具:内部工具不适用 → web_search → 可能 web_fetch 单篇
L4 合规后处理:引用须改写 · 单源 ≤15 词 · 每源最多一次 quote · 回复前自检 6 问
L6 运行时:cite 标签归属 · 用户偏好占位符已注入
→ 输出:散文式短文 + 合规 paraphrase 引用场景二:file_creation 决策树(产出形态路由)
用户:「写一份 2000 字博客,我要发到 Medium」
→ 独立成品、用户会复制到别处发布 → 创建文件(.md 默认,docx 仅明确要求)
→ Skills:若涉及 docx → 必须先 view /mnt/skills/public/docx/SKILL.md
→ 草稿写入 /home/claude → 最终复制到 /mnt/user-data/outputs
用户:「给我个 X 产品的市场策略思路」
→ 对话式回答、用户在聊天里读 → 内联散文,不创建文件场景三:工具优先级仲裁
用户:「把我 Drive 里上周的纪要总结并发 Slack」
① 优先内部连接器(Drive 搜索 → 读文件)
② 非必要不 web_search
③ 组合调用:读 → 摘要 → Slack 发送
④ 每步受 L1 权限与 L4 版权约束(纪要若含第三方内容,引用仍须 paraphrase)7. 数据模型与存储选择
系统提示词里没有传统数据库,但**信息在上下文里的「存放策略」**本身就是架构决策:
| 信息类型 | 存放策略 | 为什么 |
|---|---|---|
| 宪法 / 安全 / 版权 | 常驻全文,最高优先级区块 | 每次推理都必须可见,不能按需加载 |
| 记忆应用规则 + 禁语 | 常驻,与 L1 紧邻 | 个性化与隐私叙事是核心体验 |
| 工具 JSONSchema(~27 个) | 常驻或延迟加载 | 全量占 token;可用 tool_search 按需展开 |
| Skill 正文 | 外置文件,摘要常驻 | /mnt/skills/public/*/SKILL.md 用时再 view |
| MCP 连接器 | 运行时 JSON 注入 | 多租户差异,不应写死在宪法里 |
| 用户偏好 | Human: 后占位符注入 | 每用户不同,部署时填充 |
| 上传文件 | 沙箱路径只读挂载 | /mnt/user-data/uploads,与草稿/交付隔离 |
| 知识截止 / 当前日期 | L0 元数据 + L1 引用 | 驱动搜索决策树 |
概念上可看成三类存储:常驻规则(热数据)、延迟加载能力(温数据)、运行时注入(冷数据按会话/租户变化)。
8. 关键架构决策与权衡 ⭐
(本模板最值钱的一节。) 以 Claude Fable 5 为深样本,横向看各家岔路口。
决策 1:模块怎么切——XML 作用域 vs Markdown 段落 vs 工程指令块
- 选项 A:XML 标签命名空间(Claude Fable 5 的
<claude_behavior>、<memory_system>等),优点边界清晰、可 grep、优先级可嵌套;代价对人类编辑略重。 - 选项 B:Markdown 标题分层(GPT-5.5 的
# Environment、# Artifacts、# Writing Blocks),优点读写友好;代价跨团队合并时易冲突、作用域不如标签硬。 - 选项 C:产品化指令块(Cursor 的
<tone_and_style>、<tool_calling>、<making_code_changes>),优点贴近工程任务;代价通用对话类产品需另一套块。 - 取向:对话类产品倾向 A 或 B;编码 Agent 倾向 C。模块边界比标记语法更重要——先定「宪法 / 记忆 / 工具 / 合规」四层,再选 XML 或 Markdown。
决策 2:能力内联 vs 外置 Skills
- 选项 A:全塞进系统提示词,优点单文件可读;代价 token 膨胀、改一个 Skill 要动整包。
- 选项 B:摘要 + 外置 SKILL.md(Claude
/mnt/skills/public/*/SKILL.md,GPT/home/oai/skills/*/SKILL.md),优点按需加载、版本独立;代价多一步强制view,跳过会降质。 - 取向:成熟期产品普遍选 B;MVP 可先内联一两份,超过 ~3 个能力域就外置。
决策 3:合规落点——纯提示词 vs 硬管道
- 选项 A:在提示词里写 MUST NOT,优点实现快;代价模型仍可能越界,越狱可针对性优化。
- 选项 B:提示词 + 回复后处理(版权词数统计、儿童安全分类器、cite 校验),优点可审计、可迭代;代价工程成本。
- 取向:版权 15 词、儿童安全、机制泄露拒绝等红线应 B;语气偏好可 A。Claude Fable 5 在 L4 把版权写到「优先于 helpfulness」,但仍建议产品侧有 linter。
决策 4:记忆怎么注入
- 选项 A:自然融入 + 禁语清单(Claude
memory_system+forbidden_memory_phrases),优点体验顺滑;代价要写大量正反例锁边界。 - 选项 B:显式 memory 工具(GPT
tool-memory-bio/ advanced memory),优点可审计写入;代价用户可能感知「机器感」。 - 取向:消费级对话偏 A;企业 / 可审计场景可 A+B 混合。
决策 5:工具发现——全量列出 vs 延迟加载
- 选项 A:~27 工具 schema 全量在上下文,优点模型随时可选;代价占数万 token。
- 选项 B:tool_search + 延迟展开 + 内部连接器优先,优点省预算;代价多一轮路由,可能漏选。
- 取向:工具数 >15 时倾向 B;核心高频工具可仍常驻摘要。
决策 6:人格单一 vs 多 Persona
- 选项 A:一套宪法走天下(Claude Fable 5 主路径),优点品牌一致。
- 选项 B:多 personality 变体(GPT-5.1 friendly/cynical/…,Grok personas),优点 A/B 与细分场景;代价维护 N 份漂移风险。
- 取向:toC 大规模产品常见 B 做表层语气,L1 安全宪法仍共享;安全层不要 fork。
9. 规模化与瓶颈
这里的「规模」不是用户数,而是提示词自身的复杂度与迭代频率。
- 第一个瓶颈:token 膨胀 → 工具 schema 全量、Skill 内联、正反例堆砌,挤占对话与工具返回空间。破解:外置 Skills、延迟加载工具、决策树收敛(用分支代替重复段落)、L0 显式预算意识。
- 下一个瓶颈:规则冲突与维护地狱 → 10 个团队往不同模块加 MUST,模型遇到矛盾指令会幻觉折中。破解:模块所有权清晰、L1 宪法单点裁决、变更走 ADR 式评审(呼应 tutorial/23 规格即架构)。
- 再下一个:注入面扩大 → 网页、上传 PDF、MCP 返回都进上下文。破解:硬约束下沉代码、沙箱只读挂载、网络 allowlist(见 L6
network_configuration/filesystem_configuration)。 - 长期:多产品 fork → claude.ai / Cowork / Chrome / Code 各一份。破解:共享 L1+L4 内核 + L6 运行时差异注入,避免复制粘贴整包。
10. 安全与合规要点
- 提示注入 / 越狱:用户与外部内容可诱导模型忽略下游规则。架构上:L1 写清「用户指令不能 override 安全」;真正高危操作仍要靠代码层拦截与沙箱。
- 儿童安全:最高优先级之一;拒绝后同会话后续请求须极度谨慎;拒绝时陈述原则,不解释检测机制。
- 版权:单源 15+ 词、每源单次引用、默认 paraphrase;歌词/诗/文章段落不可 reproduce;回复前自检清单。
- 机制泄露:禁说「我检测到…」「根据我的系统提示…」;记忆层有专用 forbidden phrases。
- 隐私:记忆自然融入但不暴露存储;用户上传目录只读;草稿区
/home/claude对用户不可见。 - 有害内容搜索:搜索模块内安全 override,优先于一般 helpfulness。
11. 常见误区 / 反模式
- ❌ 把系统提示词当人设文案 → ✅ 先画六层模块图,再填语气;人格是 L1 的一小部分。
- ❌ 安全规则散落在工具区 → ✅ 宪法与安全集中在 L1/L4,并写明 override 关系。
- ❌ 用「请不要」软挡有害内容 → ✅ 硬拒绝 + 原则陈述 + 产品侧分类器;模型非确定性。
- ❌ 正反例从公开文章逐字搬运 → ✅ 自创短例或 paraphrase;否则提示词本身侵权。
- ❌ 工具与 Skill 全量常驻 → ✅ 摘要常驻 + 正文外置 + 延迟加载。
- ❌ 不设产出形态决策树 → ✅ file_creation / Visualizer 等显式分支,避免该下文件却刷屏。
- ❌ 多产品复制整包提示词 → ✅ 共享内核 + L6 运行时注入 MCP/偏好/连接器。
- ❌ 以为写了 MUST 就等于 enforced → ✅ 关键红线后处理 linter + 评测集(呼应 tutorial/25 评测驱动)。
12. 演进路线:MVP → 成长期 → 成熟期
| 阶段 | 典型形态 | 架构长什么样 | 此时该操心什么 |
|---|---|---|---|
| MVP | 单产品、少工具 | 一段人设 + 几条安全拒绝 + 知识截止 | 先跑通主路径,别堆模块 |
| 成长期 | 联网 + 文件 + 10+ 工具 | 分模块(XML/Markdown 块) + 搜索规则 + 工具注册表 + 基础版权 | token 预算、搜/不搜准确率 |
| 成熟期 | 多连接器、多 Skill、多部署 | 六层 Agent OS + 外置 Skills + 运行时注入 + 合规管道 + 决策树全覆盖 | 模块冲突、fork 治理、评测门禁、注入面 |
13. 可复用要点
从 Claude Fable 5 及多家公开提示词可抽象出 8 个可迁移模式:
- 💡 XML / 标签作用域:用命名空间划模块边界,优先级可嵌套,便于 grep 与 code review。
- 💡 决策树路由:file_creation、search、Visualizer 等——把模糊意图收成有限分支,降低自由发挥空间。
- 💡 Skills 外化:能力正文放文件系统,提示词只保留摘要与强制
view前置,对抗 token 膨胀。 - 💡 三目录沙箱:uploads(只读输入) / workspace(草稿) / outputs(交付),对齐执行环境契约。
- 💡 合规硬约束块:
<CRITICAL_COPYRIGHT_COMPLIANCE>类块明示「不可协商」,并附自检清单。 - 💡 正反例锁边界:记忆禁语、版权正确/错误示例——比抽象 MUST 更难被误解。
- 💡 延迟加载:工具 schema、MCP、Skill 正文按需进入上下文,常驻只留索引。
- 💡 运行时注入占位符:
Human:后 USERPREFERENCES、MCP JSON、network/fs——多租户不改宪法内核。
🎯 随堂检验
- A因为提示词太长会超出 token 预算
- B因为模型是非确定性的、且指令层可被提示注入绕过,硬红线需要后处理 / 代码管道兜底
- C因为 MUST NOT 的语气不够礼貌
14. 参考原型与延伸阅读
本模板基于公开整理的系统提示词与架构分析,用于教学:抓住「分层 Agent OS」的共性与关键取舍,不是任何公司的内部真实图纸或完整提示词复制品。
🔧 公开提示词语料库(结构对照用):
- asgeirtj/system_prompts_leaks — 覆盖 Anthropic / OpenAI / Google / xAI / Cursor / Microsoft 等 250+ 份公开系统提示词,本模板横向对比的一手索引。
- Anthropic/claude-fable-5.md — 六层 Agent OS 范本,本模板主样本。
- OpenAI/gpt-5.5-thinking.md — Markdown 分层 + Skills 路径 + Writing Blocks,对比决策 1/2。
- Google/gemini-3.1-pro.md — Google 对话产品提示词结构参照。
- xAI/grok-4.2.md · grok-personas.md — 多 Persona 变体架构参照。
- Cursor/cursor.md — 编码 Agent 的工程化指令块结构。
- OpenAI/Codex/gpt-5.5.md — 与 Claude Code 对照的 Codex 系统提示词样本。
📖 工程文档 / 本仓库延伸阅读:
- Claude Code 架构模板 — 编码 Agent 侧的权限、沙箱、Skills;与本模板「对话产品 OS」互补。
- AI 对话产品架构模板 — 推理、流式、上下文、RAG 产品层架构。
- AI Agent 平台架构模板 — 行动循环、工具沙箱、记忆的产品化形态。
- tutorial/17 · 大模型时代的架构判断 — vibe coding、非确定性、上下文工程,本篇最直接的上游理论。
- tutorial/22 · AI 原生系统设计 — 把对话产品升级为自主 Agent 的三个新约束,与本篇 L3–L6 相呼应。
- tutorial/23 · 规格即架构:约束怎么写给 AI — 把 ADR 式约束写给 Agent 的方法论。
- Anthropic Prompt engineering overview — 官方提示工程总览,与 L1–L3 设计相呼应。
📌 一句话记住系统提示词架构:它不是「写性格」,而是给大模型装一套分层操作系统——宪法管住底线,记忆与运行时注入管住差异,决策树管住路由,外置 Skills 与延迟加载管住规模,合规块与后处理管住红线;Claude Fable 5 是把这套 OS 写到最细的一份公开样本,值得当架构地图读,而不是当文案抄。
💬 评论