#AI Agent#软件工程
当 Agent 离开你的屏幕继续工作
顺着 spec-to-PR 的链路拆开后台 Agent:独立机器、仓库启动、短期密钥、记忆与验收缺一块,异步就会变成失联。
最早的 AI 编程工具住在补全框里。你敲一半,它补另一半。后来它搬进终端,会自己读文件、改代码、跑测试,但你仍然盯着屏幕,随时准备接管。
异步 Agent 又往外走了一步:给它一份需求和一个仓库,它在另一台机器上工作,完成后递回来一个 PR。你不用看着它打字,只需要检查交付物。
任务离开屏幕后,仍要沿着看得见的轨道回来。
从聊天变成投递
同步使用时,很多缺口由人随手补上。依赖装不上,你发一条命令;需求有歧义,你立刻解释;页面看起来不对,你指着屏幕让它重改。
异步以后,这些临时扶手都不在。输入不再是一句“帮我改一下”,而是一份足够独立执行的规格:改什么、不能动什么、怎样算完成、失败时停在哪里。
这也是 spec-to-PR 和普通提示词的区别。提示词描述想要的动作,规格描述可以被验收的结果。
一个后台 Agent 需要什么房间
Cognition 与 OpenInspect 的讨论把后台 Agent 的基础设施拆得很实在:一台完整机器、可恢复的快照、范围受限的密钥、仓库启动脚本,以及能看到真实应用的测试方式。
只给一个代码容器往往不够。桌面应用要操作窗口,移动端项目要启动模拟器,复杂仓库依赖多个服务。有些验证甚至需要录屏,因为测试通过只能证明逻辑满足断言,不能证明按钮没有盖住文字。
于是“模型会不会写代码”只占一部分。更难的是把仓库变成一间它能独立开工的房间:
- 一条命令完成依赖和服务启动;
- 密钥只对当前任务和环境有效;
- 失败状态可以复现,不靠口述;
- 测试、截图和日志共同构成交付证据。
验证循环在这里不是最后补的一道检查,而是 Agent 找回家的路。
记忆不能只进不出
后台 Agent 工作时间更长,也更依赖记忆。仓库约定、过去失败过的做法、某个服务的启动顺序,都能避免它反复撞墙。
但记忆如果只积累不修剪,很快会变成过期指令的仓库。旧端口、已删除的脚本、为旧模型准备的提示会继续影响新任务。上下文越多,注意力越容易被历史拖走。
可用的记忆需要来源、日期和失效条件。与其记“这个项目必须这样启动”,不如让启动脚本本身成为唯一入口;与其记“这里有个坑”,不如把坑变成测试。能写进系统的经验,不要永远留成一句叮嘱。
异步不等于无人负责
背景运行只是把人的注意力从过程挪到边界。人决定目标、权限和验收,Agent 决定大部分执行细节。任务越长,这条分工越要清楚。
如果 Agent 卡住后继续猜,它会把一个小歧义扩成一整套错误实现;如果它遇到任何不确定都来询问,异步又退化成消息轰炸。好的停止条件应该写在任务里:哪些问题可以自行试验,哪些动作越过边界前必须回来确认。
原始材料:The Age of Async Agents。
异步不是让 Agent 消失,而是让它带着证据回来。