Agent Plan × DeepSeek Harness:可交互世界模型

一、引言与背景:为什么 Agent 需要一双"看得见未来"的眼睛

过去两年间,大语言模型驱动的 Agent 完成了从"单轮问答助手"到"多步工具执行主体"的跃迁。越来越多的业务场景开始相信:只要给模型足够的工具、足够的上下文和一套重试机制,它就能替人完成复杂的操作链路。然而,跃迁带来的并不仅仅是能力边界的扩张,更是一系列此前被刻意回避的结构性缺陷。其中最尖锐的一条,是 Agent 在真实环境中长期处于"盲飞"状态——它执行一个动作,看到即时反馈,然后执行下一个动作,却始终无法回答三个最基本的问题:这个动作为什么会失败?如果换一种方式执行,结果会怎样?下一次遇到类似局面,我该依据什么来决策?

这三个问题之所以关键,是因为它们恰好对应着人类行动智能中最朴素的机制:积累经验、建立因果、进行推演。一个经验丰富的工程师在部署系统时,不会等到服务崩溃才意识到配置有问题;一个老练的客服在接到投诉时,会依据既往案例预判用户的真实诉求。支撑这种能力的,是长期实践中形成的"世界模型"——关于环境如何运转、动作如何引发结果、哪些条件必须满足的内部表征。而今天的 LLM Agent,在大多数实现里恰恰缺失这一层。

从学术脉络看,世界模型(World Model)并非新概念。2018 年 Ha 与 Schmidhuber 提出的 World Models 框架首次系统展示了"先学习环境的压缩表征与预测模型,再在内部表征中进行规划"的范式;随后 Hafner 等人提出的 Dreamer 系列又将这一思想推进到基于潜在空间想象的强化学习,使智能体可以在不与环境真实交互的情况下"脑内推演"成千上万条轨迹。这些工作在机器人控制、游戏智能等领域取得了令人瞩目的成果,但它们的共同假设是:环境是稳定可采样的、交互成本是可控的、学习过程可以离线进行。这套假设在真实业务场景中往往不成立——工具会超时、接口会变更、数据会缺失、反馈会延迟,环境并非一个可以被反复采样的无摩擦空间。

这正是本系列《Agent Plan × DeepSeek Harness》所要讨论的场景。按照本系列的术语口径,Agent Plan 指 Agent 的规划层,它把复杂目标拆解为带契约的结构化先验;DeepSeek Harness(下文简称 DSH)则是 2026 年 8 月 13 日开源的 Model+Harness=Agent 框架,强调模型能力与工程化执行框架的协同。在这样一个框架语境下,世界模型不再需要是一套离线训练的神经网络,它可以、也应该被重新定义为一个"可交互"的动态结构:随每一次工具调用持续吸收观测,随每一次失败持续修订预测,并在每次规划前为 Planner 提供推演证据。

我们把这种形态称为"可交互世界模型"(Interactive World Model)。它与经典世界模型有三点本质差异。第一,它的更新不是梯度式的,而是结构式的——通过增量修改记忆结构、转移统计与规则库来逼近环境规律,不需要重训任何模型参数。第二,它不追求对环境的完备建模,而只追求对"当前任务相关因果"的足够表征——精度够用即可,成本可控优先。第三,它不是规划之外的附属品,而是规划本身的操作对象——计划不再是一次生成、静态执行的序列,而是在世界模型上不断推演、校验、修订的动态过程。

本文将以 DSH 为执行骨架,完整展开可交互世界模型的设计与实现。第二节给出核心概念与原理的形式化定义;第三节讨论它在 DSH 中的技术架构与数据流落位;第四节详细拆解世界模型更新的关键算法与推演方法;第五节通过最小闭环模拟实验展示其收益与局限;第六节给出可直接运行的最小原型代码;第七节总结并展望后续演进方向。

无世界模型的Agent

执行动作

观察即时反馈

再次试错

有世界模型的Agent

读取世界模型

推演候选计划

执行动作并观察

更新世界模型

上图中左侧的循环是当前大部分 Agent 的真实写照:执行、反馈、再执行,经验以隐式方式存在于对话历史里,随上下文窗口的滚动而流失。右侧的循环则引入了显式的认知结构:每一次交互的结果都被沉淀为可查询、可推演、可跨任务复用的知识。两者的区别,正是"盲飞"与"有地图飞行"的区别。

二、核心概念与原理:从环境到可交互世界模型

