金句: Agent 真正的护城河不是「知道什么」,而是「踩过哪些坑并且不再踩」。

Agent 真正变强,往往不是「模型更大」,而是少重复失败。世界模型视角提供一个第一性原理:智能体要在内部维护「世界如何响应我的动作」的压缩表示,并把失败写成可验证的经验。

金句: 智能体的差距,本质上是失败记录本的厚度差。

第一性原理三句话

flowchart LR
    A["假设"] -->|"动作"| B["观测"]
    B --> C{"一致?"}
    C -->|"是"| D["强化策略"]
    C -->|"否"| E["生成经验条目"]
    E --> F["写入约束库"]
    F --> G["下次自动触发"]
  1. Agent 每一步都在对世界做假设
  2. 失败 = 假设与观测不一致
  3. 进步 = 把不一致写进可复用约束,而不是只道歉重来

金句: 每一次「不一致」不是 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追踪经验时效性
关联 Skillfix-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
  1. 记录 — 保留动作序列与关键观测(不要只留最终答案)
  2. 归因 — 分清环境问题、提示问题、工具权限问题
  3. 压缩 — 提炼成规则或测试,删掉噪声对话
  4. 回放 — 用回归集验证「同类任务不再踩同一坑」

金句: 压缩不是遗忘,是把一千次失败蒸馏成一条规则。

评测怎么做

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 映射。仿真器强调「完整模拟」,世界模型强调「足够好用」——用最少的信息量做出正确的决策。

经验库会越积越大导致性能下降吗?

好的经验库需要定期「剪枝」。建议:

  1. 合并重复经验:相似场景的经验条目合并为一条,附带适用范围标签
  2. 设置 TTL:长期未触发且置信度低的经验自动标记为候选删除
  3. 分层存储:高频经验放入热路径(直接匹配),低频经验放入冷路径(需要检索)
  4. 定期回归:用回归集验证经验是否依然有效,过期的直接清理

怎么判断一条经验是否「可验证」?

可验证的经验必须满足三个条件:

  1. 有明确的验证方式:例如「指定测试命令必须转绿」
  2. 有清晰的适用范围:例如「仅 Node 单仓」
  3. 有可观测的输入输出:经验触发前后,行为差异应该是可测量的

世界模型适用于所有类型的 Agent 吗?

适用但有侧重:

  • 高价值场景:重复性任务多(代码修复、数据处理、客服)、失败成本高(金融、医疗)、环境复杂度高
  • 低价值场景:一次性任务、简单问答、环境完全可预测 核心判断标准是:**这个 Agent 是否会反复遇到同类失败?**如果是,就值得建经验库。

经验库和 RAG 有什么区别?

两者都是「外部知识」,但定位不同:

  • RAG:侧重从海量文档中检索相关信息,回答「世界上有什么」
  • 经验库:侧重自身积累的失败教训,回答「我自己踩过什么坑」 两者互补:RAG 提供通用知识,经验库提供个人化约束。一个健壮的 Agent 应该同时具备两者。

如何防止经验库中的错误经验被传播?

  1. 沙盒验证:新写入的经验必须先在沙盒环境中通过回归测试
  2. 置信度分级:验证次数越多,置信度越高,执行等级越高
  3. 人工审核:关键路径上的经验(涉及资金、安全)需要人工确认
  4. 版本回退:经验库本身做版本管理,出问题时快速回退

来源

概念框架为便于落地的转写提纲,公式与演示以源视频为准。