你以为 System Prompt就是一堆文字?人家把它做成了9层架构,每一层都有明确的设计权衡。
前两天看到大佬@servasyy_ai发了一篇贴子:《OpenClaw Agent System Prompt架构详解 v2.1》。本来以为是普通的技术文档,结果一看——好家伙,他把一个System Prompt拆成了9层,还画了架构图!
更绝的是,每一层都写了设计权衡:为什么这么设计?有什么好处?代价是什么?看得我直接跪了。
今天我就用大白话,把这“九层妖塔”拆给你看。看懂这个,你就能理解为什么你的token消耗总是控制不住。
看不懂直接丢给你的openclaw看,看完让它照这优化。
新手只需要知道这两层:
- Layer 7(工作区文件):你想改Agent的性格、规则?直接改这里的.md文件
- Layer 8(Bootstrap Hook):你想动态注入实时信息?用这个写脚本
其他层都是框架自动生成的,看看就行,别手贱去改。
常见需求对应:
- 想让Agent有个性?→ 改 Layer 7 的
- 想塞项目文档?→ 用 Layer 8 的
- 想注入当前时间/天气?→ 用 钩子
- 嫌Prompt太长烧钱?→ 调 配置
就像操作手册的“使用说明”
这层告诉LLM三件事:
- 你是谁(身份设定)
- 你能做什么(能力边界)
- 怎么回应(输出格式)
实际长这样:
💡 设计权衡:灵活vs一致
- 决策:框架统一生成,保证所有Agent基础行为一致
- 好处:用户不用重复配置、框架升级自动获得新能力
- 代价:用户改不了核心规则,特殊需求只能去Layer7/8绕路
就像瑞士军刀的说明书
每个工具都用JSON Schema写得死死的:
💡 设计权衡:灵活vs类型安全
- 决策:用严格的JSON Schema定义工具参数
- 好处:LLM理解更准、调用前可验证参数、自动生成文档
- 代价:加新工具要写完整Schema,没法玩动态参数
就像餐厅的“特色菜谱”
框架自动扫描 目录,里面的技能全给Agent学会。
💡 设计权衡:灵活vs维护成本
- 决策:自动扫描目录,不用手动注册
- 好处:加新技能扔文件夹就行,所有Agent自动学会
- 代价:没法精确控制每个Agent用啥技能,所有技能都塞进Prompt(token狂涨的元凶之一!)
就像“快捷键”
给复杂模型起短名字: 代替
💡 设计权衡:灵活vs可读性
- 决策:允许为常用模型定义别名
- 好处:调用简单、支持多Provider切换、方便A/B测试
- 代价:要维护别名配置文件,不同Agent可能同名不同模型
就像“交通规则”
定义Agent怎么和系统交互:
- Silent Replies:用户说“收到”,Agent回
- Heartbeats:系统心跳检查,Agent回
💡 设计权衡:自由vs一致
- 决策:定义标准化交互协议
- 好处:所有Agent行为一致、可自动化监控、多Agent协作不乱
- 代价:限制了Agent的自由发挥,LLM可能不守规矩
就像“仪表盘”
每次请求都告诉LLM:
- 当前时间
- 当前模型
- 运行环境
- 操作系统
💡 设计权衡:token消耗vs上下文准确
- 决策:每次请求都注入最新运行时状态
- 好处:LLM不会犯“现在是2023年”的低级错误
- 代价:每次请求多花~2KB token
就像“你的工作笔记”
这是你能直接改的静态文件:
- :定义Agent性格
- :写协作规则
- :记事儿(建议让MemOS自动管)
💡 设计权衡:框架稳定vs用户自由
- 决策:把“变”和“不变”分离,框架层保证一致,用户层允许个性
- 好处:可定义身份、可版本管理、框架升级不炸配置
- 代价:改不了框架核心行为,得学TELOS框架
就像“可编程注射器”
四种玩法:
- agent:bootstrap(最猛)
完全控制文件数组,可以增删改、重排序
- bootstrap-extra-files(简单)
只追加文件,不改现有的
- before_prompt_build(实时)
发消息前修改Prompt,适合注入当前时间
- bootstrapMaxChars(限重)
单文件默认20K,总计150K,超了按头70%+尾20%截断
💡 设计权衡:静态简单vs动态灵活
- 决策:在静态文件之外提供动态Hook机制
- 好处:可根据上下文动态注入、可执行shell命令、支持条件判断
- 代价:要学Hook语法,脚本写崩了Prompt就炸
就像“实时路况”
每次请求动态注入:
- 谁在说话
- 对话历史
- 是否被@
💡 设计权衡:token消耗vs对话连贯
- 决策:每次请求都注入最新上下文
- 好处:LLM知道谁在说话、记得前文
- 代价:每次~3KB token,历史可能带噪音
很多人以为“用户可控”就是改配置文件,其实OpenClaw给了3种控制方式:
真正能省token的,就是Layer 7和Layer 8!
Layer 7优化:
- ✅ 用表格代替长篇大论
- ✅ 让MemOS自动管,别手写
- ❌ 别重复描述框架已经知道的事
- ❌ 别把Skills说明复制进来
Layer 8优化:
- ✅ 简单场景用
- ✅ 需要条件判断用
- ✅ 需要实时上下文用
- ❌ 别在Hook里干耗时操作
- ❌ 别用不稳定的外部依赖
超长文件处理:
- 默认截断策略:头70% + 尾20%,中间不要了
- 为啥?因为文档中间通常最水
看完这篇拆解,我才明白:OpenClaw的System Prompt不是一坨文字,而是一个精心设计的软件架构。
- Layer 1-6:框架自动搭,稳如老狗
- Layer 7-8:用户来装修,个性拉满
- Layer 9:实时情报,保持在线
每一层都有明确的设计权衡——知道为什么这么设计,比知道怎么配置更重要。
原文里有完整的架构图和代码示例,想看原汁原味的技术文档,可以找@servasyy_ai的置顶帖。
最后手动艾特大佬:这九层妖塔的拆解,属实是喂到嘴边的龙虾了!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/230759.html