Coding Agent、Computer Use 与 A2A
这三个是 2025 年后最常被问的「新范式」,但经常被混为一谈。一句话分清: Coding Agent = 改代码;Computer Use = 操作图形界面;A2A = Agent 之间说话。
一、三者定位
| Coding Agent | Computer Use | A2A | |
|---|---|---|---|
| 操作对象 | 代码仓库(文件 + 终端) | 屏幕(鼠标键盘 + 截图) | 别的 Agent |
| 接口 | 文件读写 + shell | 视觉模型 + 点击/输入 | 任务委派协议 |
| 典型产品 | Claude Code、Codex CLI、Cursor | 各家的 computer-use 模型 | Google 主导的 A2A |
| 核心难点 | 沙箱与验证 | 视觉定位与纠错 | 身份、权限、结果契约 |
二、Coding Agent:本质是「带工具的循环」
读需求 → 找文件 → 改代码 → 跑测试 → 看报错 → 再改(循环)→ 提交读需求 → 找文件 → 改代码 → 跑测试 → 看报错 → 再改(循环)→ 提交它之所以能工作,靠的是闭环反馈:有测试、有编译器、有 lint —— 这些是可靠的「对错信号」,比纯聊天可靠得多。
工程上的四个关键设计
| 设计 | 为什么 |
|---|---|
| 工具最小化 | 只给 read/write/run 几个工具,工具越多越容易乱用 |
| 沙箱隔离 | 容器内运行,限制网络与文件系统(否则一条 rm -rf 就完了) |
| 上下文管理 | 代码库太大必须做检索 + 摘要,不能全塞 |
| 人在环上 | 提交前 diff 审核;危险命令(force push、删库)必须拦 |
为什么它比聊天式生成靠谱
| 纯生成 | Agent 式 |
|---|---|
| 一次输出,错了不知道 | 跑测试 → 看错误 → 修正 |
| 不了解仓库现状 | 先读文件再改 |
| 无法验证 | 有编译/lint/测试作为判据 |
三、Computer Use:视觉闭环
截图 → 模型识别界面元素 → 输出动作(click/type/scroll)→ 执行 → 再截图截图 → 模型识别界面元素 → 输出动作(click/type/scroll)→ 执行 → 再截图难点不在动作,在「看懂 + 纠错」:
| 难点 | 说明 |
|---|---|
| 坐标定位 | 模型给的是像素坐标,分辨率/缩放变化会偏 |
| 状态确认 | 点完之后要判断「有没有生效」,不能盲点下一步 |
| 长任务漂移 | 二三十步后容易跑偏,需要定期截图自我校验 |
| 速度与成本 | 每步一张图,token 消耗极高 |
风险明显更高
- 不可逆操作(删文件、转账、发帖)—— 必须有人确认;
- 凭据泄露 —— 屏幕上可能显示密码、验证码;
- 提示注入 —— 网页内容里藏指令,模型可能照做。
所以 Computer Use 目前主要用在:受控的重复性操作(填表、批量导出)、测试与自动化,而不是开放式的日常操作。
四、A2A:Agent 之间怎么协作
单 Agent 干不了的事,拆给多个 Agent —— 但不是「让模型互相发消息」那么简单,需要协议:
客户端 Agent →(任务委派)→ 远程 Agent
←(状态/结果)←客户端 Agent →(任务委派)→ 远程 Agent
←(状态/结果)←协议要解决的四个问题
| 问题 | 做法 |
|---|---|
| 怎么发现对方能力 | Agent Card(声明技能、输入输出、鉴权方式) |
| 怎么派任务 | Task 对象:id、状态(submitted/working/completed/failed)、产物 |
| 怎么传中间进度 | 状态更新 + 流式事件 |
| 怎么鉴权 | 复用 OAuth2 / mTLS,按用户身份透传 |
与 MCP 的区别(高频混淆点)
| MCP | A2A | |
|---|---|---|
| 连接的是 | 工具/数据源(模型 → 能力) | 另一个 Agent(Agent → Agent) |
| 交互粒度 | 一次工具调用 | 一个任务(可能多轮) |
| 能否自主决策 | 不能(只是执行) | 能(对方也是 Agent) |
一句记忆法:MCP 是「给 Agent 装手」,A2A 是「让 Agent 找人」。
五、多 Agent 编排的三种形态
| 形态 | 说明 | 适用 |
|---|---|---|
| Supervisor | 一个主 Agent 分派 + 汇总 | 最常见,好调试 |
| Pipeline | 流水线,每个 Agent 一道工序 | 步骤固定的流程 |
| Swarm / 去中心 | Agent 之间直接交接 | 灵活但难排查 |
实践建议:先用 Supervisor。去中心化的多 Agent 看起来酷,但出了问题很难定位是哪个 Agent 的锅。
六、落地时的四个坑
- 上下文在 Agent 之间丢失:交接时必须显式传「目标 + 已知事实 + 约束」,不能假设对方知道前文;
- 无限互调:A 让 B 做,B 又转回 A —— 要设最大跳数与循环检测;
- 成本爆炸:每次交接都是一次完整上下文,链路一长费用指数上升;
- 责任不清:出错了要能追到具体 Agent 与具体步骤 → trace 必须贯穿。
七、速查
| 问题 | 答案 |
|---|---|
| Coding Agent 为什么靠谱 | 有测试/编译/lint 作为可靠反馈,形成闭环 |
| Coding Agent 必须有什么 | 沙箱、最小工具集、diff 审核 |
| Computer Use 的核心难点 | 视觉定位 + 状态确认 + 长任务漂移 |
| Computer Use 最大风险 | 不可逆操作与凭据泄露 |
| A2A 解决什么 | Agent 之间的任务委派与结果契约 |
| MCP 和 A2A 的区别 | MCP 连工具,A2A 连 Agent |
| 多 Agent 首选哪种 | Supervisor(好调试) |
| 多 Agent 最常见事故 | 上下文丢失与无限互调 |
Cao Note