拆解 OpenClaw 的大脑:一个 AI 助手的 System Prompt 是怎么炼成的


拆解 OpenClaw 的大脑:一个 AI 助手的 System Prompt 是怎么炼成的

你有没有好奇过,当你跟一个 AI 助手说话时,它究竟是如何”知道”自己是谁、能做什么、该怎么回答你的?

答案就藏在一个叫 System Prompt(系统提示词) 的东西里。

最近,@servasyy_ai 在推特发了一篇深度长文,对 OpenClaw Agent 发给大语言模型的完整 System Prompt 进行了逐层拆解。这篇文章的质量之高,作者自称是「呕心沥血肝出来的」。

我把它翻译整理成了更通俗的版本,希望让更多人看懂这背后的设计逻辑。

OpenClaw Agent System Prompt 架构详解

先说清楚:什么是 System Prompt?

在你跟 AI 对话之前,系统会偷偷给 AI 发一段”内部说明”。这段说明告诉 AI:

  • 你是谁(身份)
  • 你能用什么工具(能力边界)
  • 你要遵守哪些规则(行为准则)
  • 你现在处于什么环境(运行状态)

这就是 System Prompt。普通用户看不到它,但它深刻影响着 AI 的每一个回答。

OpenClaw 的 System Prompt 不是随便写的一段话,而是一套精心设计的 9 层架构


9 层架构总览

OpenClaw 9层架构总图

简单来说,这 9 层可以分为三类:

  • Layer 1~6:框架自动生成,用户不能动
  • Layer 7~8:用户可以自定义,这是你真正能控制的部分
  • Layer 9:每次对话都动态注入,实时更新

下面我们逐层拆解。


Layer 1:框架核心层——“说明书”

比喻:就像一本操作手册的使用说明,告诉 AI 你是谁、能做什么、应该怎么回应。

这一层是 OpenClaw 框架自动生成的基础配置,包括:

  • AI 的身份定义(比如”你是一个内容创作专家 Agent”)
  • 当前时间和运行环境
  • 工具调用的格式规范
  • 安全边界(哪些操作是绝对禁止的)
Layer 1 框架核心层示例

设计思路:
框架统一生成这一层,好处是所有 Agent 行为基线一致,坏处是用户无法直接修改。如果你需要特殊行为,只能通过后面的 Layer 7 和 8 间接实现。


Layer 2:工具定义层——“瑞士军刀清单”

比喻:就像瑞士军刀的工具清单,告诉 AI 手上有哪些工具、每个工具怎么用。

这一层列出了 AI 可以调用的所有工具,比如读取文件、执行代码、发送消息等。

每个工具都有严格的 JSON Schema 定义,确保 AI 准确理解工具用法。

Layer 2 工具定义层示例

为什么这样设计?

用严格的 JSON Schema 定义工具,AI 能更准确地理解”什么时候用哪个工具、需要填什么参数”,减少胡乱调用工具的情况。


Layer 3:技能注册表——“特色菜谱”

比喻:就像餐厅的特色菜谱,告诉 AI 有哪些专业领域的”配方”可以调用。

OpenClaw 有一套 Skills(技能)系统。框架会自动扫描技能目录,把所有可用技能都告诉 AI。

Layer 3 技能注册表

优点: 添加新技能只需把文件放入目录,无需改配置。

代价: 所有技能都会被注入 System Prompt,技能越多,消耗的 token 越多。


Layer 4:模型别名层——“快捷键”

比喻:就像给复杂的模型路径起个简短的别名,方便调用。

比如,你可以把 zhipu/glm-5 简称为 glm-5,把冗长的 Claude API 地址简称为 opus

Layer 4 模型别名配置

这样在对话中切换模型时只需输入 /model glm-5,而不需要记住一串复杂的 API 路径。


Layer 5:协议规范层——“交通规则”

比喻:就像交通规则,定义 Agent 与系统交互的标准协议。

这一层定义了一些特殊的交互约定,比如:

  • Silent Replies(静默回复):用户说”收到”,AI 不需要回复,直接返回 NO_REPLY
  • Heartbeats(心跳检测):系统定期发送 [Heartbeat Poll],AI 回复 HEARTBEAT_OK 表示在线
  • Reply Tags(回复标签):AI 在回复中标注这条消息是回复哪一条
Layer 5 协议规范层

这些看似小细节的设计,是让多 Agent 协作成为可能的基础。


Layer 6:运行时信息层——“仪表盘”

比喻:就像汽车仪表盘,实时告知 AI 当前运行状态。

每次请求都会注入最新的环境信息:

  • 当前时间(避免 AI 不知道今天是哪天)
  • 正在使用的模型(避免 AI 误判自己的能力边界)
  • 当前操作系统、工作目录、shell 环境
Layer 6 运行时信息

代价: 每次请求消耗约 2KB 额外 token,但换来的是上下文准确性,值得。


Layer 7:工作区文件层——“你的工作笔记”(用户可控)

重点来了!这是你可以直接编辑的层。

