金句: Agent 真正的护城河不是「知道什么」,而是「踩过哪些坑并且不再踩」。
Agent 真正变强,往往不是「模型更大」,而是少重复失败。世界模型视角提供一个第一性原理:智能体要在内部维护「世界如何响应我的动作」的压缩表示,并把失败写成可验证的经验。
金句: 智能体的差距,本质上是失败记录本的厚度差。
第一性原理三句话
flowchart LR
A["假设"] -->|"动作"| B["观测"]
B --> C{"一致?"}
C -->|"是"| D["强化策略"]
C -->|"否"| E["生成经验条目"]
E --> F["写入约束库"]
F --> G["下次自动触发"]
- Agent 每一步都在对世界做假设
- 失败 = 假设与观测不一致
- 进步 = 把不一致写进可复用约束,而不是只道歉重来
金句: 每一次「不一致」不是 bug,而是世界在告诉你「你的模型该升级了」。
「世界模型」在工程里长什么样
不必先上巨型仿真器。最小可用版本是一个经验压缩流水线:
flowchart LR
A[状态摘要] --> B[动作]
B --> C[观测]
C --> D[差异计算]
D --> E[经验条目]
E --> F[(约束库)]
F -.->|下次触发| A
style A fill:#e1f5fe
style E fill:#fff3e0
style F fill:#e8f5e9
核心循环:状态摘要 → 动作 → 观测 → 差异 → 经验条目
结构化经验条目
经验条目建议结构化存储,以便检索和回放:
| 字段 | 示例 | 作用 |
|---|---|---|
| 场景 | 「给依赖升级后单测红」 | 快速匹配当前上下文 |
| 错误信号 | 栈顶异常 / 断言文案 | 精确定位失败特征 |
| 错误动作 | 未读日志就改业务代码 | 标记要规避的行为 |
| 正确策略 | 先锁定失败用例再最小补丁 | 给出可执行的替代路径 |
| 验证方式 | 指定测试命令必须转绿 | 确保经验可被回归验证 |
| 适用范围 | 仅 Node 单仓 / 不含 monorepo | 防止经验被误用到不匹配场景 |
| 置信度 | 高/中/低 (基于验证次数) | 决定策略的强制执行等级 |
| 创建时间 | 2026-07-11 | 追踪经验时效性 |
| 关联 Skill | fix-test-failures | 与成功路径打通 |
金句: 没有结构化的失败记忆,只是聊天记录的另一种说法。
为什么「聊天记忆」不够
flowchart TB
subgraph 聊天记忆的局限
A1["不可检索"] --- A2["不可断言"]
A2 --- A3["不可版本管理"]
A3 --- A4["随上下文窗口丢失"]
end
subgraph 世界模型/经验库
B1["结构化索引"] --- B2["可断言验证"]
B2 --- B3["Git 版本管理"]
B3 --- B4["跨会话持久化"]
end
A1 -.->|"升级为"| B1
A2 -.->|"升级为"| B2
A3 -.->|"升级为"| B3
A4 -.->|"升级为"| B4
style 聊天记忆的局限 fill:#ffebee
style 世界模型/经验库 fill:#e8f5e9
对话历史很长,但不可检索、不可断言、不可版本管理。世界模型要的是:下次同类任务自动触发约束,而不是指望模型「还记得上周聊过」。
这与 Agent Skill 形成互补双翼:
| 维度 | Agent Skill (成功路径) | 世界模型/经验库 (失败路径) |
|---|---|---|
| 来源 | 人工编排的最优实践 | Agent 自主积累的失败教训 |
| 触发条件 | 明确的任务类型 | 匹配失败模式特征 |
| 输出 | 标准操作流程 (SOP) | 约束规则 + 规避策略 |
| 更新频率 | 低频 (人工审核) | 高频 (自动写入) |
| 验证方式 | 端到端回归测试 | 陷阱任务回放 |
金句: Skill 告诉你「怎么赢」,世界模型告诉你「别怎么输」——两者缺一不可。
把失败压缩的四步
flowchart LR
A["记录\n保留动作序列\n与关键观测"] -->|"完整轨迹\n非仅答案"| B["归因\n分清问题类型"]
B -->|"环境/提示词\n/工具权限"| C["压缩\n提炼规则或删除噪声"]
C -->|"可执行的\n规则或测试"| D["回放\n回归集验证"]
D -->|"同类任务\n不再踩坑"| E[("经验库\n约束生效")]
classDef step fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
classDef final fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px
class A,B,C,D step
class E final
- 记录 — 保留动作序列与关键观测(不要只留最终答案)
- 归因 — 分清环境问题、提示问题、工具权限问题
- 压缩 — 提炼成规则或测试,删掉噪声对话
- 回放 — 用回归集验证「同类任务不再踩同一坑」
金句: 压缩不是遗忘,是把一千次失败蒸馏成一条规则。
评测怎么做
flowchart LR
subgraph 评测体系
A["陷阱任务\n故意构造已知坑"] --> B["重复失败率\n第二次是否规避"]
B --> C["经验命中率\n新任务触发约束"]
C --> D["高风险拦截\nHarness 强制拦"]
end
classDef metric fill:#fff3e0,stroke:#e65100,stroke-width:2px
class A,B,C,D metric
评测指标优先级:
| 指标 | 计算方式 | 为什么重要 |
|---|---|---|
| 重复失败率 | 同类任务第二次失败次数 / 总次数 | 比单次成功率更能反映经验积累效果 |
| 经验命中率 | 触发约束的任务数 / 应触发任务总数 | 衡量经验库的覆盖度和召回率 |
| 陷阱任务通过率 | 已知坑的规避次数 / 陷阱总数 | 直接验证压缩效果 |
| 高风险拦截率 | Harness 拦截的危险动作 / 总危险动作 | 安全底线,不可妥协 |
实操方法:
- 故意构造已知陷阱任务,看 Agent 是否第二次规避
- 统计「重复失败率」比单次成功率更有信息量
- 对高风险动作(删库、付款、外发)强制 Harness 拦截
- 定期用回归集回放,验证经验是否过时
FAQ
Agent 世界模型和仿真器有什么区别?
世界模型是智能体内部对「环境如何响应我的动作」的压缩表示,不一定是完整的仿真器。工程实践中,它可以是一张经验表、一组约束规则,甚至是一个简单的 if-then 映射。仿真器强调「完整模拟」,世界模型强调「足够好用」——用最少的信息量做出正确的决策。
经验库会越积越大导致性能下降吗?
好的经验库需要定期「剪枝」。建议:
- 合并重复经验:相似场景的经验条目合并为一条,附带适用范围标签
- 设置 TTL:长期未触发且置信度低的经验自动标记为候选删除
- 分层存储:高频经验放入热路径(直接匹配),低频经验放入冷路径(需要检索)
- 定期回归:用回归集验证经验是否依然有效,过期的直接清理
怎么判断一条经验是否「可验证」?
可验证的经验必须满足三个条件:
- 有明确的验证方式:例如「指定测试命令必须转绿」
- 有清晰的适用范围:例如「仅 Node 单仓」
- 有可观测的输入输出:经验触发前后,行为差异应该是可测量的
世界模型适用于所有类型的 Agent 吗?
适用但有侧重:
- 高价值场景:重复性任务多(代码修复、数据处理、客服)、失败成本高(金融、医疗)、环境复杂度高
- 低价值场景:一次性任务、简单问答、环境完全可预测 核心判断标准是:**这个 Agent 是否会反复遇到同类失败?**如果是,就值得建经验库。
经验库和 RAG 有什么区别?
两者都是「外部知识」,但定位不同:
- RAG:侧重从海量文档中检索相关信息,回答「世界上有什么」
- 经验库:侧重自身积累的失败教训,回答「我自己踩过什么坑」 两者互补:RAG 提供通用知识,经验库提供个人化约束。一个健壮的 Agent 应该同时具备两者。
如何防止经验库中的错误经验被传播?
- 沙盒验证:新写入的经验必须先在沙盒环境中通过回归测试
- 置信度分级:验证次数越多,置信度越高,执行等级越高
- 人工审核:关键路径上的经验(涉及资金、安全)需要人工确认
- 版本回退:经验库本身做版本管理,出问题时快速回退
来源
- 视频:Agent 世界模型第一性原理:把失败压缩成可验证的经验 | AI Agent 深度解析
- 源网址:
https://www.youtube.com/watch?v=VrM_n0lNusQ
概念框架为便于落地的转写提纲,公式与演示以源视频为准。
读者讨论
精选 3 条 · 友善交流
【思考】把失败轨迹压缩成可验证经验,本质是「可回放的评测集」。没有断言与回归,所谓记忆只是日志堆积。
【实操】我们在内部用失败用例当 Skill 回归:同一错误第二次出现就拦截发布。文里的第一性原理和工程做法对得上。
【补充】少重复踩坑比多炫技能重要。Agent 团队如果只晒成功 demo,系统会越来越脆。