课程大纲
课程大纲系列主页
学习进度已完成 0/19

自动化与 Agent 术语速查表

入门进行中Computer Use Agent7 月 7 日更新

CUA 训练营 · 术语速查表

学到哪查到哪,整门课会冒出来的技术名词这一篇全收。普通词一行说清,核心术语多带一行「坑 / 要点」。想深入看对应周教案

  • W? 标这个词在第几周讲;贯穿 表示全程都在用。
  • 「可以想成…」是帮你建直觉的类比,不是严格定义——别拿类比去较真。
  • 核心术语(尤其第 7 节 Computer Use)按「定义 + 类比 / / 周次 / 链接」展开;其余保持一行速查。
  • 查得最快——在浏览器 / 编辑器里按 Ctrl+F(Mac 是 ⌘F)直接搜中文或英文名;术语的中英文都写在加粗标题里,搜哪个都能命中。
  • 第 7 节末尾「官方 Computer Use 工具」子区是 Anthropic API 的实操术语(版本号、actions、坐标映射…),W9 拆官方实现时对着看。
  • 这是一份 living document:随课程推进持续补充、修订,版本号、actions、链接都以最新一版为准——尤其 Computer Use 的工具版本变动快,务必回看官方文档

目录

  1. 环境与沙箱 · 在隔离环境里安全练习
  2. Python 与代码基础 · 做 Agent 用得上的那点语法
  3. 版本管理 · 用 Git 管好逐周累积的代码
  4. GUI 自动化 · 让程序自己点鼠标、敲键盘
  5. 浏览器自动化 · 让程序自己开网页、填表单
  6. 反检测与稳定性 · 合法场景下让脚本跑稳、少被误拦
  7. 大模型与 Agent 核心 · Agent 的大脑、核心循环和官方 Computer Use 工具
  8. Agent 框架 · 用现成框架把 Agent 搭得更稳
  9. 工程化与生产 · 从「能跑」到「能放心交给它跑」
  10. CUA 特有 vs 传统自动化 · 同样是自动化,到底差在哪