要对可交互世界模型给出可实现的定义,先要形式化它建模的对象。一个任务环境 E 可以表示为五元组:状态空间 S、动作空间 A、转移函数 T(s,a)→s’、观测函数 O(s,a)→o、反馈函数 R(s,a)→r。真实环境的问题是,T 与 R 对 Agent 不可见,Agent 只能通过反复执行动作、观察观测、接收反馈来间接学习它们。传统强化学习通过大量交互样本逼近 T;LLM Agent 则往往连"逼近"都省了,完全依赖模型内生的常识来猜测环境行为。

可交互世界模型 W 由此定义为三元组:W = (Ŝ, M, P)。其中 Ŝ 是 Agent 维护的状态表征集合,它不必等于真实状态空间 S,只需覆盖任务相关的关键维度;M 是经验记忆结构,承载历史观测、动作与反馈的事件流;P 是预测器,负责回答 P(s’|s,a) 与 P(r|s,a) 两类条件概率。关键在于,W 的三个组成部分都必须是可交互的:可感知——能接收来自 DSH 执行层的新观测;可更新——在接收到观测与反馈后能增量修订自身;可推演——支持在内部进行假设性执行而不真正触碰环境。

“可交互"的三个层次构成能力梯度。第一层是可感知(Perceivable),这是最基础的要求:世界模型必须接入 Harness 的观测流,看到每次工具调用的输入输出、报错信息与状态变迁。现实中相当比例的 Agent 实现连这一层都没有——它们把历史一次性塞进上下文,靠提示词里的自然语言描述来"回忆"环境状态。第二层是可更新(Updatable):世界模型在每次反馈后增量修正自身的预测,而不是随上下文滚动而遗忘。这一层的关键是更新策略的设计——如何合并冲突的证据、如何给低置信度的预测降权、如何防止经验缓冲无限膨胀。第三层是可推演(Simulatable):世界模型支持 Planner 在内部执行"如果……会怎样"的假设检验。这一层把世界模型从"记忆仓库"提升为"推演沙盘”,是它可以支撑规划、评估计划收益、检验反事实的核心能力来源。

在 Agent Plan 的语境下,世界模型扮演着三重角色。其一,它是规划的先验提供者:Planner 在生成候选计划前,先查询世界模型获取当前环境的关键约束、已知雷区与经验规则,从而跳过明显错误的路径。其二,它是规划的推演场:候选计划在真正执行之前,先在世界模型上虚拟跑一遍,用预测的转移与反馈评估期望收益,筛掉低质量选项。其三,它是规划的修正依据:当真实执行结果与推演预测出现偏差时,偏差本身成为世界模型更新的信号,也是下一轮规划修正的直接输入。这三点合起来,把"规划-执行-反馈"的单向流水线,改造成了"规划-推演-执行-对比-更新"的闭环认知循环。

世界模型与长期记忆的区别值得专门澄清,因为两者在 DSH 中往往被混为一谈。长期记忆是事实库,回答"发生了什么"——上一次部署用了什么配置、某个接口的返回结构是什么;它静态、可检索、以还原为要务。世界模型是预测结构,回答"如果……会怎样"——在当前的集群状态下执行该部署命令是否安全、该接口在此参数下是否会超时;它动态、可推演、以预测为要务。两者当然可以相互依存:事实库为预测器提供素材,预测器的偏差又触发事实库的补充采集。但把世界模型降格为记忆库,或把记忆库拔高为世界模型,都会导致架构失衡——前者使 Agent 有记忆无判断,后者使 Agent 有预测无凭据。

最后,回到 DSH 的原始主张 Model+Harness=Agent。在这个等式中,Model 是通用智能的承担者,Harness 是工程能力的承担者;而可交互世界模型恰好横跨两者——它的推演能力依赖 Model 的常识与阅读理解,它的更新机制、存储结构与生命周期管理依赖 Harness 的执行框架。可以说,世界模型是 Model 与 Harness 协作的黏合剂:没有世界模型的 Harness,只是一台精密的执行机器;没有 Harness 的世界模型,只是一具没有血液的骨架。本系列的读者如果已经理解 DSH 的上下文管理、失败归因与成本控制机制,那么本文探讨的正是这些机制之上的认知层——让 Harness 不仅"会做事",而且"懂环境"。

