96 lines
7.5 KiB
Plaintext
96 lines
7.5 KiB
Plaintext
---
|
|||
|
|
title: Computer Use 与 A2A 任务后端规划
|
||
|
|
description: 以独立电脑环境验证任务闭环,再通过 A2A 接入远程 Agent。
|
||
|
|
---
|
||
|
|
|
||
|
|
# Computer Use 与 A2A 任务后端规划
|
||
|
|
|
||
|
|
记录日期:2026-10-28。状态:已确认建设方向,尚未实现、部署或完成真实服务验收。本文不改变现有接口承诺,也不表示已新增任务后端类型。
|
||
|
|
|
||
|
|
## 目标与选型
|
||
|
|
|
||
|
|
在现有语音助手中提供一台可观看、可接管的 AI 电脑:用户通过语音提出任务,后台 Agent 操作浏览器、文件或画板,网页展示同一桌面的执行过程,最终返回成果并由 Speaker 播报。
|
||
|
|
|
||
|
|
电脑运行环境首选 [AIO Sandbox](https://github.com/agent-infra/sandbox)。它提供浏览器、Shell、文件与桌面操作接口及 VNC 入口。模型和任务推理循环由独立 Computer Agent 提供,AIO 本身不负责理解和完成用户目标。采用前固定镜像、SDK 和 API 版本,并验证所选版本的桌面能力;不混用最新文档与旧镜像。
|
||
|
|
|
||
|
|
增加 A2A 作为可选远程 Agent 后端。首版仅实现客户端适配,使用[官方 Python SDK](https://github.com/a2aproject/a2a-python),明确支持的协议版本。A2A 用于委派任务、交换进度、补充输入与成果;桌面显示和接管使用独立接口。
|
||
|
|
|
||
|
|
## 架构与现有能力复用
|
||
|
|
|
||
|
|
```text
|
||
|
|
Speaker / Pipecat 语音链路
|
||
|
|
→ TaskService:记录、配置快照、进度、取消、结果
|
||
|
|
→ A2AExecutor:远程任务协议适配
|
||
|
|
→ Computer Agent:多模态观察与行动循环
|
||
|
|
→ AIO Sandbox:桌面、浏览器、文件、Shell
|
||
|
|
→ 网页电脑面板:noVNC 观看与接管
|
||
|
|
```
|
||
|
|
|
||
|
|
- 保留现有 reasoner、opencode,新增 a2a 资源类型;首版仍仅提示词 Pipeline,一个助手最多绑定一个任务后端。
|
||
|
|
- 复用 `prepare/run/cancel/snapshot/send_input` 执行器边界、任务卡片和 Speaker 通知,尽量不修改 Pipecat 框架。
|
||
|
|
- ComputerUseExecutor 可用于早期直连验证;它是过渡实现,暂不承诺增加长期公开的 computer 资源类型。最终远程 Computer Agent 优先通过 a2a 接入。
|
||
|
|
- Pipecat Jobs 负责平台侧任务生命周期,远端 Agent 负责内部模型循环和恢复;平台断线重连只观察已存在任务,不重新执行远端目标。
|
||
|
|
- 暂不引入 Deep Agents 或 LangGraph。只有真实任务暴露长上下文、技能加载或恢复需求后,再通过对照试验决定。
|
||
|
|
|
||
|
|
当前 MCP 客户端会省略图片返回,不能直接把截图工具接入 Reasoner 就声称支持 Computer Use。首版由 Computer Agent 直接处理截图与模型消息;以后统一多模态工具返回时,另行设计图片大小、历史裁剪和模型兼容性。
|
||
|
|
|
||
|
|
## 阶段一:真实电脑操作闭环
|
||
|
|
|
||
|
|
- [ ] 在独立环境部署一台固定 Linux 电脑,验证截图、点击、输入、拖拽、文件保存及桌面显示。
|
||
|
|
- [ ] 实现最小 Computer Agent,设置动作次数、执行时限及截图历史上限,记录动作与失败原因。
|
||
|
|
- [ ] 增加网页电脑面板、暂停、接管和交还操作,界面遵循 `frontend/DESIGN.md`。
|
||
|
|
- [ ] 接管时停止下发 AI 动作并等待在途动作结束;交还后重新截图,禁止根据旧画面继续操作。
|
||
|
|
- [ ] 为电脑会话分配独立标识和工作目录,明确销毁环境与成果保留规则。
|
||
|
|
- [ ] 桌面和操作 API 通过服务端鉴权代理访问,远端密钥不下发浏览器;首版保持单租户、单电脑,不挂载宿主敏感目录。
|
||
|
|
|
||
|
|
验收任务:语音要求“打开画板,画一个红色三角形并保存 PNG”,网页看到全过程;中途能接管再交还;最终能下载实际保存的文件并听到结果播报。连续曲线需要时增加整条笔画路径工具,不让每个像素移动都触发一次模型调用。
|
||
|
|
|
||
|
|
该阶段使用真实模型和真实桌面;模拟测试单独标记,不代替端到端验收。
|
||
|
|
|
||
|
|
## 阶段二:A2A 通用远程后端
|
||
|
|
|
||
|
|
- [ ] 新增 a2a 资源配置:服务/Agent Card 地址、服务端凭据、时限和能力检查;接入现有启用、绑定与配置快照规则。
|
||
|
|
- [ ] 读取 Agent Card,校验协议版本、传输与流式能力;首版只支持一种明确的 HTTP 绑定,不同时实现所有传输。
|
||
|
|
- [ ] 实现提交、流式状态/成果更新、查询、取消、补充回答;无流式能力时使用有界轮询。
|
||
|
|
- [ ] 持久化本地任务与远端 taskId/contextId 的映射,支持进程重启后查询远端已有任务。
|
||
|
|
- [ ] 支持文本和文件成果;定义文件大小、访问鉴权、保留时间及下载失败行为。
|
||
|
|
- [ ] 将阶段一的 Computer Agent 包装为 A2A 服务,并用独立测试服务验证适配器不依赖电脑专有字段。
|
||
|
|
|
||
|
|
必须保留的语义:
|
||
|
|
|
||
|
|
| 远端行为 | 平台处理 |
|
||
|
|
| --- | --- |
|
||
|
|
| 直接返回 Message | 按直接响应处理,不伪造远端异步任务句柄或仅据文字判断执行成功 |
|
||
|
|
| 返回 Task | 保存远端标识并跟踪状态,提交回执不代表完成 |
|
||
|
|
| input-required | 映射待输入;简单问题可由 Speaker 追问,复杂输入由网页处理 |
|
||
|
|
| auth-required | 独立标识认证需求,进入网页流程,不当作普通问答或播报凭据;不支持的认证方式明确提示 |
|
||
|
|
| completed | 映射“远端报告完成”,不宣称平台独立验证成功 |
|
||
|
|
| rejected / failed | 映射失败并保留远端原始状态与原因 |
|
||
|
|
| 取消请求已发送 | 保留取消中,收到远端确认后才标记已取消;不代表回滚副作用 |
|
||
|
|
| 断线或提交结果不确定 | 查询已知句柄;没有可靠句柄时标记未知,不盲目重新提交 |
|
||
|
|
|
||
|
|
验收覆盖:直接消息、异步完成、拒绝、失败、输入续跑、认证需求、取消被拒、流式断开、进程重启、文件成果和重复提交。模拟服务覆盖协议边界,真实 Computer Agent 验证完整语音到成果链路。
|
||
|
|
|
||
|
|
## 阶段三:电脑体验与可靠性增强
|
||
|
|
|
||
|
|
- [ ] 定义版本化的电脑会话扩展,包含 computerSessionId、受控查看入口和成果引用;明确这不是 A2A 标准字段。
|
||
|
|
- [ ] 定义接管/交还控制权状态机及桌面断线行为;A2A 任务继续运行与桌面查看连接分别管理。
|
||
|
|
- [ ] 根据实际需求增加环境创建/回收、资源限额、空闲超时、录屏和成果预览。
|
||
|
|
- [ ] 用真实任务比较成功率、模型调用数、费用、耗时、取消延迟和恢复行为,再决定扩展并发或更换 harness。
|
||
|
|
|
||
|
|
## 范围与优先级
|
||
|
|
|
||
|
|
默认顺序为阶段一 → 阶段二 → 阶段三。若出现明确的第三方 A2A 接入需求,可先做阶段二的通用客户端,再接电脑服务。
|
||
|
|
|
||
|
|
首版不做 Agent 市场、自动发现、动态多 Agent 路由、完整 A2A Server 对外开放、多租户桌面编排、任意操作系统支持;不扩大 Workflow/Realtime 的任务委派范围。
|
||
|
|
|
||
|
|
本方向与生产化计划并列推进,不改变标准契约、可观测性、运行可靠性和质量门禁的既有顺序。现有 ARQ 迁移计划面向知识库、分析、Webhook 等后台作业,不意味着自动重放远端 A2A 任务或迁移实时媒体链路。
|
||
|
|
|
||
|
|
## 参考资料
|
||
|
|
|
||
|
|
- [AIO 桌面操作接口](https://sandbox.agent-infra.com/daemon/basic/display):能力探测、截图、动作、录屏与桌面查看。
|
||
|
|
- [A2A 官方规范](https://github.com/a2aproject/A2A/blob/main/docs/specification.md):消息、任务生命周期、流式成果与取消语义。
|
||
|
|
- [现有任务后端说明](/prompt-task-backends):已实现能力与当前边界。
|
||
|
|
|
||
|
|
以上外部资料是选型依据,实施时须按锁定版本再次核对;本规划不构成真实服务兼容性验证。
|