第十四章 业界真实案例解析¶
导读¶
前 13 章我们讲了 Agent 的"原理与组件"——ReAct、Function Calling、规划、记忆、MCP、多 Agent、框架、评测、安全。但这些是从抽象到抽象的"零件图"。本章把镜头切到现实——7 个真实部署或近生产演示的 Agent 系统的全景分析。每个案例都遵循统一结构:业务背景 → Agent 架构 → 关键技术决策 → 失败模式与教训 → 工程启示 → 来源——5 个角度把案例掰开揉碎,让读者从"听过名字"到"看懂架构、记住教训、能引用到自己的项目"。
7 个案例覆盖 Agent 应用的全谱系:第一,代码 Agent(Cursor / GitHub Copilot Workspace、Devin / Cognition)——IDE 内嵌到自主软件工程师;第二,桌面 / 浏览器视觉 Agent(Anthropic Claude Computer Use、OpenAI Operator)——直接操作 GUI 的新范式;第三,浏览器自动化 Agent(MultiOn / Browser Use)——传统 RPA 的 LLM 化;第四,企业客服 Agent(LangGraph 客服、Sierra / Salesforce Agentforce)——从规则引擎到 LLM Agent 的产业升级。读本章不要光看名字——重点抓每个案例的**关键技术决策**与**失败模式**——这些是教科书级别避坑指南。最后会有一个对比矩阵 + 工程实战要点把 7 个案例串起来,抽象出 Agent 工程的共同要素。所有案例都附 来源 子节列具体的 URL / arXiv ID / GitHub 仓库——读者可顺藤摸瓜去原始资料核实。
为什么这一章用"案例研究"而非"原理论证"?因为 Agent 工程的核心困难不在原理(前 13 章已讲清)而在工程落地——一个 Agent 在生产环境能不能跑稳,取决于数十个工程细节(工具粒度 / 上下文压缩策略 / 人审 hook 接哪里 / 失败重试几次 / 沙箱怎么搭)——这些细节无法从原理推导,只能从真实案例学习。每个案例都浓缩了团队数月乃至数年的工程试错——读者从这 7 个案例能跳过这些试错直接拿走经验。读本章建议两遍——第一遍快读抓每个案例的"业务背景 + 失败模式",第二遍精读抓"关键技术决策 + 工程启示"——后者才是读者能引用到自己项目的部分。
案例 1:Cursor / GitHub Copilot Workspace — 代码 Agent¶
业务背景¶
代码 Agent 的演进从"补全"开始——GitHub Copilot 2021 年发布,做的是单行 / 单段补全,本质是"超强的 tab 键"。Cursor 2023 年由 Anysphere 创立,走得更远——把 IDE 从头重写为 AI 原生(不是给 VSCode 加 Copilot 插件,而是用 VSCode fork 但 UI / 交互重新设计为 Agent 优先)。Cursor 演进三阶段:第一阶段,Chat 侧边栏——边写代码边问,类似 Copilot Chat;第二阶段,Composer(2024 年)——能跨多文件做修改(如"加一个登录功能"会同时改 auth.ts、routes.ts、schema.prisma),从单文件补全到多文件编辑是巨大跨越;第三阶段,Background Agent(2025 年)——异步执行长任务(如修一个 SWE-Bench issue),跑完通知用户,类似 Devin 但内嵌在 IDE 里。GitHub Copilot Workspace(2024 年预览)走类似路线——从 Copilot Chat 演进到能处理 issue → 分支 → PR 整条流水。这条演进路径的关键是:用户期望从"AI 帮我写下一行"升级到"AI 帮我修完整个 issue"——任务时长从秒级到分钟甚至小时级。
代码 Agent 之所以成为最早落地的 Agent 场景,根因是软件工程工作流的天然结构——代码是文本(LLM 擅长)+ 有客观评测(编译 / 测试通过率)+ 工具边界清晰(编辑 / 终端 / 测试)。这三条让 LLM 在代码场景比其他场景表现更稳——评测分数有客观锚(test pass)而非 LLM-as-judge 主观分。但代码 Agent 的真正难点不在"写对一段代码"——而在"理解一个几十万行 codebase 的全局结构"——LLM 的上下文窗口远装不下整个 codebase,必须靠检索与图谱补足。Cursor / Devin / Copilot Workspace 三个产品的差异化竞争焦点全在"如何把 codebase 上下文塞进 LLM"——这是代码 Agent 工程的核心战场。Cursor 走"语义图谱 + 原子工具"路线、Devin 走"多 Agent + 长期记忆"路线、Copilot Workspace 走"GitHub 数据 + PR 流水"路线——三家策略不同但都把"上下文工程"作为核心护城河。
Agent 架构¶
Cursor 的架构围绕 Composer Agent 展开——它是中央编排者。Composer 接收用户指令(自然语言 + 当前文件 / 选区上下文),调用四个组件:第一,Retrieval(代码语义图谱)——把整个 codebase 做语义索引(embedding + 符号表 + 依赖图),用户问"加登录功能"时检索出 auth/ routes/ schema.prisma 等相关文件 / 符号 / 依赖路径;第二,Tools(原子化工具集)——apply_diff(应用补丁)、run_terminal(跑测试 / lint / build)、search_codebase(语义 + 关键词检索)、read_file(读特定文件);第三,LLM——Composer 把检索到的上下文 + 用户指令 + 历史动作打包成 prompt 发给 LLM(GPT-4 / Claude),LLM 返回下一步动作(调哪个工具、传什么参数);第四,输出 → 用户确认——Composer 不直接写文件,而是产出 diff 预览给用户,用户接受 / 拒绝 / 编辑。Background Agent 是 Composer 的异步形态——用户提交任务后 Agent 在云端的 Docker 容器里跑(有自己独立的 codebase checkout 与终端),跑完发回 PR / 通知。
Cursor 的架构精髓不在 Composer 本身——而在 Composer 与 IDE 的紧耦合。Composer 能拿到"用户当前光标位置 / 选区 / 最近编辑的文件 / 当前打开的 tab"等 IDE 状态——这让 Agent 的上下文不只是"用户输的文字"还有"用户在做的事"——是预测意图的关键。GitHub Copilot Workspace 走类似但不同的路线——它不内嵌 IDE 而是嵌入 GitHub PR 流水(用户在 GitHub issue 上点"用 Copilot Workspace 解决"→ Workspace 起一个云端 IDE → Agent 跑 → PR)——把"Agent 工作环境"放在云端的 git 分支上而非用户本地 IDE。两者本质相同(Agent + 检索 + 工具 + 用户审)但落地路径不同——Cursor 内嵌贴近开发者、Copilot Workspace 嵌入 PR 流水贴近协作——这个差异决定了产品定位(Cursor 给个人开发者、Copilot Workspace 给团队 GitHub 流程)。
关键技术决策¶
第一,Speculative editing(投机编辑)——Cursor 不仅是"用户描述清楚再让 AI 改",而是基于用户当前光标位置 / 选区 / 最近编辑历史预测用户接下来想做什么,提前准备上下文与可能的 diff。这种"预测意图"让 Agent 显得"快"——用户还没说话它已经在准备。第二,Context-aware retrieval 用代码语义图谱——不是单纯 embedding 检索(chunk 后向量相似度),而是结合符号表(函数 / 类 / 变量的定义与引用)、依赖图(import 关系)、调用图(谁调谁)的多维检索。这种"语义图谱"比纯向量检索更精准——检索 auth 相关代码时能把调用 auth.login() 的所有地方都拉出来,避免漏文件。第三,Tool atomization(工具原子化)——Cursor 把工具拆得很细:apply_diff 不做"重写整个文件"而是"hunk 级补丁",run_terminal 不做"任意 shell"而是"白名单命令 + 沙箱"。原子工具让 LLM 决策更简单(每个工具输入输出明确)、失败更可控(小补丁出错易回滚)。第四,MCP server 暴露——Cursor 把自己暴露为 MCP server,外部工具(如 Linear / GitHub / Slack)可以作为 MCP client 接入,让 Composer 能直接读 issue / 创建 PR——这是"Cursor 作为 Agent 平台"的关键一步。
失败模式与教训¶
第一,Long-task context drift(长任务上下文漂移)——Composer 跨多文件编辑时,前几步的上下文(如"我在 auth.ts 加了 user 字段")到第 10 步可能被压缩 / 遗忘,导致后面的修改与新字段脱节。Cursor 用"中间结果摘要 + 关键文件锁定"缓解但仍时有发生。第二,Diff apply 失败(空白 / 语法)——apply_diff 的痛点是 LLM 生成的 patch 在空白(tab vs 空格)、换行、引号上与原文件不完全匹配,导致 patch 拒绝应用。Cursor 的对策是 fuzzy matching(容差匹配)+ 失败时退回重生成,但仍非 100% 成功。第三,意外删除代码——LLM 在"重写这个函数"时可能漏掉原函数里的某些边界条件分支,让代码"看起来对了但少了 case"。教训是工具不要给"重写整个文件"的高权限,应优先 apply_diff 局部修改。第四,Over-eager edits(过度编辑)——LLM 倾向于"主动改"——用户问"这里为什么报错"它顺手"修"了不相关的代码(觉得"更优")。Cursor 的对策是让用户明确选区 / 范围,限制 Agent 只能在选区内改。
工程启示¶
第一,UI / UX 决定 Agent 上限——Cursor 的护城河是 UX 不是模型——Cursor 用 GPT-4 / Claude(公开模型)但 UX(Composer 面板、diff 预览、cmd-K 内联编辑、@file 引用语法)是自研的。读者复制 Cursor 必须复制整套 UX 而非只调用同样的 LLM。第二,Tool atomicity 比 model capability 更重要——一个用 GPT-4 + 大粒度工具("重写文件")的 Agent,效果不如用 GPT-4o-mini + 原子化工具(apply_diff hunk 级)的 Agent。工具粒度决定失败半径。第三,小 diff > 大 diff——LLM 生成小补丁的准确率远高于大补丁(生成的 token 越多出错越多),所以让 Agent 多步小改比一步大改更稳。第四,IDE 内嵌 Agent 是最贴近开发者工作流的位置——用户不愿离开 IDE 切到网页去用 Devin——Cursor 把 Agent 内嵌进 IDE 让用户在熟悉的环境里工作,这是产品落地路径。第五,MCP 是 Agent 与外部工具通信的事实标准——Cursor 支持 MCP 让生态(issue 跟踪、PR、文档)自动接入,避免每接一个外部服务都重写代码。
来源¶
- Cursor 官方博客与 changelog:cursor.com/blog(含 Composer / Background Agent 发布说明)
- Cursor 文档 docs.cursor.com(含 MCP 集成、Agent 模式说明)
- GitHub Copilot Workspace 公开技术分享与预览说明:githubnext.com/projects/copilot-workspace
- SWE-Bench 论文(作为相关评测基准):arXiv:2310.06770,github.com/SWE-bench/SWE-bench
- Anysphere(Cursor 母公司)融资与产品报道:可参考 techcrunch.com 等公开报道
案例 2:Devin / Cognition — 自主软件工程师¶
业务背景¶
2024 年 3 月,Cognition 公司发布 Devin,号称"first AI software engineer"(首个 AI 软件工程师)。Cognition 由 Scott Wu 等创立,融资估值迅速达 20 亿美元级别。Devin 的发布视频极具震撼——给定一个 SWE-Bench issue(如"修复 sympy 库的某个 bug"),Devin 自主完成:读 issue → 浏览代码 → 写修复 → 跑测试 → 提 PR,全程几乎无人工干预。这引爆了 Agent 圈——"软件工程师要失业"的标题满天飞。但随后的复现讨论把热度拉回现实——独立评测者发现 Devin 在 SWE-Bench 上的实际通过率远低于 demo 视频,部分任务它根本没跑通或需要大量人工介入。Devin 案例的核心价值不在产品本身——而在于它是"Agent 营销 vs 实际能力"差距的标本。
Devin 引发的更大讨论是"AI 是否能替代软件工程师"。Cognition 的 demo 与后续报道让"软件工程师 5 年内失业"成热门话题——但行业冷静下来后普遍共识是:Devin 这类 Agent 当前更像"初级工程师助理"而非"独立工程师"——能做"修小 bug / 加小功能 / 跑测试"等任务,但遇到"架构设计 / 复杂业务逻辑 / 跨系统重构"等高级任务仍力不从心。SWE-Bench 上的 13-15% 通过率 vs 人类 70%——这个 gap 不是一两年能补的——而且 SWE-Bench 任务本身是"修单库的 issue",比真实生产场景(多库协作 / 老系统 / 隐式业务规则)简单一个数量级。Devin 案例的真正价值是把它当作"自主 Agent 上限"的实证研究——观察它在哪些任务上能做、哪些做不了、做不了的原因是什么——这给整个 Agent 工程圈提供了宝贵经验教训。
Agent 架构¶
Devin 是多 Agent 系统——核心三件套:第一,Planner(规划者)——把用户的高层指令("修这个 issue")拆成可执行步骤("读 issue / 找相关文件 / 写 patch / 跑测试 / 提 PR");第二,Coder(编码者)——执行编码步骤,在编辑器里改代码;第三,Debugger(调试者)——跑测试失败时接管,分析失败原因、修 patch、再跑。三者通过**长期记忆(knowledge base)** 协作——Planner 拆完步存到记忆,Coder 读记忆继续,Debugger 修完更新记忆。Devin 配套"三件套工具":浏览器(查文档 / 搜 API 用法)、终端(跑命令 / 测试 / git)、编辑器(改代码)。整个 Agent 跑在一个云端容器里——用户在网页提交任务,Devin 在云端自主跑,用户可以"看"它做什么(实时屏幕分享)但不能中断细节,跑完通知。
Devin 架构的精髓是"模拟人类工程师工作流"——人类工程师修 issue 也是"读 issue → 找代码 → 写 patch → 跑测试 → 失败 debug → 提 PR"——Devin 把这条工作流拆给三个子 Agent 各司其职。这种"模拟人类"的架构选择有利有弊:利是符合人类直觉、易于人审 debug(看 Planner 拆步合不合理 / Coder 写得对不对 / Debugger 修对没);弊是人类工作流本身不是最优——人类用这套流程是因为人脑容量有限,并非它最高效。Devin 跟人类一样会卡在"长任务上下文累积 + 单点失败导致整任务失败"——这是它的根本局限。后续 Agent 架构演进方向是把 Planner / Coder / Debugger 合一(让单一 LLM 长上下文承担三职)+ checkpoint 恢复机制——避免多 Agent 协调开销。Cursor / Operator 走的是"单 Agent + 多工具"而非 Devin 的"多 Agent"——这也印证"多 Agent 不是越多越好"。
关键技术决策¶
第一,Long-context planning(长上下文规划)——Devin 用大上下文 LLM 把整个 issue 描述 + 已读的代码 + 已执行的命令 + 已收的输出都塞进 prompt,让 Planner 在长上下文里做整体规划。这避免"短记忆拆步脱节"问题。第二,Persistent state across steps(跨步骤持久状态)——Devin 不是无状态的"问一次答一次"——它有一个外部状态存储(knowledge base),记录"我现在在解决什么子任务、已尝试什么、已确认什么"。每步开始时 LLM 先读这个状态再决策。这让 Devin 跨小时级长任务仍能保持上下文连续。第三,Step-by-step replan on failure(失败时分步重规划)——Debugger 修不了某个 bug 时,Devin 不是死磕同一个策略——而是回到 Planner 重新规划("原计划走不通,换思路")。这是 ReAct 循环的升级版——失败不是 retry 而是 replan。第四,Knowledge accumulation(知识累积)——Devin 在解决多个任务时积累"经验"(如某个库的测试怎么跑、某个 API 的常见用法),存在 knowledge base 里下次复用。这是从"单任务 Agent"到"学习型 Agent"的关键。
失败模式与教训¶
第一,早期 demo 与实际使用差距——发布视频里 Devin 漂亮地解决 SWE-Bench issue,但独立评测者(如 Hamel Husain 等的公开复现分析)发现实际通过率被高估——视频可能挑了 Devin 擅长的 case 跑,且部分任务有"人工干预"痕迹。SWE-Bench 排行榜(swebench.com)后续显示 Devin 的实际 resolved rate 在 Lite 子集约 13-15%(早期 demo 号称更高)——与人类开发者 70% 差距大。第二,长 task 失败率高——Devin 跑短任务(10 分钟内)通过率尚可,但跑 1 小时以上长任务通过率断崖式下降——原因是上下文累积、状态漂移、长链路任何一步错全盘输。第三,自动 PR 误判——Devin 提交的 PR 经常"看起来对但实际没解决问题"——它跑测试通过但测试本身可能漏 case,或它"修"了表面 bug 没修根因。维护者审 PR 时要重新核对,反而增加工作量。第四,多 Agent 协调复杂——Planner / Coder / Debugger 三者交接时信息可能丢失——Planner 给 Coder 的指令模糊,Coder 解读偏了;Debugger 修了但没告诉 Planner,Planner 仍按原计划走。
工程启示¶
第一,Agent 评测的"营销 vs 实际"差距——demo 视频不可信,要看公开基准排行榜(如 SWE-Bench)的独立验证。读者评估 Agent 产品时**永远要问"基准分数是多少、谁测的"——而不是看官网视频。第二,**自主性 vs 可控性的权衡——Devin 走"完全自主"路线(用户提交任务就走人),Cursor 走"半自主"路线(用户在 IDE 内全程参与)——后者落地更成功。完全自主听起来酷但失败率高且用户不信任。第三,人审仍是底线——Devin 的 PR 仍需维护者审——Agent 自动化的是"写代码"环节,但"代码是否真的解决问题"仍要人判。第四,多 Agent 不是越多越好——Devin 多 Agent 但失败率仍高——多 Agent 增加协调复杂度,简单单 Agent + 良好工具反而更稳。第五,长任务是 Agent 工程的真正难点——短任务谁都做得好,1 小时以上长任务是分水岭。长任务的解法是 checkpoint + 中间状态持久化 + 失败时从 checkpoint 恢复而非从头跑。
来源¶
- Cognition 官方 Devin 介绍与 demo 视频:cognition.ai/blog/introducing-devin(2024 年 3 月发布)
- SWE-Bench 排行榜(含 Devin 与其他 Agent 的实际分数):swebench.com(注意:独立复现的 Lite 子集通过率与官方报告分数有差异,以排行榜与公开复现博客为准)
- SWE-Bench 论文:arXiv:2310.06770,github.com/SWE-bench/SWE-bench
- 复现讨论与批评文章:Hamel Husain 等公开分析(buttondown.com/hamelhuang),可参见 towardsdatascience.com 等公开博客对 Devin demo 与实际差距的讨论
- Cognition 官方后续技术更新:cognition.ai/blog
案例 3:Anthropic Claude Computer Use — 浏览器/桌面操作 Agent¶
业务背景¶
2024 年 10 月,Anthropic 发布 Claude 3.5 Sonnet(new)同时推出 Computer Use beta——让 Claude 能直接操作桌面应用(不只是聊天给文字回复,而是真的"用鼠标点、用键盘敲"来操作 GUI)。这是行业第一个由主流大模型厂商官方推出的"视觉 + 动作"原生 Agent 接口——之前的浏览器 Agent(如 MultiOn / Browser Use)是 LLM + 第三方工具拼装,Claude Computer Use 把视觉理解与动作输出统一在模型本身。意义是划时代的——它把 Agent 从"调 API 的工具调用者"推进到"看屏幕的 GUI 操作者"。Computer Use 当前是 beta、有限制(延迟高、准确率受限),但作为新范式被 OpenAI Operator(2025 年 1 月发布)跟随——主流大模型厂商都在押注"视觉 Agent"。
Computer Use 之所以是"新范式",因为之前所有 Agent(包括 Cursor / Devin / 浏览器 Agent)都依赖"结构化接口"——调 API / 解析 DOM / 读代码——Agent 的动作空间是开发者预先定义好的有限集。视觉 Agent 不同——它看的是"人类看到的屏幕",做的动作是"人类做的鼠标键盘动作"——理论上能操作任何人类能操作的软件(哪怕没 API、没 DOM 解析、没文档)。这意味着 Agent 的能力边界从"开发者打包的工具集"扩展到"所有 GUI 软件"——任何带图形界面的程序理论上都是 Computer Use 的"工具"。这个跳跃让 Agent 第一次能进入"非数字化接口"的传统软件世界——老旧的 ERP / 财务系统 / 闭源工业软件 / 桌面办公软件——这些以前没法自动化的现在都有自动化路径。但代价是延迟、准确率与可控性都受限——Computer Use 当前更像"研究预览"而非"生产工具"。
Agent 架构¶
Claude Computer Use 的循环是 截图 → 视觉理解 → 动作 → 下一帧。具体:Agent 拿到当前屏幕截图,发给 Claude 的视觉模型,Claude 输出"下一步动作"——动作是三个工具之一:computer(鼠标点击 / 滚动 / 键盘输入)、text_editor(编辑文件内容)、bash(跑 shell 命令)。Agent 执行这个动作(操作真实桌面 / 在 VM 里跑),然后再截图、再发 Claude、再动作——形成视觉动作循环直到任务完成。整个循环不依赖 DOM / HTML——Claude 是"看像素"做决策,与人类操作电脑的方式一致。三个工具的暴露形式是 Anthropic 的 tool use API——Claude 通过 function calling 决定调哪个工具、传什么参数(如 computer(action="click", coordinate=[523, 411]))。
Computer Use 架构与浏览器 Agent 的关键差异在"作用域"——浏览器 Agent 只能在浏览器内操作(DOM + 截图都限于浏览器视口),Computer Use 能操作整个桌面(任何 GUI 应用)。bash 与 text_editor 工具的存在让 Computer Use 不仅是"GUI 操作"还有"系统操作"——能跑命令、改文件——这让 Claude 能完成"开发任务"(如修代码 + 跑测试)+ "运维任务"(如改配置 + 重启服务)+ "日常任务"(如打开邮件回复 + 整理文件夹)——覆盖范围远超浏览器 Agent。但这种"通用性"的代价是风险——Agent 能改文件、能跑命令意味着一旦决策错可能造成不可逆破坏——所以 Anthropic 强烈建议只在 VM / 容器中跑。这是"通用能力"与"安全风险"的典型权衡——通用性越高、能力越强、安全风险越大——读者设计视觉 Agent 必须想清楚作用域与沙箱。
关键技术决策¶
第一,原生视觉能力 + Function Calling——Claude 3.5 Sonnet 本身有视觉理解能力(看图回答问题),Anthropic 进一步训练它输出"动作"格式(不只是描述图里有什么,还要给出下一步操作)。这种"视觉 + 动作"统一在模型本身而非外挂——比"LLM + 单独 vision 模型 + 单独 action 模型"的拼装方案更稳。第二,固定屏幕分辨率——为了确定性坐标映射,Anthropic 推荐固定虚拟屏幕分辨率(如 1024×768 或 1280×720)——Claude 输出的坐标 [523, 411] 在固定分辨率下映射到具体像素。如果屏幕分辨率不固定(用户随便调窗口大小),坐标映射会失准。固定分辨率是工程化的妥协——牺牲灵活性换确定性。第三,Safety filter on screenshot content——截图可能含敏感信息(密码 / 财务数据 / PII),Anthropic 在截图送入 LLM 前加 safety filter 检测并屏蔽敏感区域(黑掉密码字段)。这是隐私保护的必要工程——但并非万无一失,复杂场景仍可能漏。第四,沙箱运行——官方文档明确建议只在 VM / 容器中跑 Computer Use——直接在用户主机跑风险大(Agent 可能误删文件、误发邮件)。Anthropic 的文档与 API 都按"沙箱内运行"假设设计。
失败模式与教训¶
第一,UI 变化导致误识别——Claude 训练时见过的 UI 长相与实际产品 UI 可能不同(如某软件升级后按钮位置变了),导致 Claude 点错位置。这是"视觉泛化"的局限——模型对没见过的 UI 长相可能猜错。第二,连续动作偏移(coordinate drift)——Claude 一连串点击可能逐步偏移——第一下点准了,第二下偏几像素,第三下偏更多——累积导致点错按钮。原因是 Claude 输出坐标有小幅不确定性,多次执行累积误差。第三,安全边界(屏幕敏感数据)——Claude 可能"看到"不该看的东西(屏幕上弹出的密码 / 财务数据),并把它写进 prompt 上下文,下次推理时可能"想起"这些数据。Anthropic 的 safety filter 部分缓解但不能完全防。第四,Latency 高——每步要截图(数据量大)+ 视觉推理(视觉模型比文本慢)+ 动作执行——单步延迟可达 5-15 秒,跑一个完整任务(如"打开 Chrome,去某网站,下载某文件")可能要几分钟。这让 Computer Use 现阶段更适合"异步任务"而非"实时对话"。
工程启示¶
第一,视觉 Agent 是新范式(vs DOM-based 浏览器 Agent)——传统浏览器 Agent(MultiOn / Browser Use)走 DOM 解析路线(高效、token 少但只能操作网页),Computer Use 走视觉路线(通用、能操作任意桌面应用但慢且贵)。两者互补——网页操作走 DOM,桌面操作走视觉。第二,延迟与准确率权衡——视觉 Agent 延迟必然高(视觉模型慢、token 多)——这是范式代价。降延迟的方法是减步数(每步做更多事)而非减每步延迟。第三,沙箱必设——Computer Use 只能在 VM / 容器中跑——直接在用户主机跑风险大。Anthropic 文档明确建议这点。读者复现 Computer Use 必须先起 Docker / VM 沙箱。第四,坐标确定性靠固定分辨率——读者自建视觉 Agent 必须固定虚拟屏幕分辨率,否则坐标映射乱。这是工程化妥协——牺牲灵活性换确定性。第五,Safety filter 不是可选——视觉 Agent 能"看到"屏幕所有内容,包括敏感数据——必须加 filter 屏蔽。这是企业部署的硬要求。
来源¶
- Anthropic 官方 Computer Use 文档:docs.anthropic.com/en/docs/build-with-claude/computer-use(含 API 调用、安全建议、最佳实践)
- Anthropic 发布博客(2024 年 10 月):anthropic.com/news/3-5-models-and-computer-use
- Anthropic Computer Use 相关参考实现:github.com/anthropics/anthropic-quickstarts(含 computer-use-demo 子项目)
- 相关论文:2024 年 10 月 Anthropic 技术报告与模型卡片 docs.anthropic.com/en/docs/about-claude/models
- OpenAI Operator 后续跟随(视觉 Agent 范式对照):openai.com/index/introducing-operator/
案例 4:LangChain / LangGraph 客服 Agent — RAG + 工具调用¶
业务背景¶
企业客服系统经历了三代演进:第一代**规则引擎**(IVR / 决策树)——僵化、不灵活、用户体验差;第二代**NLU + 意图分类**(Dialogflow / Rasa)——能识别意图但回答仍是预设话术,无法处理复杂问题;第三代**LLM Agent**(2024 年起)——LLM 直接生成自然回复 + 调用工具查询 / 操作,体验接近人工客服。LangGraph 是企业 LLM 客服落地最多的框架——它的图编排 / human-in-loop / 可观测性满足了企业对可控性与可调试性的硬要求。LangChain 官方博客(blog.langchain.dev)有大量客服 Agent 案例(如某电商用 LangGraph 替换旧客服系统、某金融机构用 LangGraph 做投资顾问)。本案例是把 LangGraph 客服 Agent 抽象成"通用模板"分析——具体公司案例可在 LangChain 案例库查。
企业客服从规则引擎演进到 LLM Agent 的驱动因素是成本与体验双压力——人工客服成本高(每个坐席年成本 8-15 万人民币 + 流失率高)+ 用户对"按 1 按 2"式 IVR 体验极不满(NPS 持续走低)。LLM Agent 让企业能"用 1/10 成本提供接近人工的体验"——经济账算得过来。但企业客服 Agent 的工程要求远高于 to C 聊天机器人——必须可控(不能乱答 / 不能乱调工具)、可审计(每次对话可追溯)、可回滚(错误的动作能撤销)、可兜底(高风险动作人审)。LangGraph 的 StateGraph 抽象恰好满足这些要求——它把 Agent 拓扑显式化(不是 ReAct 那种隐式 LLM 自主决策),让企业工程团队能在节点级别加 hook / guardrail / audit log——这是 LangGraph 在企业场景击败 ReAct 系框架的关键。LangChain 自身也意识到这点——把老 LangChain Agent(基于 ReAct)标记为 legacy,全面押注 LangGraph。
Agent 架构¶
LangGraph 客服 Agent 典型架构是 StateGraph 状态机——节点串联:第一,Triage(分诊)——用户问题进来先分类(intent classification):是查询(走 RAG)/ 操作(走工具)/ 投诉(走人审)/ 售前(转售前 Agent);第二,Knowledge RAG——查询类问题检索企业知识库(FAQ / 产品文档 / 政策),把检索结果作为上下文;第三,Tool Call——操作类问题调工具(查订单 / 退款 / 创建工单 / 升级到人工)——工具按业务系统暴露(如 query_order(order_id) / initiate_refund(order_id, amount) / create_ticket(...));第四,Synthesize——把 RAG 上下文 / 工具结果综合成自然语言回复;第五,Reply——返回给用户;第六,人审 hook——高风险动作(如退款 / 改账户)在 Synthesize 前先发 Slack 通知给人工审批,审批通过才执行。整个流程是 StateGraph——每个节点是函数,条件边按 state 字段路由(如 intent="refund" 路由到 Tool Call,amount > 1000 路由到人审 hook)。
StateGraph 与 ReAct 的核心差异在"控制权归属"——ReAct 是 LLM 自主决定下一步调什么工具("我想想该调哪个"),StateGraph 是开发者预先定义路由条件("intent=refund 走 Tool Call 节点")。前者灵活但不可控(LLM 可能乱调 / 跑偏)、后者僵化但可预测可审计。企业场景必须用 StateGraph——因为合规要求"为什么 Agent 这么答"可追溯——StateGraph 的每个路由决策是确定条件(intent classification 的输出 + 阈值规则)——可写审计日志;ReAct 的路由是 LLM 黑盒推理——审计时只能说"LLM 当时这么想的"——不满足合规。这个差异决定了为什么企业 Agent 几乎都用 StateGraph 而非 ReAct——不是 StateGraph 技术更先进,而是合规要求倒逼。LangGraph 押注 StateGraph 抽象踩中了企业 Agent 的核心需求——这是它 2024 年起在企业市场爆发的原因。
关键技术决策¶
第一,StateGraph 状态机 + 条件边(vs ReAct 循环)——ReAct 是"LLM 自己决定下一步调什么工具"——灵活但不可控(LLM 可能乱调)。StateGraph 是"开发者预先定义节点与边"——LLM 只在节点内做决策,节点间路由是确定条件。企业场景必须用 StateGraph——可控、可测、可审计。第二,Human-in-loop hook(Slack approval)——高风险动作在执行前停下来发 Slack 通知给人工,人工点"批准"才继续。这是企业 Agent 的标配——纯自动 Agent 在企业场景不敢上。LangGraph 用 interrupt_before 节点实现这个 hook。第三,Audit log every step——每步(每个 LLM 调用 / 每个工具调用 / 每个路由决策)写审计日志,便于事后追溯"为什么 Agent 这么答"。企业合规要求审计日志保留 N 个月。第四,Routing by intent classification——Triage 节点用小模型(Haiku / GPT-4o-mini)做意图分类(query / action / complaint / pre-sale),不同意图走不同分支——避免大模型全程跑(贵且慢)。
失败模式与教训¶
第一,RAG 召回不准(文档过时)——客服 RAG 检索企业知识库(FAQ / 政策文档),但知识库可能过时(政策已变但文档没更新),Agent 基于过时文档答错——如"退货政策 7 天"实际已改 15 天,Agent 还答 7 天。教训是 RAG 系统要同步知识库更新机制——文档变了 Agent 必须能"看到"新文档。第二,工具误调用——用户问"我订单 X 状态怎么样"——LLM 可能误判为"用户要退款"调了 initiate_refund——结果真给退款了。原因是 LLM 推理"用户问订单 → 可能要操作"误触发工具。教训是工具调用前加二次确认("您是要查询还是要退款?")——尤其有副作用的工具。第三,长对话上下文压缩(摘要丢失关键信息)——长对话(用户问 10 轮)后 prompt 太长,系统定期做摘要压缩——但摘要可能丢关键信息(如用户早先说"我有 3 个订单"被摘要丢了,Agent 后面只查 1 个)。教训是压缩要保守 + 关键字段(订单号 / 用户 ID)单独保留不压缩。第四,Triage 误分类——意图分类分错(售前问被分到售后)导致走错分支答非所问。教训是 Triage 节点要保留"不确定时走人审"兜底分支。
工程启示¶
第一,StateGraph 比 ReAct 循环更适合生产——ReAct 灵活但 LLM 自主决策风险大;StateGraph 可视化(开发者一眼看懂 Agent 拓扑)、可调试(每个节点单独跑)、可审计(每个路由决策有日志)。生产 Agent 默认 StateGraph 而非 ReAct。第二,Human-in-loop 是企业 Agent 的标配——纯自动 Agent 在企业不敢上(合规、责任归属)。LangGraph 的 interrupt_before 让人审 hook 工程化极简——任何节点都能加。第三,可视化 debug 是杀手锏——LangGraph + LangSmith 让 Agent 跑一次的每步可视化(看 LLM 输入输出 / 看工具调用 / 看路由决策)——出问题时一眼定位。这个能力比代码 print debug 高效 10 倍。第四,意图分类用小模型即可——Triage 这种简单分类任务用 Haiku / GPT-4o-mini 够了,没必要上 Opus / GPT-4——降本关键。第五,企业 Agent 上线必须配审计日志系统——不是为了 debug,是为了合规——监管查"为什么给这个用户答错"时要能拿出完整轨迹。
来源¶
- LangChain 官方博客(客服案例):blog.langchain.dev(含多家企业 LangGraph 客服落地案例)
- LangGraph 开源仓库:github.com/langchain-ai/langgraph(含 StateGraph / interrupt_before / checkpoint 文档与示例)
- LangGraph 官方文档:langchain-ai.github.io/langgraph/
- LangSmith(可观测性):smith.langchain.com
- LangChain 客服 Agent 模板(Customer Support Bot):github.com/langchain-ai/chat-langchain
案例 5:MultiOn / Browser Use — 浏览器自动化 Agent¶
业务背景¶
传统浏览器自动化(Selenium / Playwright)跑测试脚本——脚本依赖 selector(CSS selector / XPath),网页改版(selector 变了)脚本就挂——这是 QA 自动化维护成本高的根因。LLM 浏览器 Agent 的卖点:不依赖固定 selector,而是 LLM 看 page 视觉 / DOM 理解页面,自己定位元素——UI 变了 Agent 也能适应。MultiOn(2023 年发布)是商业公司走 SaaS 路线——给开发者 API / SDK 调用浏览器 Agent。Browser Use(github.com/browser-use/browser-use)是开源项目(2024 年起爆火)——开源 Agent 框架让任何人能本地跑浏览器 Agent。两者技术路线类似(视觉 + DOM 双通道 + 自我纠错循环)——是浏览器 Agent 的代表。
浏览器 Agent 在 2024 年爆发有两大驱动力:第一,多模态 LLM 成熟——GPT-4o / Claude 3.5 Sonnet 视觉能力强到能可靠理解网页截图,让"看图操作"成为可能(之前 GPT-4 Vision 视觉不够强);第二,WebArena 等基准推动——CMU 等学术机构 2023 年发布 WebArena(arXiv:2304.11303)让浏览器 Agent 评测有标准,行业开始集中攻关。Browser Use 开源项目在 GitHub 上 2024 年下半年短时间内冲到几万 star——开源社区对浏览器 Agent 热情极高。但浏览器 Agent 真正大规模生产落地仍难——动态内容 / 登录态 / 验证码三大问题没完美解,目前更多在 QA 自动化场景跑稳——生产场景(终端用户用浏览器 Agent 替代自己上网)仍处早期。
Agent 架构¶
浏览器 Agent 的核心循环:第一,LLM 视觉理解 + DOM 解析双通道——Agent 拿到页面后既截图给视觉 LLM("看到这个页面有什么"),又解析 DOM 给文本 LLM("页面结构是什么")。两路信息汇合让 LLM 决定下一步动作(点击 / 输入 / 滚动 / 跳转)。第二,Self-correction loop——动作执行后看结果,如果失败(如点了但没跳转)重新规划策略——换 selector / 换路径 / 换方法。这个循环让 Agent 对 UI 变化有韧性。第三,多 tab 管理——Agent 能开多 tab 并行处理(如一个 tab 查信息、另一个 tab 填表单),类似人类开多 tab 操作。
浏览器 Agent 与桌面视觉 Agent 的架构差异在"信息密度"——浏览器有结构化 DOM(每个元素有 id / class / role 等属性),桌面只有像素(操作系统无障碍 API 有但弱)。这让浏览器 Agent 能用 Element labeling 技巧(给 DOM 元素打 [1] [2] [3] 标签让 LLM 输出"点 [1]"而非坐标)——比纯坐标点击稳得多——这是浏览器 Agent 比桌面 Agent 准确率高的关键。同时 DOM 是结构化文本,token 比截图少(一张截图几十万 token、一份 DOM 几千 token)——降本显著。所以浏览器 Agent 当前阶段比桌面 Agent 更成熟更落地——DOM 通道是巨大工程优势。但 DOM 通道在 SPA 应用(React / Vue 等动态渲染)下不稳定——DOM 在交互中频繁变——纯 DOM 通道易失效——需视觉通道兜底——这是双通道设计的根本原因。
关键技术决策¶
第一,视觉 + DOM 双通道——视觉通道保真(看到真实页面长相,避免 DOM 解析漏视觉信息如弹窗 / 浮层),DOM 通道高效(结构化文本 token 少,定位元素快)。两者结合比单通道更稳——纯视觉慢且贵,纯 DOM 漏视觉信息。第二,增量 DOM(只传 changed subtree)——网页 DOM 完整可能几 MB token——Agent 每步都传完整 DOM 太贵。Browser Use 等只传"自上次以来变的部分"(changed subtree),token 降 90% 以上。这是降本关键工程。第三,Self-correction max retries——失败重试有上限(如 3 次失败就放弃任务),避免死循环。第四,Element labeling——Agent 不直接输出"点击 [523, 411]"坐标,而是给 DOM 每个可点击元素打标签(如 [1] [2] ...),LLM 输出"点击 [1]"——避免坐标漂移问题(坐标在 DOM 变化时可能偏)。这是浏览器 Agent 比桌面视觉 Agent 更稳的关键技巧。
失败模式与教训¶
第一,网页加载慢导致超时——Agent 决定"点击 A"后等页面响应,但页面慢(如等后端 API)——Agent 可能误判"点击没生效"再点一次——结果点了两下触发两次提交。教训是显式 wait 策略(等特定元素出现而非固定时间)。第二,动态内容(infinite scroll / lazy load)——网页 infinite scroll 让 Agent"看不到"全部内容——它点了"加载更多"但加载慢它就放弃了。lazy load 元素(图片滚动到才加载)让 Agent 看到的截图与 DOM 不一致。第三,登录态丢失(cookies 失效)——Agent 跑长任务时 cookies 可能过期——某一步操作触发"重新登录"页面——Agent 不知道密码就卡住。教训是 Agent 要能识别"被踢出登录"并通知用户接管。第四,验证码无法处理——CAPTCHA 是反自动化的——Agent 遇到验证码就死——除非接第三方打码服务(多数不合规)。这是浏览器 Agent 的天然天花板。
工程启示¶
第一,浏览器 Agent 仍处早期——尽管 demo 漂亮,生产环境跑稳定仍难——动态内容 / 登录态 / 验证码三大问题没完美解。读者评估"是否上浏览器 Agent"要诚实问"我的目标网站动态性强不强、有验证码吗、登录复杂吗"。第二,测试场景比生产场景更适用(QA 自动化 vs 终端用户)——QA 自动化(测试自家网站)可控性高(自己改 UI 也改测试)+ 容错性高(失败重跑)——浏览器 Agent 在 QA 场景比生产场景落地更稳。第三,与传统 Playwright 结合而非替代——别一上来就用 Agent 替代所有 Playwright 脚本——稳定不变的流程(如每次登录固定页面)用 Playwright 高效可靠,动态变化的探索性任务用 Agent 灵活适应——两者结合是工程上策。第四,Element labeling 是浏览器 Agent 的关键工程优化——比直接坐标点击稳得多——读者自建浏览器 Agent 必用此技巧。第五,视觉 + DOM 双通道比单一通道好——纯视觉慢贵、纯 DOM 漏视觉——双通道互补是当前最优解。
来源¶
- MultiOn 官方网站与 API 文档:multion.ai(含开发者文档与商业接入说明)
- Browser Use 开源仓库:github.com/browser-use/browser-use(Python 框架,开源 2024 年起爆火)
- WebArena 论文(浏览器 Agent 评测基准):arXiv:2304.11303,webarena.dev
- VisualWebArena 论文(多模态扩展):arXiv:2410.13271
- Playwright 官方(对比传统方案):playwright.dev
案例 6:Sierra / Salesforce Agentforce — 企业客服 Agent 平台¶
业务背景¶
Sierra 由 Bret Taylor 创立(2023 年)——Bret Taylor 是 OpenAI 前董事会主席、Salesforce 前联合 CEO、Facebook 前 CTO——他的方向有强指示性。Sierra 定位"企业级对话 Agent 平台"——给企业(如 WeightWatchers、SiriusXM、Sonos)部署客服 Agent,强调"安全 / 可控 / 可审计"。Salesforce Agentforce(2024 年发布)是 Salesforce 的官方 Agent 平台——背靠 Salesforce 的 CRM / 数据云生态,企业客户接入门槛低。两者代表"企业级 Agent 平台"路线——不同于 LangGraph 客服模板(开发者自建),Sierra / Agentforce 是"开箱即用平台 + 可视化配置"。这条路线是大公司部署 Agent 的主流——绝大多数企业不会自建 Agent,会买平台。
Sierra / Agentforce 这类平台的核心商业逻辑是"降低企业部署 Agent 的门槛"——绝大多数企业没有工程团队能用 LangGraph 自建,且合规 / 审计 / 安全要求高到非工程团队不能搞定。平台把这些"非功能要求"(合规、安全、可观测、人审、A/B 测试)打包成开箱即用模块——企业业务方在 Web 界面拖拽配置 Agent(定义 Topic / 配 Guardrails / 接 Action)即可上线。这是"Agent 即服务"路线——类比 Salesforce 早期把 CRM 平台化,Sierra / Agentforce 把企业 Agent 平台化。Bret Taylor 之所以同时押注 Sierra(创业)与 Agentforce(他在 Salesforce 时启动的项目)——本质是押注"企业 Agent 平台化"趋势。这条路线若成,未来 5 年企业 Agent 市场会是 Salesforce / Sierra / Microsoft Copilot Studio / Google Dialogflow CX 几大平台分庭抗礼——而非每家企业自建。
Agent 架构¶
Sierra / Agentforce 的抽象层:第一,可视化 Agent builder——业务方(非开发者)在 Web 界面拖拽配置 Agent——不需要写代码。第二,Topic(主题能力圈)——Agent 的能力被划分为多个 Topic(如"订单查询" / "退款" / "产品咨询" / "投诉"),每个 Topic 内有专属 prompt / 工具 / 知识库。Agent 只在 Topic 内回答——超出 Topic 范围的问题要么转人审要么转其他 Topic。第三,Action(工具)——每个 Topic 暴露特定 Action(如订单查询 Topic 暴露 query_order / track_shipment)。Agent 调 Action 完成业务操作。第四,Guardrails(护栏)——输入 / 输出双层过滤——输入拦 prompt injection / 越权问题,输出拦违规内容 / 敏感数据外泄。第五,Escalation(升级到人审)——基于置信度阈值(confidence < 0.7)或触发关键词("投诉" / "退款金额 > 1000")自动升级到人工。
Sierra / Agentforce 的"Topic 抽象"是工程上的重大创新——它把 Agent 能力边界显式化(开发者声明 Agent 能干什么 / 不能干什么),而非依赖 LLM 自觉(ChatGPT 那种"什么都能聊"在 to C 没问题,到 to B 就灾难)。Topic 抽象让企业 Agent 上线有"清单可审"——业务方能列出 Agent 全部能力集——监管能审计每个能力是否合规——出问题能定位是哪个 Topic 出错——这是企业部署的硬要求。Salesforce Agentforce 把这套抽象与 Salesforce CRM 数据云深度绑定——Topic 可以直接暴露 CRM 数据作为知识库、Action 可以直接调 Salesforce 工作流——这是它"开箱即用"的关键护城河。Sierra 不绑定具体 CRM 但通过 MCP / API 接入企业系统——更中立但接入门槛高一些。两者都是"Agent 平台化"路线的代表——读者企业选 Agent 落地方案时这两家是必看的对照。
关键技术决策¶
第一,Topic 限定 Agent 能力边界(防越权)——这是 Sierra / Agentforce 与通用 Agent 的核心差异。通用 Agent(如 ChatGPT)能聊任何话题——但企业客服 Agent 必须只能聊业务相关话题——用户问"帮我写诗"Agent 要拒绝并引导回业务。Topic 限定让 Agent 能力边界清晰——防越权(不能调非业务工具)、防超范围(不能答非业务问题)、防 prompt injection(恶意输入很难让 Agent 跑出 Topic)。这是工程化思路而非依赖 LLM 自觉。第二,变体测试(A/B 不同 prompt 版本)——平台支持同时跑多个 prompt 版本,分流流量对比效果(如版本 A 答 1000 次、版本 B 答 1000 次比通过率 / 满意度)——选优上线。这让 Agent 上线后能持续迭代而非一锤子买卖。第三,Guardrails 内嵌——不像 LangGraph 客服那样要开发者自己接 Guardrails AI / NeMo Guardrails,Sierra / Agentforce 把 Guardrails 作为平台原生能力——输入输出自动过滤,业务方零代码。第四,Escalation based on confidence threshold——Agent 输出时给一个 confidence score(自评置信度)——低于阈值自动转人审。这避免低置信度时硬答出错。
失败模式与教训¶
第一,Air Canada 客服 bot 法律案例(2024)——这是企业 Agent 的标志性案例。2024 年加拿大民事法庭民事裁决庭(CRT)判决 Air Canada 因其客服 bot 给出的退票政策误导用户而需赔偿——具体是 Moffatt v. Air Canada 案:用户问 bot 丧亲退票政策,bot 给了与实际政策不符的回答(说可以全额退但实际有条件),用户据此买票后无法退票,起诉 Air Canada。Air Canada 辩称"bot 是独立实体公司不负责"——法庭驳回,认定 bot 是 Air Canada 的代理其言论公司负责。教训:企业 Agent 的输出企业要负法律责任——Agent 答错企业要赔——这把"Agent 准确率"从工程问题升级为法律问题。第二,企业合规要求(审计日志、PII 保护)——企业 Agent 涉及用户个人信息(订单 / 账户 / 财务)——必须有审计日志(GDPR / CCPA 要求可追溯)、PII 保护(敏感数据脱敏 + 不外传第三方 LLM)。Sierra / Agentforce 都内建这些合规模块。第三,Topic 误判——用户问售前被路由到售后 Topic——答非所问。原因可能是 Triage 分类不准或 Topic 边界模糊(如"产品咨询"与"售后"在某个问题上重叠)。教训是 Topic 设计要互斥 + 不确定时走人审。第四,Guardrails 误杀——Guardrails 太严会误杀正常对话(如用户问"我的账号密码忘了"被 Guardrails 拦为"敏感信息")。教训是 Guardrails 要可调 + 误杀时人审兜底。
工程启示¶
第一,企业级 Agent 安全是第一位——不是"加 Guardrails 是加分项"而是"不加 Guardrails 不能上线"。Sierra / Agentforce 把 Guardrails 当原生能力而非外挂——这是企业 Agent 平台的标配。第二,Guardrails 不是可选——Air Canada 案例警示:企业 Agent 输出企业负责——必须 Guardrails 把高风险输出拦在用户看到前。第三,Topic 限定是工程化思路(vs 单 Agent 万能)——单 Agent 万能(如 ChatGPT)适合 to C 但不适合 to B——to B 必须能力边界清晰。Topic 限定让企业 Agent 可控、可审计、可追责。第四,平台 vs 自建权衡——Sierra / Agentforce 平台让业务方零代码部署——但锁定平台(迁移成本高 + 数据在第三方)。自建 LangGraph 客服灵活但要有开发团队。权衡:业务方非技术团队 + 预算足 → 平台;有工程团队 + 数据敏感 → 自建。第五,A/B 测试是 Agent 持续迭代的关键——Agent 不是"上线就完"——要持续 A/B 测不同 prompt / 工具 / Topic 划分——选优迭代。Sierra / Agentforce 把 A/B 内建是平台的关键卖点。
来源¶
- Sierra 官方网站:sierra.ai(含 Bret Taylor 创立背景、企业客户案例)
- Salesforce Agentforce 官方:salesforce.com/agentforce/(含平台文档、Trailhead 学习路径)
- Air Canada 客服 bot 法律案例:Moffatt v. Air Canada, 2024 BCCRT 149(加拿大民事法庭民事裁决庭 CRT 公开裁决,2024 年 2 月)
- 公开报道链接:可参考 cbc.ca、theguardian.com 等媒体对该案的报道(如 cbc.ca/news/canada/british-columbia/air-canada-chatbot-lawsuit-1.7118416)
- τ-bench(Sierra 发布的业务 Agent 基准):arXiv:2406.12045,github.com/sierra-research/tau-bench
案例 7:OpenAI Operator — 浏览器操作 Agent¶
业务背景¶
2025 年 1 月,OpenAI 发布 Operator(CUA — Computer-Using Agent)——浏览器自动化 Agent。Operator 跑在 OpenAI 自研的 CUA 模型上(基于 GPT-4o 视觉 + 动作输出 head)。用户给 Operator 一个任务(如"帮我在某订餐网站点一份披萨送到某地址"),Operator 自动打开浏览器、导航、选餐、填地址、下单。Operator 与 Claude Computer Use 的差异是——Operator 只在浏览器内(沙箱天然)+ 用户可随时接管(pause + resume)+ 隐私敏感操作要确认。这是 OpenAI 对 Claude Computer Use 的回应——大模型厂商都在押注视觉 Agent。Operator 当前是 ChatGPT Pro 用户的预览功能(200 美元/月订阅)——处于"早期产品 + 限人体验"阶段。
Operator 的发布进一步坐实"视觉 Agent 是大模型厂商必争之地"——继 Anthropic 2024 年 10 月 Claude Computer Use 之后,OpenAI 4 个月后跟进了同形态产品。Google 也预期跟进(Gemini 已有桌面操作能力研究)。这条赛道的吸引力是:视觉 Agent 是 LLM 能力从"文字"扩展到"GUI 操作"的关键——能操作 GUI 意味着 LLM 能进入千行百业的实际业务流程(电商下单 / 银行转账 / 政府办事 / 医院挂号),是 LLM 商业天花板的最大提升。但 Operator 选择"只在浏览器内"而非 Claude Computer Use 的"全桌面"——是工程上的清醒判断:浏览器沙箱天然 + 用户接管友好 + 隐私边界清晰——比桌面 Agent 风险小一个数量级,落地路径更短。Operator 当前限制是任务复杂度——简单任务(订餐 / 订票 / 查信息)能做、复杂任务(多步推理 + 跨网站 + 创造性决策)仍力不从心。
Agent 架构¶
Operator 的核心循环:第一,CUA 模型(GPT-4o vision + Action head)——OpenAI 训了一个专门的 CUA 模型——视觉理解用 GPT-4o 的 vision 能力,动作输出用一个 action head(fine-tune 过的输出层,专门输出 click / type / scroll 等结构化动作)。这个模型统一在 GPT-4o 之上而非外挂。第二,浏览器实例(Docker 容器)——Operator 在云端起一个 Docker 容器跑浏览器(Chromium),用户操作看到的是这个远程浏览器——天然沙箱(即使 Agent 跑乱也不能碰用户本地文件)。第三,任务循环——截图 → CUA 决策 → 动作 → 下一帧——与 Claude Computer Use 类似的视觉动作循环。第四,用户接管机制——用户随时可点 "pause" 让 Agent 停,手动操作几步(如登录、选支付方式),然后 "resume" 让 Agent 继续。
Operator 架构与 Devin 的核心差异在"自主度"——Devin 是"提交就走人"完全自主(用户提交任务不参与细节)、Operator 是"半自主"(Agent 自动跑但用户能随时 pause / resume 接管)。Devin 的"完全自主"听起来更酷但失败率高 + 用户信任度低——用户没法在关键步骤干预导致 Agent 跑偏没救。Operator 的"半自主"是更落地的设计——用户在敏感步骤(登录 / 支付 / 选关键决策)能接管,让 Agent 跑普通步骤自动、关键步骤人审——既享受自动化又保留控制权。这种"半自主"设计哲学也是 Cursor 模式(用户全程在 IDE 内审每个 diff)的共同点——三者代表"半自主 Agent"主流方向——而 Devin 的"完全自主"路线渐被边缘化。读者设计 Agent 时应优先考虑半自主而非完全自主——既工程上更稳、产品上用户接受度也更高。
关键技术决策¶
第一,双通道(截图 + DOM)——Operator 与 Browser Use 类似走双通道——截图给视觉模型保真 + DOM 给文本模型高效。CUA 模型统一处理两路输入。第二,用户可接管(pause + resume)——这是 Operator 区别于 Devin(完全自主)的设计——用户在敏感步骤(登录、支付)可接管,Agent 在普通步骤自动跑。这种"半自主"设计更现实——避免 Devin 那种"完全自主但失败率高"的尴尬。第三,隐私敏感操作需确认——遇到登录(要输密码)/ 支付(要输信用卡)步骤时 Operator 暂停问用户"是否进行此敏感操作"——用户确认才继续。这是隐私边界工程——不让 Agent 自动处理敏感数据。第四,视觉理解 + Action 输出统一在 CUA 模型——不像 Browser Use 是"通用 LLM + 拼装 action 解析",CUA 模型是端到端 fine-tune——视觉输入直接输出动作。这让模型对"看屏幕 → 决定动作"任务更专精。
失败模式与教训¶
第一,复杂表单填写(autocomplete 干扰)——浏览器表单的 autocomplete(如地址栏自动补全)会干扰 Agent——Agent 想输 "Beijing" 但浏览器补全成 "Beijing, China" 后 Agent 困惑。这种"UI 元素自主行为"对 Agent 是难点。第二,动态页面(DOM 变化)——网页 DOM 在加载 / 交互中动态变——Agent 看到的 DOM 与截图可能不同步——导致基于 DOM 的决策与基于视觉的决策冲突。第三,多步任务失败累积——长任务(10 步以上)任一步失败导致整任务失败——单步成功率 90% 但 10 步连续成功率 35%——多步任务是 Agent 通病。第四,隐私敏感场景用户接受度(登录密码)——让 Operator 输密码用户接受度低——用户担心 OpenAI 看到密码——尽管技术上密码不进 prompt 但用户信任是另一回事。这是产品落地障碍。
工程启示¶
第一,Operator 是 GPT-4 Vision + Function Calling 的工程化封装——技术原理不新(视觉 + 动作 + 沙箱),新在工程化(CUA 模型端到端 fine-tune + Docker 沙箱 + 用户接管 UI)——这印证"Agent 的差异化在工程而非原理"。第二,隐私边界是用户接受度关键——Agent 自动处理登录 / 支付用户不放心——必须 pause 让用户接管。读者设计 Agent 时隐私敏感操作必须有人审 / 接管机制——不能让 Agent 全自动跑。第三,浏览器 Agent 比桌面 Agent 更易落地(沙箱天然)——浏览器是天然沙箱(Agent 跑在 Docker Chromium 里碰不到用户本地)——比 Claude Computer Use 在桌面跑风险小很多。这是 Operator 走浏览器路线的关键原因。第四,半自主 > 完全自主——Operator pause/resume 设计让 Agent 自动跑普通步骤 + 用户接管敏感步骤——比 Devin 完全自主更落地——失败率低 + 用户信任度高。
来源¶
- OpenAI 官方 Operator 介绍:openai.com/index/introducing-operator/(2025 年 1 月发布)
- OpenAI CUA 模型技术报告:openai.com/index/cua/(含模型卡片与系统卡片)
- OpenAI Operator 使用文档:help.openai.com/en/articles/10500400-getting-started-with-operator
- 对比 Claude Computer Use:docs.anthropic.com/en/docs/build-with-claude/computer-use
- 相关研究背景(视觉动作 Agent 综述):可参考 WebArena arXiv:2304.11303、VisualWebArena arXiv:2410.13271
案例对比矩阵¶
7 个案例放一起对比——能看到 Agent 工程的几个关键维度:是产品还是平台、是视觉还是 DOM、是否多 Agent、公开年份分布。
第一,平台 vs 产品:Cursor / Devin / Operator / Claude Computer Use / MultiOn / Browser Use 是"产品型"——用户直接用某个产品。Sierra / Agentforce 是"平台型"——给企业搭 Agent 的平台。LangGraph 客服是"框架型"——开发者自建。三类定位不同——产品给终端用户、平台给企业、框架给开发者。第二,视觉 Agent vs DOM Agent:Claude Computer Use / Operator(部分)走视觉路线——通用但慢贵;Browser Use / MultiOn / Operator(部分)走 DOM 路线——高效但只能网页;Cursor / Devin / LangGraph 客服 / Sierra / Agentforce 不操作 GUI 而是调代码 / API 工具——不算"视觉 Agent"。视觉 Agent 是新范式,但 DOM / 工具调用 Agent 仍是主流。第三,多 Agent vs 单 Agent:Devin(Planner + Coder + Debugger 多 Agent)、LangGraph 客服(Triage + RAG + Tool + Synthesize 多节点)、Sierra(多 Topic 多 Agent)走多 Agent 路线;Cursor / Operator / Claude Computer Use 是单 Agent + 多工具——多 Agent 不是越多越好,简单场景单 Agent 更稳。第四,公开年份分布:2023 → Cursor(Anysphere 创立)、MultiOn;2024 → Devin(3 月)、Claude Computer Use(10 月)、Sierra、Agentforce、Browser Use(爆火);2025 → OpenAI Operator(1 月)。从 2023 到 2025 趋势是"从代码 Agent 到视觉 Agent 到企业平台"——视觉 Agent 是 2024-2025 的主流方向,企业平台是 2024 起的产业落地路径。
横向看 7 个案例,有两条关键趋势线值得读者关注:第一,Agent 模式从"全自动"向"半自主"收敛——2023-2024 早期 Devin / AutoGPT 走"完全自主"路线(提交就走人)——失败率高、用户信任度低;2024 下半年到 2025 Cursor / Operator / Claude Computer Use 都走"半自主"路线(Agent 自动跑但用户可 pause / resume 接管)——更落地。读者设计 Agent 应优先半自主——这是个工程信号。第二,Agent 工程化的"抽象层"在升级——早期 Agent 用 ReAct 循环(LangChain Agent)→ 升级到 StateGraph(LangGraph,2024)→ 再升级到 Topic + Guardrails(Sierra / Agentforce,2024)→ 持续演进。每次抽象层升级都让 Agent 更可控、更可调试、更可合规——这是 Agent 工程从"研究原型"到"生产系统"的演进路径。读者设计 Agent 时要选对抽象层——简单场景用 ReAct 够、生产场景必须 StateGraph、企业场景考虑 Topic + Guardrails——选错抽象层就是项目失败的种子。
工程实战要点¶
读完 7 个案例,下面 5 条工程实战要点是 Agent 工程的共同模式:
- 第一,案例的共同模式:LLM + 工具 + 循环 + 人审——7 个案例无一例外都是 LLM(决策大脑)+ 工具(动作执行)+ 循环(多步推理)+ 人审(高风险兜底)。Cursor / Devin / Operator / Claude Computer Use 都有 pause / 人审机制。LangGraph 客服 / Sierra / Agentforce 把人审作为合规标配。Agent 工程的本质就是这 4 件套——读者设计任何 Agent 都先想清这 4 个怎么搭。少一件都可能让 Agent 在生产翻车——人审缺了出高风险事故、循环缺了只能做单步任务、工具缺了 Agent 只能聊天不能行动、LLM 缺了谈不上 Agent。
- 第二,视觉 Agent(Computer Use / Operator)是新范式——但延迟与准确率仍受限——视觉 Agent 通用性强(能操作任意 GUI)但延迟高(每步 5-15 秒)+ 准确率受限(坐标漂移 / UI 变化误识别)。当前视觉 Agent 适合"异步长任务"而非"实时对话"——读者评估是否上视觉 Agent 要算"延迟用户能接受吗"。
- 第三,多 Agent 不是越多越好——Devin 多 Agent 但失败率仍高——Devin 是 3+ Agent 系统,LangGraph 客服 / Sierra 也是多 Agent——但 Devin 失败率不低。多 Agent 增加协调复杂度(Planner / Coder / Debugger 交接时信息可能丢)。简单场景单 Agent + 良好工具更稳——读者不要为"多 Agent"而多 Agent。
- 第四,案例的工程化思路(Topic 限定 / StateGraph / handoff)是关键——Sierra 的 Topic 限定、LangGraph 的 StateGraph、Cursor 的工具原子化——这些"工程化抽象"比换更贵模型更重要。Agent 工程的差异化在工程而非模型——读者设计 Agent 多花时间在 Topic / StateGraph / 工具粒度上而非换模型。
- 第五,评测的"营销 vs 实际"差距——看 SWE-Bench 排行榜而非 demo 视频——Devin demo 与实际分数差距是行业警示——读者评估任何 Agent 产品都要看公开基准分数(SWE-Bench / WebArena / GAIA / τ-bench)而非官网 demo 视频。demo 视频是营销素材、基准分数是工程真相。具体看基准时要问三句话:基准分数是多少、谁测的(独立第三方 vs 自报)、在哪个子集上(Full / Lite / 哪个 Level)——三问能让营销水分现形。读者若在公司评估采购 Agent 产品,把这三问写进采购评估清单,能避免被营销视频忽悠买错产品。
小结¶
- Cursor / Copilot Workspace:代码 Agent 从补全到 Composer 到 Background Agent——UX 是护城河、工具原子化比模型更重要、小 diff > 大 diff。
- Devin / Cognition:多 Agent 自主软件工程师——demo 与实际差距警示"营销 vs 真相"——完全自主失败率高、半自主更落地。
- Claude Computer Use:原生视觉 + 动作输出——新范式但延迟高、坐标漂移、沙箱必设、固定分辨率换确定性。
- LangGraph 客服:StateGraph + human-in-loop + 可观测性——StateGraph 比 ReAct 更适合生产、人审是企业标配、可视化 debug 是杀手锏。
- MultiOn / Browser Use:浏览器自动化 LLM 化——视觉 + DOM 双通道、Element labeling 避坐标漂移、QA 场景比生产更落地。
- Sierra / Salesforce Agentforce:企业 Agent 平台——Topic 限定能力边界、Guardrails 内嵌、A/B 测试持续迭代、Air Canada 案例警示法律责任。
- OpenAI Operator:浏览器 CUA——半自主(pause/resume)+ 隐私敏感操作需确认、浏览器比桌面更易落地。
- 共同模式:LLM + 工具 + 循环 + 人审;视觉 Agent 新范式但延迟受限;多 Agent 不是越多越好;工程化思路(Topic / StateGraph / 工具原子化)是关键;看基准分数而非 demo。
7 个案例最终汇聚成一句工程箴言:Agent 工程的差异化不在 LLM 而在工程——所有案例用的都是公开 LLM(GPT-4 / Claude / Gemini 等),但产品 / 平台 / 框架的差异化全在工程抽象(Composer / StateGraph / Topic / CUA / Element labeling)——这些工程抽象决定 Agent 的上限、可控性、可落地性。读者从本章带走的不应是"听过这 7 个产品名"——而应是"这 7 个产品各自用了什么工程抽象、解决了什么问题、有什么局限"——后者才能引用到自己设计 Agent 时的判断。换言之——读完本章你应该能在自己设计 Agent 时主动选 StateGraph 而非 ReAct、主动选半自主而非完全自主、主动把 Guardrails 作为必备而非可选——这些工程判断才是本章的真正价值。下一章第十五章进入"自演进 Agent"——Agent 不只是按开发者预设跑、还能从经验中学习改进自己——这是 Agent 工程的前沿方向。
练习题¶
- 列举 7 个案例的 Agent 类型分布(代码 / 浏览器 / 桌面 / 客服),并指出哪些是产品型、哪些是平台型、哪些是框架型。
- Devin 案例的"营销 vs 实际"差距告诉我们什么?评估 Agent 产品时应以什么为准、不应以什么为准?
- Claude Computer Use 与 Browser Use 的根本差异是什么?什么场景该选哪个?
- Sierra / Agentforce 的"Topic 限定"为什么重要?它解决了通用 Agent(如 ChatGPT)的什么问题?
- Air Canada bot 法律案例的工程教训是什么?企业部署 Agent 必须把"什么"从工程问题升级为法律问题?
- 从 7 个案例抽象出 Agent 工程的共同要素——LLM / 工具 / 循环 / 人审这 4 件套在 7 个案例中分别如何体现?
参考答案¶
第 1 题答案
7 个案例的 Agent 类型分布:第一,**代码 Agent**——Cursor / GitHub Copilot Workspace、Devin / Cognition(两个都做代码,但 Cursor 是 IDE 内嵌半自主、Devin 是完全自主多 Agent)。第二,**桌面 / 浏览器视觉 Agent**——Anthropic Claude Computer Use(桌面 + 浏览器通用)、OpenAI Operator(浏览器为主)。第三,**浏览器自动化 Agent**——MultiOn、Browser Use(与视觉 Agent 区别是:这两个走 DOM + 视觉双通道,Operator / Claude Computer Use 走原生视觉路线)。第四,**企业客服 Agent**——LangGraph 客服(框架型,开发者自建)、Sierra / Salesforce Agentforce(平台型,开箱即用)。**产品 vs 平台 vs 框架**:产品型(用户直接用)——Cursor / Devin / Operator / Claude Computer Use / MultiOn / Browser Use;平台型(企业搭 Agent)——Sierra / Agentforce;框架型(开发者自建)——LangGraph 客服。三者定位不同——产品给终端用户、平台给企业业务方、框架给开发者团队。第 2 题答案
Devin 案例的"营销 vs 实际"差距警示:第一,**demo 视频不可信**——发布视频里 Devin 漂亮解决 SWE-Bench issue,但实际复现发现通过率被高估——视频可能挑了 Devin 擅长的 case 跑、部分任务有"人工干预"痕迹。第二,**基准分数才是工程真相**——SWE-Bench 排行榜(swebench.com)显示 Devin 实际 resolved rate 在 Lite 子集约 13-15%——与人类开发者 70% 差距大,与 demo 视频暗示的"接近人水平"也差距大。第三,**评估 Agent 产品时应以公开基准的独立验证为准**——SWE-Bench / WebArena / GAIA / τ-bench 等公开基准的独立复现分数——**不应以官网 demo 视频、营销博客、媒体标题为准**——这些都是营销素材。第四,**读者评估任何 Agent 产品时永远问三句话**:基准分数是多少?谁测的(独立第三方 vs 自报)?在哪个子集上(Full / Lite / 哪个 Level)?——这三问能让营销水分现形。第 3 题答案
Claude Computer Use 与 Browser Use 的根本差异:第一,**作用域不同**——Claude Computer Use 能操作任意桌面应用(不只浏览器,还包括文件管理器、IDE、办公软件等)——视觉路线通用;Browser Use 只能操作网页(在浏览器内)——DOM + 视觉双通道但限于浏览器。第二,**技术路线不同**——Claude Computer Use 走原生视觉路线(截图 → 视觉模型 → 坐标动作),不依赖 DOM;Browser Use 走 DOM + 视觉双通道(DOM 解析为主、视觉为辅),用 Element labeling 避坐标漂移。第三,**沙箱不同**——Claude Computer Use 必须在 VM / 容器中跑(操作桌面风险大);Browser Use 天然在浏览器内(相对安全)。**选型**:操作桌面应用(非浏览器)→ Claude Computer Use(唯一选择);操作网页且追求稳定 → Browser Use(DOM 通道高效稳);操作网页且 UI 高度动态(DOM 不稳)→ 走视觉路线(Operator / Claude Computer Use 浏览器模式);QA 自动化(测自家网站)→ Browser Use + Playwright 结合。第 4 题答案
Sierra / Agentforce 的"Topic 限定"重要性:第一,**Topic 限定 Agent 能力边界**——Agent 的能力被划分为多个 Topic(如订单查询 / 退款 / 投诉 / 售前),每个 Topic 内有专属 prompt / 工具 / 知识库——Agent 只在 Topic 内回答,超出 Topic 的问题要么转人审要么转其他 Topic。第二,**解决了通用 Agent(如 ChatGPT)的三大问题**:第一,**越权风险**——通用 Agent 能聊任何话题、调任何工具——企业客服 Agent 必须只能聊业务相关话题——用户问"帮我写诗"Agent 要拒绝。Topic 限定让 Agent 能力边界清晰防越权。第二,**超范围问题答非所问**——通用 Agent 会"硬答"任何问题(即使不懂),企业 Agent 硬答会出错(如答错政策)——Topic 限定让超范围问题走人审而非硬答。第三,**prompt injection 防御**——通用 Agent 易被 prompt injection 越狱调非业务工具——Topic 限定让恶意输入很难让 Agent 跑出 Topic(工具不在 Topic 内根本不暴露)。Topic 限定是工程化思路而非依赖 LLM 自觉——这是 to B Agent 与 to C Agent 的核心设计差异。第 5 题答案
Air Canada bot 法律案例的工程教训:2024 年加拿大民事法庭民事裁决庭(CRT)判决 Moffatt v. Air Canada, 2024 BCCRT 149——Air Canada 因其客服 bot 给出的退票政策误导用户而需赔偿。**工程教训**:第一,**企业 Agent 的输出企业要负法律责任**——Air Canada 辩称"bot 是独立实体公司不负责"——法庭驳回,认定 bot 是 Air Canada 的代理其言论公司负责。这把"Agent 准确率"从工程问题升级为法律问题——Agent 答错不是"bug"而是"违法"。第二,**企业部署 Agent 必须把"Agent 输出准确性"从工程问题升级为法律合规问题**——意味着必须有 Guardrails 拦高风险输出、必须有审计日志便于事后追溯、必须有 PII 保护避免数据泄露、必须有人审兜底处理低置信度场景。第三,**Agent 不能"硬答"不确定的问题**——Air Canada bot 答错根因是它在不确定丧亲退票政策细节时硬答而非转人审——Topic 限定 + 置信度阈值 + Escalation 是工程对策。第四,**Agent 输出在用户行动前要可审计**——用户基于 Agent 输出做了行动(买票)后才发现 Agent 答错——这时已造成损失。工程上 Agent 输出要可追溯(审计日志保留 N 月)便于事后追责。第 6 题答案
Agent 工程的共同要素是 **LLM + 工具 + 循环 + 人审** 4 件套——7 个案例无一例外:第一,**LLM(决策大脑)**——Cursor 用 GPT-4 / Claude;Devin 用大上下文 LLM;Claude Computer Use 用 Claude 3.5 Sonnet 视觉模型;LangGraph 客服用 GPT-4 / Claude;MultiOn / Browser Use 用 GPT-4o / Claude;Sierra / Agentforce 用多家模型;Operator 用 CUA 模型。第二,**工具(动作执行)**——Cursor 的 apply_diff / run_terminal / search_codebase;Devin 的浏览器 + 终端 + 编辑器三件套;Claude Computer Use 的 computer / text_editor / bash 三工具;LangGraph 客服的 query_order / initiate_refund 等;Browser Use 的 click / type / scroll;Sierra 的 Topic 内 Action;Operator 的浏览器动作。第三,**循环(多步推理)**——Cursor 的 Composer 多步小改;Devin 的 Planner-Coder-Debugger 循环;Claude Computer Use 的截图-动作-下一帧循环;LangGraph 的 StateGraph 节点循环;Browser Use 的自我纠错循环;Operator 的视觉动作循环。第四,**人审(高风险兜底)**——Cursor 的 diff 预览接受 / 拒绝;Devin 的 PR 维护者审;Claude Computer Use 的沙箱 + 用户接管;LangGraph 客服的 Slack approval hook;Sierra / Agentforce 的 Escalation;Operator 的 pause / resume + 隐私敏感确认。读者设计任何 Agent 都先想清这 4 件套怎么搭——这是 Agent 工程的最小完备集。下一章:第十五章 自演进 Agent