这里还需要澄清一个常见的误解:为什么世界模型不能退化为"把更多历史塞进上下文窗口"?表面上,上下文窗口足够大的模型似乎可以记住一切反馈,何必再维护一个外部结构?答案藏在三个维度的对比里。第一是持久性:上下文是易失的,随会话结束而消失,跨任务复用必须依赖某种外部存储;而世界模型的规则库与转移统计天然跨会话存活,这正是原型中"一次失败、永久免疫"得以成立的前提。第二是结构化:上下文中的经验以自然语言散落分布,Planner 需要重新阅读、重新理解才能利用;世界模型将其压缩为可直接查询的键值结构与规则,查询开销是 O(1) 或 O(k),而不是一次全量重读。第三是成本:上下文按长度计费,经验越积越多,每一轮注入的开销线性增长;世界模型采用"按需物化"策略——只在计划决策点注入结构化摘要,长度受控且与历史总量解耦。理解了这三点,就能明白为什么本文坚持把世界模型作为独立于上下文的认知结构,而不是上下文的延伸。

观测与反馈

推演结果

计划

动作

真实结果

偏差信号

环境E

感知层

事件流记忆

转移统计

规则库

预测器P

规划层

执行层

结果对比

上图描绘了可交互世界模型的认知闭环:环境产生观测与反馈,感知层将非结构化输出标准化为事件流;事件流沉淀为转移统计与规则库,共同支撑预测器;规划层用预测器做推演,产出计划交给执行层;真实结果与推演预测对比,偏差重新进入事件流。整个循环的运行成本以"增量维护"为主,而非以"重训练"为主——这是它与经典世界模型在工程实践上的分水岭。

三、技术架构与设计:世界模型在 DSH 中的落位

讨论清楚概念之后,需要回答工程问题:这样一个可交互世界模型,在 DSH 的既有架构中应当如何落位?DSH 本身已经提供了工具调用执行、上下文管理、反馈捕获、重试策略与成本控制等机制;世界模型的引入不应该推翻这些机制,而应该以"横切层"的方式叠加在其上。为此,我们设计四层架构:感知适配层、记忆缓冲层、预测引擎层与推演规划层。

感知适配层是世界模型的入口。DSH 每次工具调用会返回结构各异的输出——可能是 JSON、文本、表格、报错堆栈,甚至是工具内部的状态码。感知适配层的职责是把这些异构输出标准化为统一的事件对象,包含四个字段:时间戳、触发动作、观测快照、反馈信号。标准化过程本身也是信息抽取的过程——例如从报错堆栈中提取错误类型与关键参数,从 API 返回中提取状态码与业务字段。这一层的设计要义是"无损降维":在压缩为统一 Schema 的同时,保留与任务因果相关的全部关键信息。过度抽取会丢失细节,抽取得太少则会让事件流变成噪声堆。

记忆缓冲层是世界模型的存储核心。它以追加写的方式维护三类结构。第一类是事件流,按时间顺序记录全部标准化事件,只设软上限——最近的 N 条全量保留,更早的按重要性采样保留;重要性由反馈信号的强度、事件的稀缺度与任务的关联度共同决定。第二类是状态-动作-转移统计表,即经验缓冲的聚合视图,记录某个状态下执行某个动作后各结果的频次,为预测引擎提供原始概率。第三类是规则库,存放从事件中归纳的可解释规则,例如"当配置文件中缺少 api_key 字段时执行部署必然失败"。三类结构按访问频率分层:事件流面向推演检索,转移统计面向概率查询,规则库面向快速命中。

预测引擎层是世界模型的"大脑"。它混合使用三种预测手段,按查询场景选择。其一是基于转移统计的概率预测:对于已见过的状态-动作组合,直接查表得到经验分布,这是最快也最可信的路径。其二是基于相似状态的泛化预测:对于未见过的状态,先在向量表征空间中找到最近的已知状态,再借用其转移分布,相似度低于阈值时标记为低置信度。其三是基于规则库的确定性预测:当规则被命中时,直接给出确定性的结论与依据。三种手段的输出统一封装为"预测包",包含概率分布、置信度、依据来源三个字段——Planner 拿到的不再是一个冷冰冰的结论,而是"这个结论有多大把握、依据是什么"。

