开源一个工具,让AI代理自己开电脑干活

新闻中心

2774

这周我开源了一个叫UseAgent的项目,它是我过去几个月里每天工作都在用的东西。简单说,它能把Claude Code、Codex或者OpenCode这些AI编码代理,各自配上一台真实的云电脑。你交给它任务,它交回来的不是聊天记录,而是成品——PR、表格、演示文稿、PDF,甚至还有它自己操作浏览器的屏幕录像。 项目地址在GitHub上,还挂了一个不用注册就能玩的在线演示。这个演示本身才是整个项目里最值得琢磨的工程产物,这个我后面细说。 把活儿丢给它,然后看着它干 你可以从Web应用或者Slack里丢一个任务过去。它会拿到一个沙盒环境:有终端、有文件系统、还有一个看得见的桌面。你能实时看它打开浏览器、点来点去,也可以不理它,等它干完再看录像回放。它会先做计划,然后一边干一边把进度勾掉。 这个引擎本身是个下拉菜单。每个代理都有自己的"方言":Codex有它的app-server RPC,Claude Code有自己的一套代理协议,OpenCode是个HTTP/SSE服务器,Pi也有自己的RPC。你要是把产品直接跟其中一个绑死,那你的线程、存储、界面就都跟着那个代理的形态走了。 所以UseAgent里定了一条规矩:下游任何东西都不知道现在跑的是哪个引擎。每个引擎都有一个适配器,负责说它的原生协议,然后翻译成一套统一的规范事件流。支持ACP协议的代理也有对应的适配器,但原生驱动才是正路。UI、记忆、产物、Slack——它们只认规范事件。把Claude Code换成Codex,就是个下拉菜单的事,你的线程和文件都不动。 界面本身很小,难的是翻译的保真度:每个工具对工具调用的边界、流式传输、什么叫"干完了",理解都不一样。适配器把这堆烂摊子收在一个地方处理掉。 关键设计:运行记录就是事件日志 大多数代理工具把一次运行当成一个活进程。关掉标签页,过程就丢了。后端中途重启,也没了。在UseAgent里,一次运行就是Postgres里一串只追加的规范事件日志。UI从来不渲染活进程,它渲染的是日志。每一次工具调用、每一次文件变更、每一次状态翻转,都是一行记录,按顺序,永远在。 这一个决定解决了所有其他问题。运行能扛过后端重启。你可以从另一台设备重新连上,线程从游标位置重建。你能审计某个代理上周二到底干了什么,一次工具调用一次工具调用地查。 然后就是那个证明:demo.useagent.org这个演示站是个纯静态网站。没有后端,背后也没有数据库。你点开的每一个会话,都是真实的事件日志在浏览器里回放:时间线、产物、多代理运行,全都有。如果运行记录不是事件溯源架构,这个演示根本不可能存在。我不是为了做营销才搭的演示,我就是把日志导出来,它们直接就能跑。那一刻我就知道,这个架构选对了。 交付的是真文件,密钥不进沙盒 交付物是你能在浏览器里打开编辑的真实文件:带公式的电子表格、PDF、演示文稿、代码。代理用的那台电脑是一次性的,密钥永远不会进到沙盒里。 这个项目最反常识的地方在于:它没有发明新的代理协议,而是把所有现有协议的差异吞进适配器里,让上层只面对一套统一的事件流。结果就是,换引擎的成本低到可以随便试,而运行记录变成了可审计、可回放、可重建的资产。 如果你也在折腾AI代理,值得去GitHub上看看这个项目的适配器是怎么写的——那部分才是真正的工程含量。 特别

about image

为青少年篮球爱好者提供专业的训练营,帮助他们从基础到高阶技能的全方位提升。...

为青少年篮球爱好者提供专业的训练营,帮助他们从基础到高阶技能的全方位提升。...