你有没有想过这样一个场景:你想训练一个AI助手帮你操作某个企业内部系统,比如报销审批平台。但这个系统压根不对外开放,你没法天天拿真实环境去跑测试,更别提让AI在里面反复试错撞南墙。
你手里唯一能用的,是一堆历史操作记录,谁点了什么按钮,系统弹出了什么提示,谁的操作失败了又是为什么。
这堆记录能不能变成一个"假的但管用"的系统,让AI在里面练手?
这正是新加坡南洋理工大学团队在论文里要解决的问题。他们给这个思路起了个名字,叫
**Trace2Env**
*轨迹到环境:一套不需要训练、只靠历史交互记录就能搭建模拟环境的框架*
说起来容易,但这里面藏着一个一般人想不到的坑。
### 当"复刻系统"行不通的时候
过去遇到这种问题,研究者的第一反应通常是硬着头皮重建系统。前面提到的Terminal-Universe项目就是这么做的,它把智能体留下的操作轨迹,"逆向工程"成一个真正能跑的终端工作空间。听起来很酷,但问题也很明显:你得知道底层依赖、接口协议、甚至一些没写进轨迹里的隐藏逻辑。这就像让你根据朋友圈里晒的几张照片,还原出朋友家里整套水电管线布局,能摸出大概样子,但真要照着施工,八成要出事。
Trace2Env团队换了个思路。他们不去重建系统本身,而是用一个语言模型去"扮演"这个系统。这个扮演者有个专门的名字:
**语言世界模型**
*Language World Model,简称LWM:用语言模型来预测"如果智能体做了某个动作,环境会返回什么样的反馈"的技术,本质上是把环境的行为模式用自然语言的方式学出来*
这个思路本身不新鲜,之前已经有团队在做。但Trace2Env的关键创新在于,它不满足于让一个模型"看一眼提示词就猜答案",而是让这个扮演环境的模型变成一个真正的智能体,它可以主动翻资料、查记忆、做推理,然后才给出反馈。
这就引出了论文标题里最核心的那句话:能不能让一个智能体充当另一个智能体的环境?
### 问题到底难在哪里
你可能觉得,让AI模仿环境的反馈,不就是个"看图说话"的任务吗?给它看看历史记录,它照着学一下格式不就行了?
事情没这么简单。
论文里举了个特别扎心的例子:假如智能体执行了一个删除文件的操作,比如 `rm report.txt`。这个操作本身在终端里几乎不会有任何输出,敲完命令,啥反应都没有,直接跳到下一行提示符。
但问题来了。三轮对话之后,如果智能体又输入了 `cat report.txt` 想读这个文件,真实环境这时候必须报错:"文件不存在"。
这个"文件已经被删了"的事实,在被删除的那一刻几乎没有任何信号透露出来,但它必须被悄悄记住,然后在后面某个时间点"兑现"。
这就是论文反复强调的
**长程状态一致性**
*Long-horizon state continuity:模拟环境必须记住早期动作造成的隐性后果,哪怕这个后果当时没有在观测里直接体现出来,也要在未来的某个时刻准确地"兑现"它*
如果你只是把所有历史对话一股脑塞进提示词,指望模型自己从几千字的文字堆里反应过来"这个文件三轮前被删了",这就很危险。模型很可能读着读着就把这个细节漏掉了,然后在你问 `cat report.txt` 的时候,一本正经地编出一段文件内容。
这种"一本正经地胡说八道却还能让后续对话继续流畅进行"的现象,其实是最危险的失败模式。因为它看起来没出错,实际上整个交互已经偏离轨道了。
就像你问一个记忆力不太好的同事"我上周三跟你说的那份报告删了吗",他如果诚实说"不记得了,我查查",问题不大;但如果他为了显得靠谱,随口说"删了删了,没事",然后你后面还真按"报告已经不存在"去做后续安排,结果哪天发现报告其实还在服务器上没删,整个流程就全乱了。这种"假装记得"比"诚实地不记得"要危险得多。
这正是传统做法容易踩的坑:把环境知识和交互历史一股脑塞进一个固定的提示词里,指望模型靠"读一遍"就抓住所有该记住的细节。
### 把"环境的说明书"拆成三层知识
Trace2Env的解法,是先把海量历史轨迹"蒸馏"成一本结构化的参考书,论文管它叫
**世界书**
*Worldbook:由离线构建阶段从历史轨迹中提炼出来的环境知识库,包含动作接口定义、具体观测证据、以及从证据中归纳出的行为规则三大部分*
这本书不是一份可执行的代码,它更像是一本"行为说明书"。里面分三个层次。
第一层叫
**模式**
*Schema:定义这个环境能接受哪些动作、每个动作需要什么参数,以及环境内部能追踪哪些状态变量,相当于给整个系统画出骨架*
比如在终端环境里,模式会规定"文件系统"这个状态字段存在,类型是什么,谁能修改它;也会列出 `cat`、`ls`、`pip install` 这些动作各自需要什么参数。这一层相当于先把游乐场的地图画出来,告诉AI这个世界里有哪些"积木"可以用。
第二层叫
**接地证据**
*Grounded evidence:直接从历史轨迹里保留下来的具体操作记录,包括动作、真实观测结果,以及提取出的候选状态变化,且这些证据的原始观测文本会被逐字保留下来*
为什么要逐字保留原始观测?因为规则和总结难免会丢信息。论文里有个很典型的案例:智能体执行了一个用heredoc写长脚本的命令(这是一种让终端连续输入多行文本的技巧),真实终端会显示一种特殊的续行提示符,每一行前面带个 `>` 符号。如果你光靠抽象规则去描述这个行为,很容易漏掉这种细枝末节的格式;但如果你把原始记录完整保留,这些细节就不会丢。
第三层叫
**归纳知识**
*Induced knowledge:从多条证据里总结出来的、可以重复使用的规律,包括条件触发的效果、状态约束、观测格式的"契约",以及一些零散但重要的环境惯例*
这一层是真正的"抽象升级"。比如从多次成功和失败的对比里,系统可能归纳出一条规则:"尝试拿起一个物品时,如果手里已经拿着东西,这个动作不会有任何效果"。这条规则一旦被验证支持,就能被反复套用到新的场景里,而不需要每次都从头翻原始记录。
这三层知识叠在一起,构成了一本完整的"环境说明书",而且每一条规则和证据都带着
**溯源**
*Provenance:记录每一条归纳规则或证据来自哪条历史轨迹、第几轮对话,让系统可以随时回溯检查某个判断的依据是否可靠*
这就好比你去图书馆查资料,好的学术著作不会只给你结论,还会标明引用来源,这样你质疑某个说法时,能顺着脚注找到原始文献,而不是只能干瞪眼。如果没有这层溯源,系统归纳出的规则就变成了"黑箱断言",出错了都不知道哪里出的错。
### 让"扮演环境"的AI真正像个侦探一样工作
光有一本说明书还不够,关键是怎么用。
Trace2Env设计了一个
**世界模型智能体**
*World model agent:一个专门负责"扮演环境"的AI智能体,它不是被动接收提示词然后吐出答案,而是主动调用工具去查资料、翻记忆、测试效果,然后才给出最终反馈*
这个智能体手里有一套工具,可以列出所有已知动作、查某个动作对应的规则、全文搜索知识库、读取原始证据的具体内容、查看当前状态、甚至能"空跑"一下某条规则看看效果会怎样,这整套机制有点像让一个新员工上岗前,不是干脆把全公司的规章制度打印出来让他死记硬背,而是给他一个内部检索系统,遇到具体问题现场去查、现场去验证。
死记硬背的问题在哪?如果把所有知识一次性塞进提示词,模型很容易被无关信息淹没,真正该关注的细节反而被稀释了。而让它按需查询,相当于把"记忆负担"转移成了"检索能力",这对长程任务尤其关键,毕竟没有谁能把一本说明书倒背如流,但好的检索习惯能让你在需要的时候精准定位。
这里还有一个很巧妙的设计,叫
**适用性门控**
*Applicability Gate:给每一条从历史证据中检索出来的信息打标签,区分这条信息是可以直接套用的"支持型"证据,还是只能参考格式、不能照抄具体内容的"仅供格式参考"证据*
为什么要这么分类?因为历史轨迹来自别的任务场景,那些场景里的文件名、具体数值、路径,跟当前这局模拟任务完全没关系。如果不做区分,模型很容易把A任务里的文件名张冠李戴地搬到B任务里。这就好比你去问一个修过很多台不同型号冰箱的师傅"我这台冰箱该怎么修",他可以告诉你"一般这类故障的检修流程是这样的"(格式参考),但绝不能说"上次我修的那台冰箱,压缩机型号是XX"(具体内容),因为那是上一台冰箱的事,型号对不上,照抄过来只会越修越坏。
有了这套机制,世界模型智能体最终会生成一个
**转移提案**
*Transition proposal:世界模型智能体对当前这一步"接下来会发生什么"的完整预判,包括状态会发生哪些具体变化,以及环境会返回什么样的观测文本*
这个提案不会直接生效,而是要先经过一道
**验证闸门**
*Validation gate:由一套固定的校验代码检查提案里的状态变化是否符合模式定义、是否有证据支持、是否违反已知的约束条件,只有通过检查的提案才会被真正提交*
这道闸门的存在很关键。它相当于给AI的"脑补"行为上了一道保险。如果AI提案里说"我把文件改名了",但状态变量里压根没有这个文件的记录,闸门就会拦下这次提交,退回去用一个"什么都没发生"的保守方案兜底。
### 分开储存"知道什么"和"记得什么"
Trace2Env还有一个很细腻的设计,就是把"跨场景通用的知识"和"这一局模拟里特有的事实"严格分开储存。
论文给出的理由很直接:世界书里存着别的模拟任务里"猫看文件会出现怎样的终端格式"这类通用行为知识,但它绝不能暗示"这个新开的模拟局里也有这个文件"。反过来,当前这局里智能体临时创建的新文件,哪怕历史轨迹里压根没出现过,也必须被正确追踪。
所以系统维护了一个
**持久化episode工作空间**
*Persistent episode workspace:包含三块内容,固定不变的世界书、随着当前这局交互不断变化的状态记录、以及记录了这一局里发生过什么事情的episode记忆*
这三块东西的生命周期完全不同。世界书是出厂设置,永远不变;状态记录是这局游戏进行中的实时存档;episode记忆是这局游戏的完整录像带。
这种设计思路其实很像你去一个新公司上班的头一天。公司的规章制度(世界书)是固定的,不会因为你今天加入就改变;但你今天具体负责的项目进度(状态记录)是随时在变的;而你今天都跟谁开了会、聊了什么(episode记忆)则是独属于你这一天的经历,换一个人入职,这段记忆完全不共享。如果把这三者混为一谈,比如把"公司规章"和"我今天的会议记录"揣在同一个文件夹里不加区分,用的时候就很容易张冠李戴,把别人经历过的事错认成是制度规定。
论文特别强调,状态记录是"有意保留不完整"的。如果某个字段没被记录过,系统会把它标记为"未知"而不是"不存在"。这个细节看似微小,但避免了一个很严重的逻辑错误:缺失不等于否定。你没查到某个文件的记录,不代表这个文件一定不存在,它可能只是还没被观测过而已。
### 九个环境,两套考试:结果说了什么
光说设计思路漂亮没用,得看考试成绩。
研究团队在九个不同的环境上做了测试,涵盖终端操作、软件开发、安卓应用、网页浏览,还有专门的饮食管理、购物、员工福利平台,以及两个经典的文本交互游戏环境ALFWorld和SciWorld。
考试分两种。第一种叫
**单步下一观测预测**
*Next-observation prediction:给定历史交互前缀和当前要执行的动作,让模拟环境预测下一步会返回什么样的观测结果,然后用格式、事实性、一致性、真实感、整体质量这五个维度打分*
在这套考试里,Trace2Env相比最朴素的直接提示方法(论文里叫Direct Prompting),在GPT-5.6-Sol这个骨干模型上平均分从69.51提升到了
**75.94**
在DeepSeek-V4.1-Flash骨干模型上,从68.71提升到了
**75.75**
更值得一提的是,这个提升不是靠某一项指标硬撑起来的。论文里特意强调,事实性和一致性这两个维度,在全部十四种环境和模型组合里全部有提升,没有一个例外。
第二种考试更有意思,叫
**多轮交互一致性**
*Multi-turn interaction consistency:让一个任务智能体先在真实环境里完整跑一遍任务,再在模拟环境里跑一遍,然后把模拟环境里生成的那套动作,原封不动地拿到真实环境里重新执行一遍,看看成功率能保留多少*
这里引出一个关键指标,叫
**一致性比率**
*Consistency ratio,简称CR:用"模拟环境里的动作拿回真实环境执行的成功率"除以"直接在真实环境里跑的成功率",这个值越接近1,说明模拟环境越靠得住*
结果出人意料。在ALFWorld环境里,Direct Prompting方法在模拟环境里自己跑的成功率高达97%,看起来很完美对不对?但把这批动作原封不动拿到真实环境里重跑,成功率骤降到只有
**3%**
CR值只有0.032。
而Trace2Env在模拟环境里的自评成功率反而略低一些,只有88%,但真实环境重跑的成功率高达
**85%**
CR值是0.914,几乎是前者的三十倍。
这组数据揪心的地方在于,它揭示了一个很容易被忽略的陷阱:模拟环境里跑得好看,不代表它真的靠得住。
### 一次失败的放置动作,揭开了整个故事
论文里有个具体案例特别说明问题。任务是找到两个纸巾盒,放到咖啡桌上。
智能体在某一步执行了一个真实ALFWorld并不支持的放置命令,真实环境的反应是"什么都没发生"。而使用Direct Prompting的模拟环境却直接回复"你把纸巾盒2放到咖啡桌1上了",相当于凭空承认了一个从未真正发生的动作。
智能体在这个虚假前提下继续推进,又去拿了第二个纸巾盒,再放上桌,模拟环境判定任务完成。看起来很顺畅,对吧?
但当这整套动作被搬到真实环境里重跑,结果是:第一次放置依然什么都没发生,纸巾盒2其实还在智能体手里,根本没放上桌。后面的操作全部基于一个错误的前提展开,最终奖励是0,任务彻底失败。
而Trace2Env是怎么处理这个同样的失败动作的?它正确预判了"什么都没发生",而且持久化状态准确记住了纸巾盒2依然在智能体的背包里。智能体后续查询库存时,系统忠实地告诉它"你还拿着纸巾盒2呢",还通过帮助菜单暴露出了一个真实有效的 `move` 命令。智能体靠这条线索成功纠正了自己的策略,最终用正确的命令完成了任务,真实环境重跑结果完全吻合,拿到了满分奖励。
这个案例的价值不在于"Trace2Env预测对了一次反馈",而在于它展示了一整条链路:正确的局部预测,加上持久化的状态追踪,加上世界书里存着的失败场景处理知识,三者合力才能让智能体真正从错误里爬出来,而不是在错误的基础上越走越远。
这就像开车导航的时候,一个靠谱的导航系统不仅要在你走错路的那一刻告诉你"此路不通",还要记住你现在实际在哪个路口,然后根据你的真实位置重新规划,而不是假装你已经按原计划到达了目的地,继续给你报下一段早已失效的路线。如果导航系统为了让界面看起来顺畅,硬是假装你走对了,你接下来的每一步指示都是建立在谎言之上的,越走越偏。
### 拆开来看,哪部分在真正发挥作用
研究团队做了一系列消融实验,想弄清楚到底是世界书起作用,还是智能体的主动查询行为起作用,还是两者缺一不可。
在Terminal环境的实验里,他们把世界书拆成"归纳知识"(规则、契约、注释)和"接地证据"(具体的观测记录和示范案例)两部分分别测试。结果发现,单独加入证据能带来明显提升,提升幅度是+2.45分;但单独加入归纳知识,反而让效果比只用模式定义时略有下降,降了1.12分。
这个结果乍一看有点反常,为什么"总结出来的规则"反而帮倒忙?
论文给出的解释是,归纳知识一旦脱离了具体证据的支撑,容易变成空洞的抽象规则,模型拿着这些规则却缺乏具体案例去校准,容易用错场景。但当归纳知识和具体证据搭配在一起使用时,效果立刻反转:在证据基础上叠加归纳知识,又能再提升0.69分;而在归纳知识基础上叠加证据,提升幅度更大,达到4.26分。完整的世界书,把这两层都用上,效果最好。
这个发现其实挺有启发性的。它说明"抽象规则"和"具体案例"不是谁更重要谁更次要的关系,而是互相校验、互相支撑的关系。规则告诉你"大概是这样",证据告诉你"具体长这样"。光有规则没有案例,就像只背了法条却没读过任何判例,真遇到具体情况反而容易生搬硬套;光有案例没有规则,又容易只会死记硬背,碰到稍微变化的新场景就懵了。
此外,团队还测试了去掉"自适应查询循环"和去掉"状态追踪"分别会怎样。去掉自适应循环,分数下降1.79分;去掉状态追踪,分数下降0.97分。两者都有贡献,但自适应查询循环的贡献更大一些,这也印证了前面说的,"按需检索"这个机制本身的价值,确实比单纯"把所有东西塞进提示词"更重要。
### 用了多少历史轨迹才够用
另一个很现实的问题是:构建这套世界书,到底需要多少条历史轨迹?
论文做了一个轨迹数量的扫描实验,在Terminal环境上从5条逐步增加到36条构建轨迹。结果是用5到15条轨迹的时候,效果还不太稳定,忽高忽低;但从20条开始稳步爬升,到36条的时候分数达到66.42,而且曲线在36条的时候依然还在上升,这说明如果有更多轨迹可用,效果应该还能继续往上走。
但代价也在同步增长。构建世界书的一次性成本大致随轨迹数量线性增加。考虑到性价比,团队最终选择了20条轨迹作为Terminal环境的默认配置,作为效果和成本之间的平衡点。
这个取舍其实很现实。不是轨迹越多越好就一定去堆数量,而是要在"效果还能不能明显提升"和"构建成本值不值得"之间找一个落脚点,就像囤货,囤十斤米能撑一个月,囤一百斤米理论上能撑更久,但仓库租金、腐坏风险都在涨,到底囤多少合适,得算账。
### 跨任务的真实有效性
还有一个很关键的问题是:Trace2Env的提升,是不是只因为评测任务刚好跟构建世界书时用的轨迹"撞脸"了?如果世界书见过的任务和评测的任务是同一批,那提升可能只是死记硬背的结果,没有真正学到可泛化的知识。
团队专门把评测数据按"是否与构建轨迹任务重合"分层测试。结果显示,在Web和SWE环境上,哪怕评测任务跟构建轨迹完全没有重合,提升依然清晰存在;在Terminal环境上,GPT骨干模型下这个模式依然清晰,DeepSeek骨干模型下略弱一些。
这个结果意味着世界书归纳出来的知识,确实具备跨任务迁移的能力,不是单纯记住了某几个具体任务的答案。但同时,论文也坦诚地指出,当评测任务确实跟构建轨迹里的任务有关联覆盖的时候,效果还会进一步提升,比如在Terminal环境里,任务刚好在构建集里出现过的那部分评测样本,提升幅度能到17.86分,远超没有重合那部分的3.69分。
这说明世界书同时具备两种能力:既能提炼出跨场景通用的规律,又能在遇到相似任务时发挥更精准的匹配优势。两种能力并不矛盾,而是叠加在一起生效的。
Q&A
Q1:Trace2Env到底解决了什么问题?
A:当一个真实系统(比如某个企业内部软件或终端环境)无法直接访问或复现时,Trace2Env能利用历史交互记录,构建出一个可以模拟该系统行为的"假环境",让AI智能体可以在这个模拟环境里训练和测试,而不需要接触真实系统本身。
Q2:Trace2Env和直接把历史记录丢给AI当提示词有什么区别?
A:区别很大。直接堆提示词容易让AI在长程交互中忘记早期动作造成的隐性后果(比如文件删除后没立即报错,但后面查询时该报错)。Trace2Env把知识结构化成世界书,并让AI主动查询、用独立的状态记录追踪变化,实验显示这样生成的动作序列拿回真实环境重跑,成功保留率能从3%提升到85%以上。
Q3:这套方法需要重新训练AI模型吗?
A:不需要。Trace2Env是一套学习无需训练的框架,它不改动模型参数,只是通过离线阶段把历史轨迹整理成结构化的世界书,再在运行时让现成的语言模型通过工具调用去查询和推理,所以可以直接套用在不同的模型骨干上。