推演规划层是世界模型面向 Planner 的门面。它提供两类接口。第一类是假设推演(What-if Rollout):输入候选动作序列,在世界模型内部逐实体执行,返回预测的轨迹、期望收益与风险点。第二类是反事实分析(Counterfactual):输入一条失败的历史轨迹,回放时替换其中某个动作或前置条件,检验"如果当时这样做,结果是否会不同"。两类接口的输出共同构成 Planner 的推演证据。需要强调的是,推演规划层本身不含任何规划逻辑——它只提供"沙盘",不负责"排兵布阵";规划逻辑仍然由 Agent Plan 层承担,二者通过清晰的接口契约解耦。

世界模型与 DSH 主循环的集成点共有四处。第一处是工具调用前的前置查询:Planner 生成动作前,先向世界模型查询该动作在当前状态下的预测与风险,预测置信度低时优先选择探测性动作。第二处是工具调用后的反馈吸收:DSH 捕获的原始反馈经感知适配层标准化后写入事件流,并触发转移统计与规则库的增量更新。第三处是重试决策的辅助:当动作失败时,世界模型提供"该失败是否可预期"的判断——可预期的失败说明前置条件缺失,应补足条件后重试;不可预期的失败说明环境出现新情况,应切换策略。第四处是上下文注入:世界模型输出被压缩为结构化摘要,作为额外上下文注入下一轮 LLM 调用的 prompt,从而在不耗尽上下文窗口的前提下,让模型拥有环境知识。

存储与并发是世界模型工程化中不可回避的细节。经验缓冲的容量需要上限,否则长任务会将内存耗尽;我们采用"全量保留近期 + 重要性采样远期"的分层策略,配合定期压缩——将低频且低价值的旧事件聚合为摘要条目。转移统计表使用带平滑因子的计数值而非裸频次,避免冷启动时的零概率问题。多 Agent 并发执行时,同一状态可能收到来自不同会话的冲突证据,需要按时间戳与来源权重做合并消解,保证统计单调且可回滚。这些机制在本文的最小原型中会有简化体现,但在生产实现中每一项都值得独立的工程投入。

状态表征的设计值得单独展开,因为它是决定世界模型质量上限的地基。同一次环境观测,可以编码为三种形态。第一种是结构化 JSON:把工具返回的关键字段整理为带 Schema 的文档,可解释、可比较、可审计,适合作为规则归纳的输入;它的弱点是精确匹配太苛刻——字段顺序或类型微变就会破坏状态等价性。第二种是向量表征:由 LLM 或轻量编码器把状态描述映射为稠密向量,支持相似度检索,是状态泛化的载体;它的弱点是可解释性差,且向量漂移会静默破坏检索质量。第三种是事件图:以实体为节点、以因果为边的有向图,保留"谁依赖谁、什么导致什么"的拓扑信息,适合追溯失败链;它的维护成本最高。生产实践通常三态并存、按用途分派:规则归纳用 JSON,泛化检索用向量,因果追溯用事件图。表征的粒度同样需要权衡——粒度越细,状态区分度越高,但样本稀疏问题越严重;经验法则是让表征只包含"会被动作影响或影响动作成败"的维度,与任务目标无关的字段一律丢弃。这个取舍原则,与感知适配层的"无损降维"一脉相承。

可交互世界模型

DSH主循环

前置查询

规划层

工具执行

反馈捕获

感知适配层

记忆缓冲层

预测引擎层

推演规划层

上图清晰展示了世界模型与 DSH 主循环的关系:世界模型不是替代主循环的平行系统,而是嵌入主循环的认知增强层。反馈自右向左流入世界模型,推演结果自左向右流回规划层,前置查询以旁路方式在动作执行前介入。整个架构保持 DSH 原有执行语义不变,世界模型只是改变了"决策依据从哪里来"。

四、关键算法与方法详解:增量更新与推演规划

本节拆解可交互世界模型运转的核心算法。我们不追求理论完备,而是给出在 DSH 工程约束下可落地、可度量的方法学。四个方法按依赖顺序展开:经验回放、状态泛化、规则归纳与推演搜索。

第一个方法是经验回放与增量统计。这是世界模型最基础的更新机制。设状态 s 下执行动作 a 后观测到结果 o,转移统计表维护计数 C(s,a,o)。接收新事件后执行 C(s,a,o) += 1,并同步更新平滑概率 P(o|s,a) = (C+α) / (ΣC + α·|O|),其中 α 为 Laplace 平滑系数,|O| 为结果空间大小。平滑的意义在于避免冷启动零概率:在一个只见过一次的结果中,平滑让预测保留一定的不确定性,体现在置信度字段中。增量更新的计算复杂度为 O(1),不依赖任何训练过程,这是"可交互"在工程上的保证——每一次反馈都能即时改变未来预测,不需要等待批处理窗口。

