一句话定义
演化工作区(Evolving Workspace)是一种更接近真实交付的评测与训练设定:编码智能体(coding agent)接手的不是一份被冻结的仓库快照,而是一个任务期间仍在变动的工作区——函数签名被改、依赖库升级、同事的提交不断合进来,它必须在这种“环境一直在变”的状态下按最初的目标把任务做完。
先看它针对的是什么
传统 SWE-bench 类基准的做法是:取一个开源仓库的某个历史提交,配一个 issue,智能体提交补丁,跑单元测试判分。这样干净、可复现,但也把现实中最难的部分删掉了。
打个比方,这就像考驾照时让你在空停车场里倒库:车位线画得清清楚楚,周围没车,也没人催你。真实上路是另一回事——前车会突然刹车,路边的施工牌凌晨才立起来,导航让你右转的那条路昨天封了。
演化工作区就是把“空停车场”换成“早高峰”。任务开始时代码还能编译,跑到一半,它依赖的内部服务改了返回结构,或者有人重构了它正要调用的那个模块。智能体如果只按最开始读到的那份理解埋头猛写,最后交出的补丁看着漂亮,一跑就崩。有研究提出的 SWE-Shift 一类评测思路,正是想把“时间”这个维度补进评测里:判的重点不只是某一次补丁对不对,还包括智能体在环境漂移(drift)下能否重新读环境、重新验证、必要时推翻原方案。
| 维度 | 静态快照式基准(如传统 SWE-bench) | 演化工作区 |
|---|---|---|
| 代码状态 | 冻结在某个提交 | 任务期间持续变更 |
| 依赖 | 锁定不变 | 可能升级,接口漂移 |
| 判分关注点 | 一次补丁加单元测试 | 过程中能否保持自洽 |
| 典型失败 | 没改对 | 改对了旧版本,交出去时已过期 |
和相邻概念的区别
- 与多轮对话式编程相比:多轮是“让人多问几轮”,变化来自人的提示;演化工作区的变化来自环境本身,没有人会提醒你。
- 与长时程任务(long-horizon)相比:长时程强调步骤多、耗时长;演化工作区强调“你在做的时候外部一直在变”,任务本身很短也能成立。
实际意义
对做智能体的团队来说,把仓库打包扔给模型跑一遍,测出来的分数只说明它会写补丁,不说明它会交付。更值得盯的指标是:它多久重新读一次环境、能不能察觉前提变了、信息过期后敢不敢推翻自己已经写好的东西。
对普通职场人,这其实是个熟悉的提醒:真实工作里没有一份不会变的需求文档。能交付的人往往不是一次做对的人,而是每次发现前提变了,就重新核对一遍的人。
(具体工具与基准的细节,以官方页面为准。)