1. 环境与沙箱

  • 沙箱(sandbox) W1·W13 — 和你的真实系统隔离的练习环境,Agent 在里面操作出了问题也波及不到真实文件和账号,环境损坏了重建即可。本课第一周就搭。
  • 终端(terminal) W1 — 靠打字下命令、而不是点图标来操作电脑的窗口。Docker / Git / SSH 都没有图标可点,只能在终端里用。Mac 是「终端.app」、Windows 用 PowerShell、沙箱里是桌面自带终端。
  • 命令行(CLI / shell) W1 — 在终端里敲的那些命令的统称。本周够用的就四个:pwd(我在哪)、ls(这儿有什么)、cd(进出目录)、mkdir(建目录)。
  • 路径(path) W1 — 文件 / 目录在哪。绝对路径从根写全(/Users/你/...);相对路径相对当前目录,. 当前、.. 上一级、~ 家目录。要点:命令要在「对的目录」里敲,敲错地方就找不到文件——先 pwd 看清自己在哪。
  • Docker W1 · 📖 docs.docker.com — 在本机快速启动一个「预装系统和软件、与主系统隔离」的轻量环境的工具,本课用它搭沙箱。
  • 镜像(image) W1 — 装好系统和软件的只读模板,本身不运行。可以想成一张装好系统的光盘。
  • 容器(container) W1·W13 — 用镜像运行起来、与主系统隔离的运行实例;可在其中自由操作,删除重建后回到初始状态。可以想成用光盘装好、正在开机运行的那台电脑。
  • 仓库 / 镜像源(registry) W1 — 存放镜像供人下载的地方,本地没有就从这儿拉(pull)。默认在海外。可以想成下载光盘的应用商店。
  • 拉镜像走代理(镜像加速) W1 — 解决「卡在 pulling 不动」:让 Docker 走本机的 Clash 代理直连 Docker Hub(Docker Desktop 的 Settings → Proxies 里填 http://127.0.0.1:7890,Windows 填 host.docker.internal,端口以 Clash 客户端显示为准)。别用国内镜像源——只同步部分镜像、会过滤、常失效,碰到没收录的直接拉不到。
  • Clash(代理客户端) W1 — 本课统一用它给 Docker 拉镜像提速。要在客户端里拿两样:HTTP 代理端口(「General / 设置」页,常见 7890 / 7897,以客户端显示为准);**Allow LAN(允许局域网连接)**开关要打开——不开的话 Docker 的虚拟机连不到代理,Windows 必开。
  • docker-compose / docker-compose.yml W1·W13 — 一张配置单,写清用哪张镜像、开哪些端口、挂哪些文件夹,一条命令就能启动整个沙箱。
  • 端口映射(port) W1 — 把容器里的端口接到你电脑的端口,如 3001:3001,所以浏览器开 https://localhost:3001 才能看到沙箱桌面(webtop 还映射了 3000 作 http 备用)。冒号左边是你电脑的端口,被占用时改它。
  • 数据卷 / 挂载(volume) W1 — 把容器里的某个文件夹接到你电脑的文件夹,数据保存在你的硬盘上,容器删除重建后数据仍在。
  • 虚拟机(VM) W1 — 在你电脑里再开一整台完整电脑,重、慢、占地方。和容器都能隔离,但容器更轻、秒级启动。
  • WSL2 W1 — Windows 里跑 Linux 的子系统,Windows 版 Docker Desktop 依赖它,装 Docker 前先确认能开。
  • webtop W1 · 📖 docs.linuxserver.io — LinuxServer 维护的「装好 Linux 桌面 + 浏览器」现成镜像,本课沙箱用它。2025-06 起已基于 Selkies(WebCodecs 流式、本地不需 TURN),浏览器走 https://localhost:3001,首次自签证书点「继续前往」。本课用 ubuntu-xfce(apt 装包、多架构含 arm64),并设 PIXELFLUX_WAYLAND=false 强制 X11——否则 Selkies 默认 Wayland,pyautogui 注入鼠标键盘会打不动。
  • 自签证书(self-signed certificate) W1 — webtop 给 https://localhost:3001 用的是自己签发的证书,浏览器首次会拦「连接不安全 / NET::ERR_CERT_AUTHORITY_INVALID」——正常现象,点「高级 → 继续前往」即可,这是你本机的容器。
  • Selkies / WebCodecs W1·W13 · 📖 selkies-project — webtop 现在「把桌面送进浏览器」靠的技术:容器端推流、浏览器用 WebCodecs 解码,低延迟、本地不需 TURN。(更老的 VNC / noVNC 是同类的远程桌面协议,webtop 3.0 前用的 KasmVNC 就是这一路,现已换 Selkies。)
  • SSH W1 · 📖 docs.github.com — 加密的远程登录方式,让你在自己终端里安全操作另一台机器(云主机、容器)。本课用它免密连 GitHub、连陪跑版云环境、连沙箱容器。连本地容器拿 shell 默认用 docker exec,那不是 SSH。
  • 密钥对 / 公钥·私钥(key pair) W1 — SSH 用的一对钥匙:公钥(.pub 结尾)交给对方、可以公开;私钥只留本机,永远不外传、永远不提交进 Git。配上了才放行,一次配好往后免密码。ssh-keygen 生成,放在 ~/.ssh/
  • known_hosts W1 — SSH 第一次连一台新机器会问 yes / no(确认对方主机指纹),输 yes 后记进 ~/.ssh/known_hosts,下次不再问。是正常确认,不是报错。
  • Windows Sandbox W13 — Windows 专业版 / 企业版自带的一次性沙箱,关闭后即清空。家庭版不提供,用 Docker 方案替代。
  • Hyper-V W13 — Windows 的虚拟化技术,W13 用它做能持久化(数据不丢)的 Windows 沙箱。
  • 云沙箱 / Hyperbrowser W13 — 把沙箱放到云上,本地配置不够时用。Hyperbrowser 是其中一种云浏览器沙箱方案。
  • seccomp W1 — Linux 限制容器能调哪些系统调用的安全机制。桌面镜像有时要放宽(seccomp:unconfined),隔离仍在容器边界内。

2. Python 与代码基础

只收做 Agent 早期反复用到的那几样,够用就行,别提前焦虑。

  • 变量(variable) W2 — 给一个值起名字,方便反复用。
  • 字符串(string) W2 — 一段文字,要带引号。文件名、路径、要输入的内容都是字符串。
  • 数字 / 整数·浮点(int / float) W2 — 用来计数、算坐标、设等待秒数。"2"(字符串)和 2(数字)不是一回事。
  • 列表(list) W2 — 一排有顺序的东西,用 []。一批坐标、一批文件名就用列表装,下标从 0 开始。
  • 元组(tuple) W2 — 和列表像的一组值,用 (),常装固定搭配(如一个坐标的 x、y)。(200, 300) 就是元组,取下标也从 0 开始。
  • 字典(dict) W2 — 带标签的一组值,用 {},按 key 取。描述一个对象的多个属性(用户名、超时、重试次数)用它。
  • for 循环 W2 — 把列表里的东西挨个拿出来处理,「遍历一批目标」的骨架。
  • 解包(unpacking) W2for x, y in 坐标列表 把每个 (x, y) 元组的两个值一次拆给 xy,比写 点[0]点[1] 顺手。
  • f-string W3 — 字符串前加 f,{} 里的变量直接填进文字:f"第 {i+1} 次失败"。比逗号拼接顺手。
  • range() W3for i in range(3) 按次数循环(i 从 0 数到 2),不遍历列表、纯计数;重试逻辑就靠它。
  • if / else 条件 W2 — 让程序看情况办事,满足条件才做某一步。
  • 函数(function) W2 — 把一段动作起名字、留几个参数,换参数就能复用。Agent 的每个能力最后都是一个函数。
  • 缩进(indentation) W2 — Python 靠缩进分层,for/if 下面要缩进,统一 4 个空格、别混 Tab。零基础最大的坑。
  • 模块 / 导入(import) W3 — 把别人写好的功能包拿进来用,如 import pyautogui
  • 文件 IO W3 — 读写文件:把数据读进来、把结果写出去。
  • 异常处理(try / except) W3 — 代码出错时别直接崩,接住错误、处理或重试。自动化里到处要用。
  • pip W3 — Python 的装包工具,pip install xxx 把第三方库装下来。新版 Ubuntu 直装系统 Python 会报 externally-managed-environment(系统保护),沙箱里加 --break-system-packages 装即可。

3. 版本管理

  • Git 贯穿(W1 起) — 管代码版本的工具,改出问题随时退回上一个能跑的版本。W1 就建好仓库、讲全套(首个提交是沙箱配置),往后每周代码都进它。
  • .gitignore W1 — 一个清单文件,写明哪些不进仓库(虚拟环境、截图、.env私钥、挂载数据)。先写它再 add,否则仓库会被垃圾和密钥塞满——最容易犯的错。
  • 提交(commit) 贯穿 — 把当前改动存成一个存档点,带一句说明(沿用 type: 说明 格式:feat / fix / chore / docs)。
  • 推送 / 拉取(push / pull) W1push 把本地提交传到 GitHub(用 SSH 地址免密),pull 把远程改动拉回本地。
  • 回滚(restore / revert / reset) 贯穿 — 退回之前的状态:restore 丢弃还没提交的改动,revert 生成一个撤销某次提交的新提交。改崩了的后悔药。
  • 分支(branch) 贯穿 — 从主线拉一条副本单独改,不影响主线;满意了用 merge 合回。main 始终留着能跑的版本。
  • GitHub 贯穿 — 把本地 Git 仓库托管到云上的平台,也用来备份和分享。连它用 SSH 密钥免密(见第 1 节 SSH)。
  • 仓库(repo) 贯穿 — 一个被 Git 管着的项目文件夹。本课每周代码都进同一个仓库(cua-camp),逐周累积成结课作品。
  • 标签 / 发布(tag / release) W16 — 给某个提交打一个固定名字(如 v1.0w10),方便随时回到那个形态。成品公开仓库每周挂接合入后打 wNN tag、W16 交付打 v1.0——学员 git checkout w10 就能看第 10 周结束时成品长什么样。用语义化版本(MAJOR.MINOR.PATCH)。

4. GUI 自动化

  • pyautogui W3·W4 — 控制鼠标键盘的 Python 库,能移动鼠标、点击、输入、截图。本课第一个自动化工具。
  • 坐标定位 W4 — 用屏幕上的 (x, y) 像素位置点击。最直接,但换分辨率、换机器容易点偏。
  • 图像识别 / 截图定位 W3·W4 — 先截一小张目标图(按钮的样子),在屏幕里找到它再点击,比固定坐标更稳定。W3 用 locateCenterOnScreen 初见,W4 做扎实。
  • DPI 缩放 W4 — 系统把界面放大显示(如 150%),导致脚本看到的坐标和真实像素对不上,跨机器常见坑。
  • FAILSAFE W3·W4 — pyautogui 的紧急停止机制,把鼠标快速移到屏幕左上角即可中止脚本,防止失控(W1 的 hello world 就开着)。
  • 失败重试(retry) W3·W4 — 某一步未成功就重试几次,是应对自动化不稳定的基本容错手段。W3 的 safe_click 就是它的最小版。
  • 剪贴板粘贴法 / pyperclip W3·W4 — pyautogui 的 write 只支持英文 / ASCII,中文输入要先 pyperclip.copy("文字") 进剪贴板、再 hotkey("ctrl","v") 粘贴(macOS 用 command)。Linux 沙箱先 apt install xclip,否则报 could not find a copy/paste mechanism。本课中文输入的标准做法。
  • 辅助功能权限(Accessibility 授权) W4 — macOS 要在「系统设置 → 隐私与安全性 → 辅助功能」里授权,脚本才能控制鼠标键盘。注意这是权限开关,不是 W5 那个用代码读元素树的 Accessibility API——同名不同物,别搞混。
  • UAC W4 — Windows 的用户账户控制弹窗,涉及管理员权限的操作会弹,自动化时要留意。
  • 元素树(UI 元素树 / accessibility tree,即「无障碍树」) W5 — 把界面看成一棵有层级的树:窗口 → 工具栏 → 按钮 / 输入框,每个节点带角色(role)、名字(name / title)、值(value)。靠这些属性定位控件,不靠死坐标——这是「元素方式」的根。它本是给读屏软件用的,我们做自动化是搭现成便车。Windows / macOS / Linux 三平台各有一套实现(下),概念相通、API 不通用。
  • UI Automation W5 — 元素树在 Windows 的实现:系统提供的接口,让程序「认出」窗口里的按钮、输入框直接操作,不靠固定坐标,更准、更稳定。
  • uiautomation / pywinauto W5 — 两个用 Windows UI Automation 的 Python 库,用来找元素、点元素。
  • Accessibility API(AXUIElement) W5 — 元素树在 macOS 的实现,Windows UI Automation 的对等物:用 AXUIElement 读控件的角色 / 标题 / 值(AXRole / AXTitle / AXValue)来定位、操作。 :别和 W4 的「辅助功能权限」搞混——那是系统设置里的授权开关(开了 pyautogui 才动得了鼠键),这是用代码读元素树的编程接口,只是凑巧都叫 Accessibility;另外不少非原生 app(Electron 之类)元素树暴露不全,拿不到就退回视觉。
  • pyobjc / atomacos W5 — macOS 上访问 Accessibility API 的两条 Python 途径:pyobjc 直接调系统框架(ApplicationServices),atomacos 是更省事的封装。对应 Windows 的 uiautomation / pywinauto。 :老教程里的 atomac 已停更在 2013 年、只支持 Python 2,别装那个;用它的 Python 3 维护分支 atomacos(pip install atomacos),底层一样走 pyobjc。
  • AT-SPI / dogtail W5 — 元素树在 Linux 的实现,Windows UI Automation、macOS Accessibility API 的对等物:AT-SPI 是接口,Python 用 dogtail(高层封装,GTK / GNOME 支持好)或更底层的 pyatspi2 读控件。聚合助手在沙箱里读 xpad 便签走的就是这条。 :要装 at-spi2-core 并开无障碍总线(export GTK_MODULES=gail:atk-bridge 后再起应用),否则连不上、读不到。
  • 元素查找 W5 — 按名字 / 类型 / 位置定位界面上的控件(按钮、输入框),而不是点固定坐标。
  • xpad W4·W5 — 沙箱里的桌面便签程序(GTK3),聚合助手 notes 源的采集对象:W4 截图坐标取、W5 升 AT-SPI 元素取。便签内容存在随机文件名里,所以走 GUI 读、不直接读文件——视觉 / 元素采集都有正当对象。
  • Inspect 工具 / Accessibility Inspector W5 — 看元素树长什么样的工具,写元素查找前先用它探一眼:Windows 用微软的 Inspect(Win SDK 自带),macOS 用 Xcode 自带的 Accessibility Inspector,Linux 沙箱用 accerciser——鼠标悬到控件上就显示它的角色、名字。
  • 视觉 vs 元素 W5·W12 — 两种操作思路。「看屏幕截图找位置」(视觉)对各类软件都通用,但容易点偏;「直接拿到控件」(元素)更准,但不是所有软件都提供。 :别非此即彼,真实项目里多半混着用(W12 的混合架构);拿不到控件再退回视觉。
  • 何时不用元素 W5 — 元素是工具不是信仰:自绘界面 / 游戏控件树读不到,退回视觉(W4);表格批量数据(Excel)用 win32com / openpyxl 直读,别在 UIA 元素树里一格格翻——有官方接口就别绕。
维度视觉(看截图)元素(拿控件)
通用性任何软件 / 画面都行要软件暴露控件树
精度易点偏(靠坐标)准(直接命中控件)
界面变化较稳(换皮肤也认得)控件结构一变就失效
速度 / 成本慢(要模型看图、花 token)快(本地查询)
典型代表Computer Use、pyautogui 图像识别UI Automation / macOS Accessibility API、Playwright 选择器

5. 浏览器自动化

  • Playwright W6·W8 · 📖 playwright.dev — 微软的浏览器自动化库,能自己开网页、点链接、填表单,自带等待、录屏、抓包。本课浏览器自动化的底座。
  • auto-wait W6 — Playwright 自动等元素出现、可点了再操作,省掉手写 sleep,脚本更稳。
  • HAR W6 — 把一次网页会话的所有网络请求录下来的文件,用来回放、分析页面在跟服务器要什么。
  • 录屏 / trace W6 — Playwright 把执行过程录下来,出错时回看到底哪步崩了。
  • Browser-use W6·W11 · 📖 GitHub — 在 Playwright 之上加一层 AI,让大模型自己看页面决定点哪。本课用来对比「纯手写 vs AI 增强」。
  • LangChain W6 · 📖 GitHub — 把大模型、工具、记忆等串起来的框架,Browser-use 等会接它。
  • Stagehand W8 — 另一种「AI + 浏览器」方案(Browserbase 出品,写稿时 v3.x、MIT、TS 为主有官方 Python 实现),W8 拿来和 Browser-use 对照。给三个 AI 原语让你和确定性代码混着写:act("点登录") 用自然语言做一步、extract(schema) 按结构抽数据、observe() 先看页面能做什么。和 Browser-use 是同类不同味(它偏「给个任务全包」、Stagehand 偏「给你原语自己拼」),本课是了解性对照、不进成品主线。
  • headless / 有头 W6 — 浏览器不显示界面、在后台跑叫 headless(快、省资源);显示界面叫有头(方便看、调试)。反检测里这俩有差别。
  • storage_state / 会话复用 W6 — 把登录一次的会话(Cookie 等)存成文件,之后无头复用,不必每次重登。Playwright 用 storage_state 存和带。正路是首登有头、人工过扫码 / 验证(first_login.py),之后无头复用——绝大多数场景到此为止,被拒才上 W7 的反检测。 红线:会话文件就是登录凭证,落 ~/.aggregator/sessions/(仓库外),.env 放 key,二者绝不入库;录屏前查终端无 token 回显。
  • Playwright 定位器(get_by_role / get_by_text) W6 — 按角色 / 标签 / 可见文字找元素,别用脆的 CSS / XPath。就是 W5「按 role + name 找控件」在浏览器里的形态;配合 auto-wait,定位即等待。
  • 滴答清单 Open API / DIDA_TOKEN W6 — 待办源走官方接口直调:一个带 Bearer DIDA_TOKEN 的 HTTP 请求拿任务,不开浏览器(DIDA_TOKEN 课前 OAuth 办、走 .env)。和 mail「开浏览器登录」成对照——有接口就别开浏览器
  • 手写 vs AI 增强(何时用 AI) W6 — 选型判断:页面稳定 / 高频 / 要可靠 → 手写 Playwright;页面未知 / 常变 / 一次性 → Browser-use;表格批量 / 有接口 → 直接 API。习惯:AI 先探路,手写来固化。
  • 跨进程状态传递 W8 — 桌面软件(pyautogui)和网页(Playwright)往往是两个独立进程,要把一边拿到的数据交给另一边——靠临时文件、剪贴板、本地小服务或数据库。W8 桌面↔浏览器混合场景的关键。 要点:能同进程传变量就别拆脚本、别上数据库;真要拆两段,中间放一个 JSON(UTF-8 + ensure_ascii=False,出错能打开看)是够用的上限。别按行 split 这种脆解析。
  • 动静结合 / 三条路决策 W8 — 一个任务片段该走哪条路的判断口诀:先问有没有接口(能直取就 curl_cffi,最省)、再问要不要渲染(要点按填单就 Playwright)、最后才动鼠标(桌面软件走元素、自绘界面走视觉)。「静」= 不开浏览器的接口直取,「动」= 真开浏览器 / 动鼠标。判断锚:这段数据不渲染页面能不能拿到?能→直取,不能→浏览器。
  • 失败隔离 W8 — 混合脚本稳定性的一半:把易翻车的段(尤其网页)包 try,一段崩了保住上游已取的成果(写进中间 JSON、可 --resume 续跑),不带崩整条链。和 W12 的[[失败回退]]不同——回退是「换一条路把这件事做成」,隔离是「这条路崩了先保住别的成果、别全盘重来」。全源联跑时单源还要有超时上限,失败进「本轮跳过」而非干等。

6. 反检测与稳定性

这两节(W7 / W14)开篇都先划法律与道德边界,只在合法场景讲怎么跑稳、少被误拦,不碰明令禁止的目标、不教灰色服务。

  • 合规边界(反检测) W7·W14 — 只在合法、低风险场景讲反检测:合法兜底=登自己的号、被风控误伤时让自动化继续取自己有权访问的数据;坚决不碰=绕付费墙、爬禁止站、批量注册、冒用身份;不教灰产=打码平台、代理黑产、成品级「过 Cloudflare」服务。强风控 + 高敏感的源(如账单)直接「该停手」、不自动化(反面教材)。边界比任何工具都重要。
  • 机器人检测(bot detection) W7 — 网站识别「这访问是脚本不是真人」并拦截的机制,自动操作网站很快会撞上。
  • 指纹(fingerprint) W7 — 网站把你浏览器的多项特征(分辨率、字体、显卡、时区…)组合成的标识,用来识别「又是这台机器 / 这个脚本」,即便换了 IP 也可能靠它被认出。常见细分:Canvas / WebGL 指纹(画图特征)、字体指纹、TLS / JA3·JA4 指纹(握手特征,curl_cffi 拟态的就是这层)。
  • Cloudflare / Akamai / DataDome W7 — 主流的网站防护、反爬服务,2026 年常见的拦截来源。它们多维度打分、不看单一信号——所以反检测是组合拳、不是银弹。
  • 行为模拟 W7·W14 — 让脚本的鼠标移动、打字节奏更像真人,降低被判为机器的概率,但它不是银弹。
  • Playwright Stealth W7 — 给 Playwright 打补丁、隐藏一些明显自动化特征的方案。会失效,要配合其它手段。
  • Camoufox W7 — 浏览器层的内核级反检测:开源、重编译的 Firefox,从 C++ 内核改指纹(navigator / 字体 / WebGL… 由 BrowserForge 生成),包了 Playwright 的 API,补上 Stealth 在 Firefox 基本失效的空白。 :① 到 2026 它维护明显放缓、效果已衰减,arm64 沙箱可能跑不动(x86 录屏 / 选做);② 用 Camoufox Python 库(旧 launcher 已弃用)。别单押——这正是「别把成品押在单一 / 闭源内核上」的活教材。
  • ruyiPage / isTrusted(闭源对照) W7 — 闭源二进制,号称从内核伪造 isTrusted(让事件看着像真人触发)。原理可讲,但不押注闭源内核:看不到代码、不可审计、随时失效。开源可重编译的 Camoufox 才适合教学与可控落地。
  • curl_cffi W7·W8 — 不开浏览器、直接发网络请求取数的 Python 库,能把 TLS 握手指纹(JA3/JA4)和 HTTP2 设置帧伪装成真实 Chrome 的样子,在握手阶段就不容易被识破,比普通 requests 更难被一眼拦下(用泛名 impersonate="chrome" 自动对齐最新版、别写死版本号;Python 3.10+)。可以想成 requests 的「会伪装浏览器指纹」版。 :只适合不用渲染页面、靠接口就能拿到数据的场景;要登录、点按钮、页面靠 JS 动态生成的,还得回浏览器。和 GUI Agent 动静结合——静态取数用它省开销,动态交互交给浏览器。
  • CDP(Chrome DevTools Protocol) W7 — 控制 Chrome 的底层协议,Playwright、Puppeteer、nodriver 都靠它给浏览器下指令。可以想成「遥控浏览器的指令格式」。
  • nodriver W7 — 〔★进阶〕绕开 Playwright 这类驱动层、用原生 WebSocket 直接对 Chrome 发 CDP 指令的库。Playwright / Puppeteer 连上浏览器的握手阶段会留固定特征(如发一串 Runtime.enable),容易被 Cloudflare 这类校验秒拦;nodriver 直连能消掉这层驱动指纹。 :是硬核进阶、不是必学;它只解决「驱动层指纹」,IP、行为等其它维度照样要管,仍不是银弹。AGPL-3.0——商用有传染性,落生产先问法务;纯无头不稳;同类还有 zendriver(fork)、patchright,别押单一工具。
  • 住宅代理(residential proxy) W7 — 用真实家庭宽带 IP 出口,比机房 IP 不容易被一眼识别,合法场景下用。
  • Cookie 持久化 W7 — 把登录状态(Cookie)存下来复用,不用每次重新登录,也更像老用户。
  • 多账号画像 W7 — 不同账号配不同的 IP、指纹、Cookie 互相隔离,不要用同一套环境登录多个账号。
  • 验证码(CAPTCHA) W7 — 网站用来拦截机器人的人机验证。本课讲 AI 识别 + 人工接手,不教打码灰产。
  • 高斯延迟 W14 — 让每步之间的等待按正态分布随机,而不是死板的固定间隔,更像真人。
  • 贝塞尔轨迹 W14 — 让鼠标走平滑曲线,而不是从一点直接跳到另一点,模拟人手移动,同样不是银弹。
  • 人类操作画像 W14 — 把「真人怎么操作」整套特征(速度、停顿、轨迹、误触)拼出来照着模拟。
  • 法律与道德边界 W7·W14 — 反检测只在合法范围讲,两节开篇都先把这条线划清楚。

7. 大模型与 Agent 核心

  • 大模型(LLM) W9·W10 — 能理解和生成文字、有的还能看图的 AI 模型。Agent 的「大脑」,负责看屏幕、做判断、决定下一步。
  • 多模态 / 视觉模型 W9·W10 — 不只读文字、还能看图(截图)的大模型。Computer Use 必须用能看图的。
  • token W1·W15 — 大模型计费和计量的单位,文字、图片都折算成 token。每走一步都调一次模型、按 token 收费,所以要控成本。
  • API W6·W10 — 用代码调用大模型服务的接口,要 API key,按调用量付费。
  • Prompt(提示词) W10 — 你给大模型的指令和上下文。怎么写 Prompt 直接决定 Agent 靠不靠谱。
  • Computer Use W1·W9·W10 · 📖 官方 — 让大模型「看屏幕截图 → 决定下一步 → 操作鼠标键盘」的能力,本课要自己实现它的核心循环。 :慢、贵、会出错,不适合高频、像素级精确、零容错的活——那些写确定性脚本更划算。
  • 确定性脚本(deterministic script) W1·W8 — 步骤写死、每次跑结果都一样的传统脚本(直接用 pyautogui / Playwright,不调大模型判断)。是 Computer Use 的对照面:步骤固定、不用看屏幕理解的活,就用它,别上 Agent(W1 讲过这个区别)。
  • 核心循环(agent loop) W10 · 📖 官方 — Agent 的心脏,一个闭环:观察(截图)→ 推理(模型想下一步)→ 动作(输出一个 action)→ 执行(你的程序点击 / 输入)→ 验证(再截图比对结果),然后回到观察、进入下一轮。官方把「不需要人介入、反复跑执行与返回结果」这段叫 agent loop。W10 亲手写一遍。 :模型常假设上一步成功就往下走,不复查;每步都要截图验证,必要时在 Prompt 里明确要求它「做完先自查」。
mermaid
flowchart LR
  O[观察 · 截图] --> R[推理 · 想下一步]
  R --> A[动作 · 输出 action]
  A --> E[执行 · 点击/输入]
  E --> V[验证 · 再截图比对]
  V --> O
python
# agent loop 伪代码(简化版,体现观察→推理→动作→执行→验证→反馈)
history = []
screenshot = take_screenshot()                       # 观察:先看一眼屏幕
while True:
    reply = model.run(history, screenshot,            # 推理:模型看截图决定下一步
                      tools=[computer_tool])
    if reply.is_done:                                 # 模型认为任务完成 → 收工
        break
    for action in reply.tool_uses:                    # 动作:click / type / scroll / zoom …
        do(action)                                    # 执行:在沙箱里真正操作
        screenshot = take_screenshot()                # 验证:拿一张新截图
        history.append(tool_result(action, screenshot))  # 反馈:把结果回传给模型
  • 五部件(截图器 / 大脑 / 解析器 / 执行器 / 验证器) W10 — 把核心循环拆成五块各自能独立写、独立测:① 截图器抓屏 + 编码 + 坐标映射;② 大脑(调模型)把截图+目标+历史发给 Claude 拿回下一步;③ 解析器把返回里的 tool_use 转成结构化动作;④ 执行器用鼠键真去点 / 输(坐标先过映射);⑤ 验证器执行后自查成没成。写 Agent 不是一口气写 200 行,是分别弄对这五块再串起来。
  • max_steps(步数上限) W10 — Agent 循环第一行就该焊死的保险丝:没有它,模型卡在某步会无限循环、无限烧 token。任何 Agent 循环都要有步数上限;还可加「连续几步没进展就停」。
  • 动作后验证(post-action check) W10·W14 — 脚本变 Agent 的关键那一步:动作做完要看一眼结果状态(元素出没出现、值变没变、有没有弹错误框),不是「发出了动作就算成」。W10 先做最朴素版(新截图回喂让模型自己看),W14 做硬(代码层确认 + 失败诊断 + 重试)。没有它,Agent 只是个「按模型说的做」的脚本;有了它,才会自查、会纠错。 :模型常假设上一步成功就往下走——「假成功」蒙混过关的根源就是不做动作后验证。
  • 对话历史 / 上下文(context) W10·W15 — Agent 要记着前几步做了什么才能接着执行。历史越长、调用越贵,需要裁剪。每轮把 assistant(模型动作)和 user(执行结果 + 新截图)追加进 messages完整前缀每轮重发——这就是 Agent 越跑越贵的原因(截图一张张累积)。治理靠[[提示词缓存]] + [[context editing]] + [compaction]

官方 Computer Use 工具(API 实操)

上面是通用原理,这里是 Anthropic 官方 API 的具体说法,W9 拆官方实现时按这套术语对。核心术语都按「定义 / / 链接」展开。

  • computer 工具类型 / beta header W9·W10 · 📖 官方 — 调官方 Computer Use,要在工具定义里写 type: "computer_20251124",并在请求头开 beta:anthropic-beta: computer-use-2025-11-24(配 2026 现行的 Claude Sonnet 5 / Opus 4.8 等 4.7+ 代次);旧模型用 computer_20250124 + computer-use-2025-01-24。版本号约等于「这套工具的接口版本」。 :工具版本号和 beta header 要跟模型代次对上,错配会直接报错;别照搬旧教程把 computer_20250124 / 「必须缩到 1024×768」当唯一真理(那是老模型做法);它仍是 beta、版本变动快,以官方文档当前为准。
  • adaptive thinking(自适应思考) W10 — 2026 的 4.7+ 模型(Sonnet 5 / Opus 4.8)控制「思考深浅」用 thinking={"type": "adaptive"},让模型自己按难度决定想多少。返回里可能带思考文字(给你 debug 看),执行只认 tool_use:这些模型移除了 temperaturebudget_tokens——照搬旧教程传 temperature=0 会当场报错;要更省可设低 effort,别再传那两个旧参数。
  • 核心动作(actions) W9·W10 — 模型每轮输出一个动作让你执行。基础(所有版本):screenshotleft_clicktypekeymouse_move;增强(computer_20250124 起):scrollleft_click_dragright_click / double_click / triple_clickleft_mouse_down / uphold_keywait;computer_20251124 再加 zoom。按修饰键(shift/ctrl/alt/super)是给点击、滚动动作传 text 参数。 :不同工具版本支持的动作不一样(如 zoom 只在 computer_20251124),用了模型代次不支持的动作会出错。
  • zoom(放大) W9computer_20251124 新增,让模型以全分辨率看屏幕某块区域,定位小目标更准。要在工具定义里开 enable_zoom: true,动作带 region: [x1, y1, x2, y2](左上角、右下角)。 :不开 enable_zoom 用不了;它专为小目标定位补救,不必每步都缩放(多一次调用就多花 token)。
  • display_width_px / display_height_px W9 — 工具定义里必填,告诉模型「屏幕多大」。官方建议:一般桌面 1024×768(即 XGA)或 1280×720,Web 应用 1280×800(即 WXGA)或 1366×768,别超 1920×1080(又慢、精度又掉)。还有可选 display_number(X11 显示号)。 :这两个值必须和你实际发给模型的截图尺寸一致,对不上会导致点击系统性偏移。
  • 坐标缩放 / 映射 W9·W10 — 最容易踩的坑。API 把截图限制在最长边 ≤ 1568 像素、约 1.15 百万像素,超了自动降采样(如 1512×982 缩到约 1330×864)。模型在缩小后的图上给坐标,你必须按比例换算回真实屏幕再点击。 :点击整体偏移,十有八九是没映射回真实分辨率;macOS Retina 截图是逻辑分辨率的 2 倍,坐标记得除以 2。
  • 截图与图像开销 W9·W15 — 模型靠截图看屏幕,每张约占 1000–1800 input tokens。 :长循环里截图越堆越多、token 暴涨;靠压缩、裁剪、只在上下文里留最近几张控住(见[[成本控制]]、[[提示词缓存]])。
  • tool_result / 反馈循环 W9·W10 — 官方循环:模型回一个 tool_use(动作)→ 你执行 → 把结果(主要是新截图)作为 tool_result 发回去 → 模型据此决定下一步。这就是「核心循环」在 API 层的样子,是有状态的多轮对话。 :执行完一定要把新截图作为 tool_result 回传,模型才知道发生了什么;漏传它就无从判断下一步。
  • 视觉 grounding W9·W12 — 模型「看懂」截图、把「点登录按钮」对应到具体像素坐标的能力。它是纯视觉路线的根基。 :小目标、高分辨率下定位会偏,这是会点错的根源——靠 zoom、坐标映射、动作后验证来补。
  • grounding 专用 VLM(独立定位路) W9·W12 — 定位有两条路:一是 Claude 这样的全能模型包圆(一次推理既决策又吐坐标);二是把「定位」单拎出来交给 grounding 专用 VLM——给它一张图 + 一句「找搜索框」,它只回归一化坐标 / bbox、不掺决策,于是变成「通用大模型想下一步 + grounding 管在哪」的两段式。这条路国内可跑,是「没有 Claude key 怎么办」的真实回答:火山方舟 doubao-1.5-ui-tars(字节,有免费额度)直连;开源权重看 Qwen3-VL 系(GUI-Owl / UI-Venus 基于它,国内可下)。别再说「UI-TARS 是开源最强」——它开源权重停在 1.5-7B,更强的只有 API。 :grounding 再准也翻不过 W12 的天花板(拿不到控件状态,见[[1c 天花板]])。
  • 参考实现(reference implementation) W9 · 📖 GitHub — Anthropic 官方 anthropic-quickstarts / computer-use-demo:一个 Docker 容器(Xvfb 虚拟显示 + 轻量桌面 + Firefox / LibreOffice)+ 工具实现(tools/)+ agent loop(loop.py)+ Web 界面。 要点:W9 先把它跑起来体验,再读源码,别一上来啃代码。
  • 安全与限制(allowed actions) W9·W14 — 官方明确建议:跑在专用 VM / 容器、给最小权限;别喂账号密码等敏感数据;网络限制到域名白名单;接受 cookie、付款、同意条款这类有真实后果的动作要人工确认(HITL)。 :模型可能被网页 / 截图里的文字指令带偏(prompt injection)——官方有分类器自动拦、必要时让模型先问你再动,但隔离和最小权限仍不能省。功能仍是 beta。

8. Agent 框架

  • Claude Agent SDK W9 — Anthropic 的 Agent 工程化方案(Python 包 claude-agent-sdk,2026 由原 claude-code-sdk 更名、自带捆绑 CLI),五件套 = Skills / Sub-agents / Hooks / MCP / Sessions。走读它是为了知道「框架把哪些活替你干了」,本课偏偏要 W10 从零写一遍循环,先造轮子再对比。
  • Hooks(钩子) W9 — Agent SDK 五件套之一:在工具调用前后插钩子(PreToolUse / PostToolUse)做审批、日志、改写。W11 的分级审批就是这类「工具调用前拦一道」的思路。
  • Sessions(会话存储) W9 — Agent SDK 五件套之一:可插拔的会话存储 + 断点续跑,长任务中断了能接上。和 W11 LangGraph 的[[checkpointer]]是同一件事的不同实现。
  • Managed Agents(托管 Agent) / 自托管 vs 云托管 W9·W11 — 2026 新格局:除了「自己跑 loop」(Agent SDK / 官方 demo,循环跑在你机器上、可控可定制),还有 Anthropic Managed Agents(beta)、OpenAI Responses 托管容器——云端替你跑 agent loop + 托管执行环境。选型多一问:循环跑在你机器上(自托管,可控、数据不出门),还是交给厂商(云托管,省运维、把执行交出去)?
  • Skills(技能) W9 — 把某类任务的做法打包成可复用的能力,给 Agent 按需加载。打包一个 Skill ≈ 一个文件夹,写清「什么时候用、步骤、要哪些工具」。 :一个 Skill 聚焦一类事、写清触发条件;塞太多反而让模型不知道何时用。
  • Sub-agents(子智能体) W9 — 把任务拆给多个各管一块的子 Agent,分工协作。 :任务能切成独立子块、或想隔离上下文(别让一个 Agent 的长历史拖累全局)时才拆;拆过头会增加协调成本和 token,能不拆就不拆。
  • Code Execution(代码执行) W9 — 让 Agent 写并跑代码来完成任务,而不只是点界面。
  • MCP(Model Context Protocol) W9 — 一套让 Agent 统一接外部工具、数据源的协议。
  • Harness(智能体 harness) W9·W11 — 把模型包成能干活的 Agent 所需的整套外围:工具(Tools)、提示词(Prompts)、文件系统、Skills、子 Agent、记忆(Memory)。模型是发动机,harness 是让它真正上路的底盘;Claude Agent SDK 给的就是一套现成 harness。 :效果好坏一半在 harness 不在模型;Agent 不行时先查工具、Prompt、记忆怎么给的,别只盯着换模型。

Skill vs Sub-agent 怎么选

Skill(技能)Sub-agent(子智能体)
是什么一段「怎么做」打包成可复用能力一个独立运行的子 Agent
解决什么复用做法、按需加载知识拆分任务、隔离上下文
开销轻(加载一段文档 / 指令)重(独立的对话和模型调用)
何时用同类操作反复出现任务能切独立块、想隔离长历史
  • ReAct / Plan-and-Execute W11 — 两种经典 Agent 套路。ReAct = 边想边做(推理与动作交替,走一步看一步);Plan-and-Execute = 先列完整计划再逐条执行。Computer Use 多偏 ReAct(屏幕随时在变),长任务可掺一点先规划。
  • Memory(记忆)类型 W10·W11·W15 — 三层:短期 = 当前对话的上下文窗口(context window,装着近几步);长期 = 跨任务存下来的知识 / 经验;状态持久化 = 把当前进度落盘,出问题能恢复(见[[持久化 / 回放]])。
  • LangGraph W11 · 📖 GitHub — 用「状态机」方式搭 Agent 的框架,能暂停、恢复、让人中途介入。本课把 W10 的裸循环用它重写,装上三样:暂停键(interrupt)、存档点(checkpointer)、安全闸(分级审批)。用 1.x(1.0 于 2025-10 发布、强调零破坏性升级,核心 API StateGraph / interrupt / checkpointer 在 1.x 稳定);老教程的 MessageGraph / 0.x 写法别抄。 :别当「更高级所以必须用」——简单一次性任务 W10 的裸循环就够;值不值得上,看你要不要状态管理(暂停 / 存档 / 人在环)。
  • State / Node / Edge W11 — LangGraph 的三个概念,正好对上 W10:State = 贯穿全程的数据字典(TypedDict),就是 W10 的 history + state;Node = 一个函数,读状态、干一件事、返回状态更新(只返回改的键,存档快照才干净),W10 的「截图 / 问模型 / 执行」各是一个节点;Edge = 决定这个节点之后走哪,固定边(A→B)或条件边(看状态决定去向),就是 W10 里的 if
  • 状态机(state machine) W11 — 把 Agent 的流程画成「节点 + 跳转」,每步走到哪、下一步去哪都明确。
  • 中断点(interrupt) W11 — 在某步停下来等人确认或介入,再继续。HITL 靠它实现。节点里调 interrupt(要问的东西),图会停在这、把状态存好、把问题抛出等人;人给了答复用 Command(resume=答复)中断那一行继续——不是重跑整个图,前面的成果都在存档里。
  • checkpointer / thread_id W11 — LangGraph 的存档点:给图配一个 checkpointer(教学用 InMemorySaver,进程一关即丢;跨重启用 SqliteSaver / Postgres),每个节点跑完自动存一次状态,崩了、停了都能恢复。thread_id 是存档的钥匙——同一个 id 才能恢复同一次运行,换 id 就是新一次。 :① 恢复时节点从头重放(interrupt 之前的副作用会再执行一遍)——副作用放 interrupt 之后、或让节点保持纯函数;② 往状态里放自定义类(如成品的 Item)要给 checkpointer 传登记过的序列化器,否则告警、未来版本直接拒绝;③ langgraph dev 调试模式强制内存 checkpointer,重启即丢。
  • 持久化 / 回放 W11·W15 — 把 Agent 每步的状态存下来,崩了能恢复、事后能一步步回放复盘。
  • 六框架对照(CrewAI / AutoGen / OpenAI Agents SDK / Pydantic AI …) W11 — W11 给一张对照地图,重点不是记住每个框架、是学会看框架的四个问题快速定位新框架:① 管单 Agent 循环还是多 Agent 协作?② 有没有 human-in-the-loop(能暂停等人)?③ 状态怎么持久化?④ 接外部工具走不走 MCP? 坑(2026 时效):AutoGen 已并入 Microsoft Agent Framework 1.0(2026-04 GA)、进维护模式,新项目别选;Pydantic AI 是 2026 上升快的黑马;别只会背名字——会问「它还维护吗」才不踩坑。选型还多一维:自托管还是[[Managed Agents]]托管?
  • Skyvern W12 · 📖 GitHub — 一个浏览器 Agent 项目,W12 拿它的「视觉 + 元素混合」思路做案例对照。它的 Route Memorization:首跑让 LLM 探索(贵、慢、能应付没见过的页面),跑通后把路径固化成脚本(便宜、快、稳),页面改版脚本失效再回 LLM——把「探索」和「复跑」的成本分开,和本课「先元素后视觉」同一个思想(贵的能力当兜底、便宜的路当日常)。 :它自家 Web Bench 有利益相关,看思路别全信分。
  • 混合架构(视觉 + 元素) W12 — 先用元素方式找,找不到再退回看屏幕,两种互补、一种不行自动切另一种。优先一条、失败才切(有明确条件:拿不到 / 置灰 / 超时),不是两条都跑取交集。
  • 1c 天花板(视觉拿不到控件状态) W12 — 纯视觉三层局限里翻不过去的那层:1a 通用模型猜坐标不准、1b grounding 专用模型也有 OOD 失手,这两层换更强模型能缓解;1c 是天花板——置灰按钮框得再准,视觉也判断不了能不能点(enabled / value / checked / role 这些状态在无障碍树里、不在像素里)。这是「必须混元素」的根本理由,换什么视觉模型都绕不过。
  • 失败回退(fallback) W12·W14 — 一种方法失败时自动换另一种或退回上一步,而不是直接崩。成品里每个源可配多条采集路(mail = Playwright 会话 / Camoufox 兜底),编排层按优先级试、真异常才换路(正常空数据是成功、不换),全失败才进「本轮跳过」。和 W8 的[[失败隔离]]互补:回退换一条路把这件事做成,隔离保住别的事不受连累。
  • 失败诊断树 W14 — 桌面 Agent 失败时先分类再决定怎么办,别盲目重试:弹窗挡路(关掉再做,可重试)、页面没加载完(等一拍,可重试)、界面改版(停下报告,重试没用)、任务有歧义(停下问清,见[[信息困境 / 主动澄清]])、确定性失败(密码错 / 权限没,立刻停)。不诊断就重试,等于盲赌。
  • 信息困境 / 主动澄清(information dilemma / clarification) W12·W16 — 真实任务里信息常常不全或互相打架:指令模糊(「查上周数据做个图」没说看哪个指标)、跑到一半冒出新信息(本地多了张表、页面弹了窗)、要求冲突(让你往未授权网站填凭证)。应对不是硬猜,而是先把待确认的点列成一张小清单,用一个澄清回合问清楚,把不确定性降到零、再动手操作宿主机或发请求。 要点:动真格(改文件、发网络请求)之前澄清,代价最低;这也是[[失败回退]]的一种——信息不够就回退成「反问」,而不是带着猜测往下做。
  • Eval 与基准(benchmark) W11·W15·W16 — 怎么衡量 Agent 好不好。公开基准:OSWorld(桌面任务)、WindowsAgentArena(Windows 跨应用)、WebArena(网页任务)、ScreenSpot-Pro(纯静态图定位、便宜,只评「点得准」不评端到端)。 要点(2026 时效):「SOTA 才 30–40% / 不足 21%」是 2025 年初的老黄历——OSWorld-Verified 前沿已到 83–85%、超过人类基线(约 72%)、接近饱和,叙事已从「能不能用」转向「怎么便宜稳定地用」。本课不照搬这些重型基准(对零基础过重、又费 token,且前沿已饱和证明不了你的场景),改用[[自建任务集]]评你自己的活。
  • 自建任务集 / TCR / 步数效率 W15·W16 — 放手前量化「它在我的场景行不行」:攒 10 来个真实任务(输入固定、期望明确、check 客观可判定——关键词 / 结构 / 数值,别用「看起来对不对」),盯两个指标:TCR(任务完成率) = 做成几个 / 总数、步数效率 = 平均几步做完(每步都是一次模型调用,越少越省)。「我的场景完成率 6/10 → 9/10」比「OSWorld 多少分」对你有用得多。

9. 工程化与生产

  • 错误处理三层 W15 — 把错误分成客户端错(输入不对)、服务端错(内部崩)、外部错(网络、限流)分别处理,不一锅端。
  • 重试 / 退避(retry / backoff) W15 — 出现临时故障(网络抖动、限流)时,等待一段时间再重试,等待间隔逐次拉长。
  • 熔断(circuit breaker) W15 — 某个外部服务连续失败时,先暂停调用、等它恢复,避免雪崩式的连环失败。
  • 自修正(self-correction) W14·W15 — Agent 靠「动作 → 截图 → 比对预期」发现这步错了,主动回退或换个方式重试,而不是带着错误往下走。
  • 轨迹记录与回放 W15 — 把 Agent 走的每一步都记下来,出问题能原样回放、看它哪步错了。
  • 结构化日志 W15 — 日志按字段记录(时间、动作、结果),而不是大段纯文本,方便检索分析。
  • 可观测性 / 追踪(observability / tracing) W15 — 能随时掌握 Agent 在做什么、卡在哪一步、花了多少成本的整套手段;把一次任务的每步链路串起来看,就是 tracing。
  • 快照 / 恢复(snapshot / restore) W13·W15 — 给沙箱存一个干净状态的快照,Agent 跑出问题时一键还原到快照,省去每次重建,长流程调试和反复试错很省时间。
  • HITL(人在回路 / human-in-the-loop) W1·W11·W15 — 关键步骤(花钱、不可逆)让人确认了再继续。设计时想清楚拦哪几步(分档见[[分级审批]])、怎么把上下文摆给人看、人改完怎么回传给 Agent。错一次代价高的活必加。
  • 分级审批 W11·W15 — 按动作危险程度分三档决定要不要拦人确认:总是审批(转账、删文件、填账号密码这类不可逆或敏感操作)、从不审批(移动鼠标、截图这类无害动作)、条件触发(看金额、看目标域名临时判断)。本课接在 W11 的[[中断点]]上实现:命中高危就暂停、等人点同意再继续。 :被拒绝后别把审批用的临时消息留在历史里发回模型——要清掉、重建一条干净上下文,再引导它换做法或回退。
  • 成本控制 W1·W15 — CUA 最烧钱的地方是每轮重发完整历史 + 一张张累积的截图。三件套治它:静态长前缀锁进[[提示词缓存]]、[[context editing]] 清掉没人再看的旧截图、[[compaction]] 把老历史压成摘要;再加「能用便宜模型就用便宜的」([[模型路由]])。
  • Prompt Caching(提示词缓存) W15 — 把每轮都重发的那段长前缀(系统提示、工具声明、固定操作说明)在服务端缓存住,命中的部分只按约 1/10 价格计费。在每步都要发长上下文 + 截图的 Computer Use 里尤其值钱。 2026 数字(别照搬旧教程):缓存写入 1.25×(5 分钟 TTL)/ 2×(1 小时 TTL)基础输入价、读取约 0.1×(省约 90%);最少可缓存 token 按模型分档——Opus 4.8/4.7 = 4096、Fable 5 / Sonnet 4.6 = 2048、老 Sonnet = 1024(低于门槛静默不缓存、不报错);每请求最多 4 个断点(cache_control: {"type": "ephemeral"})。回本点:5 分钟 TTL 两次请求回本、1 小时 TTL 需 ≥3 次。 :缓存是前缀匹配——前缀里任何一个字节变了(改系统提示 / 换模型 / 插一张新图),其后全部失效。CUA 命门一句话:稳定的(system + 工具定义 + 早期历史)放前面缓存,变化的(截图)追加在 messages 末尾。命中看 usage.cache_read_input_tokens > 0
  • context editing / compaction W15 — 两种「把上下文瘦下来」的手段,和缓存配合治 CUA 的 token 大头。context editing(clear_tool_uses)清掉旧的工具结果 / 截图——CUA 里旧截图占大头且没人再看,只留近几轮。compaction:长对话把老历史压成摘要,腾出窗口。
  • 幂等(idempotent) W14·W15 — 同一个操作重复执行、结果不变。有副作用的动作(提交订单、支付、发送)重试前要先查状态确认幂等,否则重试可能下三单。采集 / 读取类动作天然可重;成品的简报「同日重跑直接覆盖」也是幂等。
  • 模型路由(model routing) W15 — 一个 Agent 里按步骤难度派不同模型:简单步骤用便宜小模型,关键决策才上贵的强模型。是[[成本控制]]的一种具体打法。
  • 多 Agent 编排(orchestration) W11·W16 — 多个 Agent 怎么分工、传数据、谁先谁后。常见是一个主控 Agent 把任务分派给若干专职 Agent、再汇总。先把单 Agent 做稳,再考虑上多 Agent。
  • 部署形态对比 / 云沙箱四象限 W13 — 跑 Agent 的几种方式:本地 Docker 沙箱(便宜、可控、数据不出门、要自己维护)vs 上云。2026 云沙箱分四象限:代码沙箱 E2B(只跑代码、不要图形桌面)、浏览器云 Browserbase(精致)/ Hyperbrowser(走量)/ Steel(开放)(只操作网页、要托管无头浏览器)、全桌面 Scrapybara(完整桌面 + computer use)、厂商托管([[Managed Agents]]、连 loop 都托管)。判断锚:要不要完全可控、数据能不能出本地、有没有运维精力。别把「上云」等同「更高级」——小规模 / 教学自建常更合适;云服务变动快、有的要验活,引用前实测。
  • 资源限制 / 数据卷持久化 W13 — 成品专属 compose 的两处生产化:deploy.resources.limits(cpus / memory)给容器设上限,别让 Agent 跑飞把宿主机吃垮;会话 / 简报落具名卷(容器可以随时删、数据不能随容器删),删容器重建数据还在。配合 PIXELFLUX_WAYLAND=false(强制 X11)、cron 预留,做到「新机器 docker compose up 五分钟跑起来」。
  • cron / DOCKER_MODS W13·W16 — 让成品每天定时自跑:webtop 默认不跑 cron,compose 加 DOCKER_MODS=linuxserver/mods:universal-cron 起 cron 守护、读 /etc/cron.d;crontab 填 0 8 * * * 每天 08:00 跑一轮落简报。 (实测):cron 环境极简、PATH 找不到 webtop 的 Python(在 /lsiopy venv 里)会报 ModuleNotFoundError——crontab 顶部加 PATH=/lsiopy/bin:... 补全。
  • fail-closed(失败关闭 / 无人值守安全) W16 — 拿不到人工确认时的安全默认:cron 定时跑没有终端,input()EOFError,敏感项(账单等)一律不放行、自动落「本轮跳过」——「敏感项 100% 过人工闸」在无人值守下的正确形态是不批、不是全批。想让敏感项入简报,交互跑一次确认。反义是 fail-open(拿不到确认就放行),在安全敏感场景是错的。

10. CUA 特有 vs 传统自动化

同样是「让程序自己操作」,Computer Use Agent 和传统脚本差在哪。一张表看清什么时候用哪种(W1 讲过这个区别)。

维度传统 GUI / 浏览器自动化(pyautogui / Playwright)Computer Use Agent
怎么定位写死坐标、找元素、按固定规则模型看截图自己判断(视觉 grounding)
界面变了容易失效,得改脚本多半能自己适应
速度 / 成本快、几乎免费慢、每步调模型按 token 收费
稳定性步骤固定时很稳会看错点偏,要靠验证 + 重试补
适合场景步骤固定、高频、要精确步骤会变、要看屏幕理解、能容错

一句话:固定流程用传统脚本,要「看屏幕随机应变」才上 Agent——这就是 Agent 和传统脚本的分界。两者也常混用:能写死的部分写死,真需要判断的交给模型。

自动化与 Agent 术语速查表 | 资讯狗 | Zixungou