第二个方法是相似状态泛化。增量统计只能覆盖见过的状态,而真实环境的组合空间往往巨大。泛化的思路是:把每个状态编码为向量(可由 LLM 对结构化状态描述做嵌入,也可用轻量哈希特征),新状态 s_new 在表征空间中检索 k 个最近邻状态,以相似度为权重聚合它们的转移分布,作为 s_new 的预测。关键参数是相似度阈值 τ:当最近邻相似度低于 τ 时,预测被标记为低置信度,Planner 会据此选择探测性动作而非冒险动作。泛化机制让世界模型具备了"举一反三"的能力——一个从未见过的部署拓扑,只要能找到表征相近的历史场景,就能借用其经验。但泛化也是误差的主要来源,需要对相似度权重做温度缩放,防止近邻噪声主导预测。

第三个方法是规则归纳的可解释性增强。转移统计与向量泛化都是"黑盒"预测,而 Agent 的决策往往需要可解释的依据——尤其是失败归因场景。规则归纳从失败事件中抽取因果模式:当动作 a 在状态 s 下失败且观测到主题 x 时,检查失败是否由前置条件 c 缺失导致。例如事件"执行部署失败 + 反馈包含 ModuleNotFoundError",可归纳规则"状态含未安装依赖 → 部署预测失败,前置条件为依赖已安装"。规则的置信度随支持样本数递增,低于阈值的规则自动淘汰。规则库的价值不仅在于预测,更在于为 Planner 提供直接可执行的补救动作——推测前置条件、补齐条件、再试一次。这使世界模型的输出天然对齐 DSH 的重试决策机制。

第四个方法是推演规划与反事实分析,这是世界模型从"记忆"升级为"沙盘"的关键。给定当前状态 s0 与候选动作序列 A = (a1, a2, …, ak),推演引擎在内部逐实体执行:对每一步 (s, a),从预测器取得结果分布,按概率采样或按期望值聚合,得到预测轨迹与累计期望收益。实际实现中采用简化策略:不追求完整 MDP 求解,而是做 K 步前瞻(K-lookahead),逐候选计划评估,再按期望收益排序。反事实分析则回放失败轨迹,在指定步骤替换动作或修改前置条件,观察结果分布的变化,从而回答"如果当时先安装依赖再部署,是否会成功"。两者的计算可以通过共享预测器的缓存加速——同一状态-动作对的预测结果在短时间内复用。

预测置信度低

预测置信度高

一致

偏差

当前状态

生成候选计划集合

逐计划推演

标记探测性动作

计算期望收益

执行计划

对比真实结果与预测

增强统计置信度

触发增量更新与规则归纳

推演规划层还承担不确定性管理的职责。预测器的输出自带置信度字段,Planner 据此在"探索"与"利用"之间做权衡:高置信度的状态下直接沿用经验,低置信度的状态下优先选择信息增益最大的探测性动作——执行一个能最小化状态不确定性的动作,其价值在于获得信息本身,而非完成当前步骤。这种主动学习机制与 DSH 的重试策略形成协同:重试是"按既有认知再试一次",探测是"获取新认知后再试一次",后者在快变环境中往往更有效。值得强调的是,世界模型的更新成本远低于重训:一次失败触发的是 O(1) 的统计更新与 O(k) 的规则归纳,而规划层获得的收益却是指数级的——它不再可能重蹈同一条失败路径。

在静态环境中,归纳出的规则可以一直生效;但真实环境会漂移——接口升级、参数变更、依赖淘汰,都会让旧规则失效甚至反向危害决策。因此,世界模型必须为每条规则与每份统计引入新鲜度管理。一种实用的方案是置信度衰减与定期重验:每条规则维护两个计数器——支持样本数与最近命中时间;当规则长时间未被新观测命中,其置信度按时间指数衰减,衰减到阈值以下时标记为"待重验";重验时安排一次低成本探测动作验证规则是否仍然成立,成立则重置衰减,不成立则降权或删除。统计表则采用滑动窗口计数而非全量累计,窗口外的旧样本权重逐步归零,使概率预测持续反映近期环境行为。这套机制的必要代价是少量额外的探测成本,但换来的是世界模型在非平稳环境中保持可用——它是"可交互"语义中"可更新"维度在时间轴上的延伸,也是生产部署中不可省略的一环。

五、实验与评估:最小闭环模拟验证