比喻:就像你的工作笔记,你可以自由写入自己的配置。

这一层包含若干静态 Markdown 文件,用户可以直接编辑:

文件 作用
IDENTITY.md 定义 Agent 的身份、风格、价值观
AGENTS.md 配置可调用的子 Agent
MEMORY.md AI 的长期记忆
TOOLS.md 额外的工具说明
Layer 7 工作区文件层

实用建议:

  • 想改变 AI 的”性格”或”说话风格”?修改 IDENTITY.md
  • 不要把框架已经知道的内容重复写进去,会浪费 token
  • 保持精简,用表格代替长段落,效果更好

Layer 8:动态注入层——“可编程的注射器”(用户可控)

这是第二个用户可控层,也是最强大的一层。

比喻:就像一个可编程的注射器,你可以写脚本,在对话开始前自动注入内容。

Layer 8 提供了 4 种 Hook(钩子)机制:

Layer 8 四种 Hook 机制

Hook 1:agent:bootstrap(最强大)

完全控制 System Prompt 的文件列表,可以增删改排序,适合复杂定制场景���

Hook 2:bootstrap-extra-files(最简单)

通过配置文件指定额外文件路径,框架会自动把这些文件内容追加到 System Prompt 末尾。

适用场景: 你有项目文档(比如 API 说明、架构文档),想让 AI 每次都知道这些内容。

{
  "hooks": {
    "bootstrap-extra-files": {
      "enabled": true,
      "paths": ["docs/API.md", "docs/ARCHITECTURE.md"]
    }
  }
}

Hook 3:before_prompt_build(最灵活)

在每次发送给 AI 之前,可以动态修改 prompt,或在 prompt 前追加实时上下文。

适用场景: 注入实时天气、当前 Git 状态、股票价格等动态信息。

on("before_prompt_build", (event, ctx) => {
  return {
    prependContext: `当前时间:${new Date().toISOString()}`
  };
});

Hook 4:bootstrapMaxChars(控制大小)

控制每个文件和总 System Prompt 的字符上限,避免 token 超出限制。


Layer 9:入站上下文层——“实时路况”

比喻:就像实时路况信息,每次请求都动态注入当前对话的上下文。

这一层包括:

  • 当前发送者信息(是谁在说话)
  • 消息历史(最近的对话)
  • 是否被 @ 提及(决定是否需要响应)
Layer 9 入站上下文层

这一层用户无法直接控制,但你的每一条发言都会影响它——因为你发的消息本身就是上下文的一部分。


各层 Token 大小对比

各层 Token 大小对比表

注意:Layer 7 和 8 是用户可控层,大小因配置不同而差异很大。其他层由框架自动生成,理论上各 Agent 相同。


普通用户最需要知道的三件事

读完这 9 层,你可能会觉得”太复杂了”。但其实对普通用户来说,只需要记住三点:

1. 想改 AI 的身份和风格?
→ 编辑 Layer 7IDENTITY.md 文件

2. 想让 AI 知道你的项目文档?
→ 用 Layer 8bootstrap-extra-files Hook 注入文件

3. 想注入实时数据(时间、天气、状态)?
→ 用 Layer 8before_prompt_build Hook

用户可控机制总结

其他 7 层是框架自动处理的,你了解它们的存在、知道它们的作用,就已经比 90% 的用户更懂 AI 了。


System Prompt 太大怎么办?

如果你的 System Prompt 越来越臃肿,可以参考以下优化策略:

精简 Layer 7(静态文件):

  • 用表格代替长段落
  • 删除框架已经知道的内容(不要重复)
  • 不要把技能说明复制进去

控制 Layer 8(Hook 注入):

  • 不要在 Hook 里执行耗时操作
  • 不要一次注入太多文档
  • 优先使用 bootstrap-extra-files(最简单),复杂场景才用 agent:bootstrap
System Prompt 优化建议

总结

OpenClaw 的 System Prompt 不是一段随便写的话,而是 9 层精心设计的架构

层级 名称 谁控制 作用
Layer 1 框架核心层 框架 基础身份、规则、安全边界
Layer 2 工具定义层 框架 工具清单和调用规范
Layer 3 技能注册表 框架 可用技能目录
Layer 4 模型别名层 框架 模型快捷方式
Layer 5 协议规范层 框架 标准交互协议
Layer 6 运行时信息层 框架 实时环境状态
Layer 7 工作区文件层 用户 静态配置文件(身份、记忆)
Layer 8 动态注入层 用户 脚本动态注入内容
Layer 9 入站上下文层 框架 实时对话上下文
OpenClaw System Prompt 完整组装流程

理解这套架构,不只是为了用好 OpenClaw,更重要的是建立一种对 AI 系统的”透视力”——知道 AI 为什么会这样回答你,知道从哪里可以改变它的行为。

你控制的不只是对话,而是 AI 大脑的底层结构。


原文作者:@servasyy_ai,版本 v2.1,更新时间 2026-03-05。本文为通俗化整理版本,部分表述有所简化。


文章作者: Onefly
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Onefly !
评论
  目录