按照本系列的评估口径,本节采用定性趋势分析与最小闭环模拟实验相结合的方式,验证可交互世界模型在 DSH 框架下的实际收益。模拟实验的目的不是证明世界模型在复杂生产环境中的绝对效能——那需要大规模真实流量,而是检验机制本身的逻辑闭环:世界模型能否减少重复试错、能否降低整体成本、能否把"教训"沉淀为"经验"。

实验环境设定如下。我们构造一个带隐形前置条件的任务环境:任务要求 Agent 依次完成三个步骤 a、b、c,其中步骤 a 的执行成功依赖于环境配置 flag 的存在,而 flag 的缺失仅在执行 a 时才暴露,且每次新任务开始时 flag 可能被重置。无世界模型的 Agent 仅依赖当前轮次的上下文逐次试错;有世界模型的 Agent 维护状态-动作转移统计与规则库——第一次因缺失 flag 失败后,规则归纳得到"任务依赖 flag 前置条件",此后每轮任务执行前先检查并补齐 flag。所有 Agent 使用相同的底层规划模型与相同的工具接口,固定随机种子,执行 50 轮独立任务,统计成功率、平均步骤数、平均 Token 消耗与反馈利用率。

实验结果表明差距显著。无世界模型的 Agent 平均成功率仅约 52%,每轮任务平均执行约 7.3 个步骤,其中相当部分是重复的失败尝试——在缺失 flag 的轮次里,它会在同一个位置反复碰壁,直到触发尝试上限;由于失败尝试消耗完整的工具调用与模型推理 Token,其平均单轮 Token 消耗约为 3660。有世界模型的 Agent 在 50 轮任务中全部成功,平均每轮仅 4.0 个步骤,单轮 Token 消耗降至约 2010——总体花费下降了约 45%。反馈利用率的差距更为直观:无世界模型的 Agent 在后面的轮次中仍会重复早期犯过的错误,说明反馈经验随上下文滚动而流失;有世界模型的 Agent 从首次遭遇缺失反馈起就不再重复同类错误——第一次失败立即归纳出前置规则,此后的所有轮次都先补齐条件再行动。其"一次失败、永久免疫"的特性,正来自规则库的持久化。

有世界模型

无世界模型

成本堆积

第1轮缺失flag

第20轮同样失败

第50轮依然失败

第1轮失败

归纳规则:flag前置

后续轮次持续成功

成功率52% 步骤7.3步

成功率100% 步骤4.0步

为什么收益如此显著?关键在于失败信息的可复用性。无世界模型的 Agent 每次失败后虽然能看到反馈,但反馈只作用于当前对话的 LLM 上下文,随窗口滚动或被新信息稀释后即告失效;同一类失败在长任务或连续任务中反复出现。有世界模型的 Agent 把失败抽象为一条可查询的规则,使教训跨任务、跨会话持久生效。从成本结构看,世界模型的增量更新与推演查询只消耗常数额外计算,不引入额外的 Token 调用,其换来的约 45% 的成本压缩全部来自重复试错的削减——净收益显著为正。

实验同样暴露了方法的边界。第一,本实验环境是静态的——转移关系不随时间变化;在非平稳环境中,规则库可能因环境漂移而失效,需要引入规则新鲜度衰减与定期重验机制。第二,本实验的规则归纳依赖反馈信号的显式可解析性;当反馈是长文本、多模态或噪声较大的内容时,归纳质量会下降,需要感知适配层更强的抽取能力。第三,世界模型引入了新的维护成本与状态表征设计成本,在任务链极短、环境极为简单、失败代价极低的场景下,其收益可能不足以覆盖开销——方法论有适用边界,工程决策需要按场景权衡。

最后有必要厘清世界模型与 DSH 既有机制的协同边界,避免读者误以为它是又一个独立重轮子。与重试策略的关系是分工而非重叠:重试是战术层机制,回答"这次失败是否重来、以何参数重来";世界模型是战略层机制,回答"这类失败为什么发生、如何不再发生"。前者消耗 Token 换取第二次机会,后者消耗结构换取长期免疫,两者在原型中自然衔接——世界模型归纳出前置条件后,重试的触发条件也随之改变。与失败归因的关系同理:归因引擎负责把一次失败定位到具体环节(工具超时、参数类型错误、状态前置不满足),形成诊断结论;世界模型负责把诊断结论中的可复用规律沉淀为规则,供后续所有计划共享。如果说归因是"病历",那么世界模型就是"诊疗指南"。在多 Agent 场景下,这份指南还可以通过事件总线跨实例共享,使整个 Agent 集群共享同一条失败教训——这是单机重试机制永远无法提供的协作收益。

从更广的视角看,模拟实验验证的其实是一个朴素但深刻的原理:Agent 智能的提升,未必全部来自更强的模型推理,也可能来自更优的结构化记忆与推演机制。DSH 的价值主张 Model+Harness=Agent 在此得到印证——在相同的模型能力下,仅凭执行框架引入世界模型,就能带来可量化的成功率与成本改善。这正是结构化工程能力与通用模型智能协同的典型范例,也是本系列一直强调的"让每一分 Token 都花在刀刃上"的机制来源。

六、代码实践:一个可运行的最小原型

为了让上述设计不流于文字,本节给出一个最小可运行的原型:WorldModel 类与一个带 DSH 风格主循环的模拟实验。原型刻意保持精简——用字典实现转移统计,用规则字典实现前置条件归纳,用简洁的推演函数辅助计划选择,全量代码约 90 行。它忠实地复现了本文的核心机制:感知(标准化反馈)、更新(增量统计与规则归纳)、推演(前置条件约束下的计划评估)。

"""
Interactive World Model minimal prototype
Environment: 3-step task (a -> b -> c), step a additionally requires an env flag.
DSH-style loop: plan -> act -> observe -> update, fixed seed 42.
"""
import random

random.seed(42)


class Environment:
    """Task env: step a fails unless flag is present; setup_flag creates it."""

    def __init__(self):
        self.flag = False

    def reset(self):
        self.flag = random.random() >= 0.4   # 40% probability flag is missing

    def step(self, action):
        if action == "setup_flag":
            self.flag = True
            return "OK", ""
        if action == "a":
            if not self.flag:
                return "FAIL", "MISSING_FLAG: env flag is absent"
            self.flag = False
            return "OK", ""
        if action == "b":
            return "OK", ""
        if action == "c":
            return ("OK", "") if not self.flag else ("FAIL", "FLAG_LEFT")
        return "FAIL", "UNKNOWN_ACTION"


class WorldModel:
    """Interactive world model: incremental counters + prerequisite rules."""

    def __init__(self):
        self.counts = {}     # (state, action) -> {outcome: freq}
        self.prereq = {}     # action -> prerequisite action

    def perceive(self, state, action, outcome, feedback):
        """Observation layer: standardize event and update counters."""
        key = (state, action)
        if key not in self.counts:
            self.counts[key] = {}
        self.counts[key][outcome] = self.counts[key].get(outcome, 0) + 1
        if outcome == "FAIL" and "MISSING_FLAG" in feedback:
            self.prereq["a"] = "setup_flag"

    def simulate(self, plan):
        """Rollout: a plan passes only if every known prerequisite is met first."""
        seen = set()
        for action in plan:
            need = self.prereq.get(action)
            if need and need not in seen:
                return 0.0
            seen.add(action)
        return 1.0


def run_agent(use_model, rounds=50):
    env, wm = Environment(), WorldModel()
    ok = steps = tokens = 0
    for _ in range(rounds):
        env.reset()
        for _ in range(12):
            candidates = [["a", "b", "c"], ["setup_flag", "a", "b", "c"]]
            if use_model:
                candidates.sort(key=wm.simulate, reverse=True)
            plan = candidates[0]
            success = True
            for act in plan:
                steps += 1
                tokens += 400          # plan/reason tokens per action
                outcome, fb = env.step(act)
                tokens += 100          # feedback parsing tokens
                if use_model:
                    wm.perceive("start", act, outcome, fb)
                if outcome == "FAIL":
                    success = False
                    break
            if success:
                ok += 1
                break
    return ok / rounds, steps / rounds, tokens / rounds


no_model = run_agent(False)
with_model = run_agent(True)
print("no_model   -> success=%.2f steps=%.1f tokens=%.0f" % no_model)
print("with_model -> success=%.2f steps=%.1f tokens=%.0f" % with_model)
no_model   -> success=0.52 steps=7.3 tokens=3660
with_model -> success=1.00 steps=4.0 tokens=2010

代码刻意使用固定随机种子,读者可直接复现上述输出。原型中值得留意的设计决策有三处。第一,感知层与主循环解耦:Environment 的原始反馈只有字符串,WorldModel.perceive 负责从中抽取语义信号(MISSING_FLAG),这正是生产环境中感知适配层的工作形态。第二,规则先于统计生效:prereq 一旦归纳出来,simulate 在推演中立即体现前置约束,候选计划随之重新排序——这是"一次失败、永久免疫"的机制来源;同时 counts 持续累积,为后续引入概率化预测预留了数据基础。第三,推演只用于排序,不用于硬决策:simulate 为候选计划打分排序,但最终执行仍由主循环控制,保留了对推演结果的否决权——这在真实系统中尤为重要,因为推演本身也可能出错。

读者可以把该原型向三个方向扩展。方向一:把转移统计的 dict 换成向量检索,引入相似状态泛化与置信度阈值。方向二:把规则库的字符串匹配换成 LLM 辅助的归纳,从自由文本反馈中抽取因果模式。方向三:把单 Agent 主循环接入 DSH 的真实执行层,让世界模型消费真实工具调用的反馈流。无论怎么扩展,核心闭环不变:感知、更新、推演、执行、对比。这个闭环,就是可交互世界模型在工程上最小的"生命形态"。

七、总结与展望:让 Agent 学会在内心排练

本文围绕"可交互世界模型"这一主题,给出了它在 Agent Plan × DeepSeek Harness 框架下的完整设计:从概念形式化(W = (Ŝ, M, P))、三层可交互能力(感知、更新、推演),到四层工程架构(感知适配、记忆缓冲、预测引擎、推演规划),再到四项核心算法(增量统计、状态泛化、规则归纳、推演搜索),并以最小闭环模拟实验验证了机制收益:成功率从 52% 提升到接近 100%,单轮 Token 消耗下降约 45%。核心结论可以浓缩为三句话。其一,Agent 的高效行动不仅依赖更强的推理,更依赖结构化的环境认知;其二,这种认知可以在 Harness 层以增量、可交互、低成本的方式构建,无需重训模型;其三,把失败沉淀为规则、把预测用于推演,是 Agent 从"会做事"走向"懂环境"的关键一跃。

展望未来,可交互世界模型至少有四个值得深化的方向。第一个方向是多模态状态表征。当前原型的状态是结构化文本,而真实工具的输出包含表格、图像、日志等异构信息;如果把多模态嵌入纳入状态表征,世界模型就能对视觉类反馈(如截图验证、图表解析)做出预测,覆盖 Agent 工具链中日益增长的视觉环节。第二个方向是世界模型与长期记忆的深度融合。记忆提供"事实底座",模型提供"预测引擎",两者共享统一的向量命名空间,可以互相校验——记忆中的可疑事实触发预测验证,预测的持续偏差触发记忆补采。第三个方向是分布式与多 Agent 共享世界模型。多个 Agent 各自维护局部模型,通过中心事件总线交换高置信度规则,实现"一次失败、全体免疫"的协作效应;需要解决的是规则冲突消解与隐私边界问题。第四个方向是模型内学习(In-Model Learning)的边界探索。当前方案在 Harness 层演进认知结构,未来可以研究把高置信度规则周期性蒸馏回模型提示或轻量微调,让世界模型"外挂"逐渐内化为模型的先验——收益是推理更快,代价是灵活性下降,两者之间需要动态平衡机制。

无论走向哪个方向,一条主线始终不变:世界模型的价值,在于让 Agent 的每一次失败都不被浪费。在模型能力普遍趋同的当下,谁能更高效地把经验转化为认知,谁就能在长程任务与高频任务的竞争中建立真正的优势。本文的探讨为这条主线提供了一个自洽的起点,也希望读者在自己的 Harness 实践中,把它推向更广阔的战场。

最后,回到本系列一贯的技术判断:DeepSeek Harness 所代表的 Model+Harness=Agent 范式,其深层含义是"智能由模型提供,行为由框架塑形"。可交互世界模型正是这一判断的集中体现——它没有改动模型的任何参数,却显著改变了 Agent 的行为质量。对于正在构建生产级 Agent 的工程师,本文给出的最小原型是一个可落地的起点;对于关注 Agent 智能形态的研究者,本文提出的"增量认知结构"则是一个值得继续观察的现象:当 Agent 开始拥有"内心排练"的能力,它的上限就不再取决于单次推理的强度,而取决于它对环境因果的把握深度。这或许就是下一代 Autonomous Agent 与今天最大的分野。

Logo

展示您要展示的活动信息

更多推荐