环境型 Agent
知识库简介
浏览器 Agent、桌面操作 Agent 与编码 Agent 看似使用不同工具,工程上却共享同一问题:模型只能看到环境的有限投影,动作会改变一个持续演化且可能不可逆的外部状态。可靠系统必须把它们建成受控的 observation–action runtime,而不是“截图或文件扔给模型,再执行它说的话”。
本课程统一三类环境的核心契约:
可复现初态 → 带版本的 observation → 结构化 action proposal
→ schema / policy / permission / approval / budget 校验
→ sandbox adapter 执行 → receipt + 新 observation
→ checkpoint / trace → 独立 verifier 检查终态与副作用事实边界
来源获取与复核日期为 2026-07-22。课程采用 WebArena、OSWorld、SWE-bench 原始论文/官方项目、Playwright 官方文档与 OWASP/NIST 的工程治理资料来提炼稳定边界,不维护模型排行榜或特定产品 UI。浏览器、操作系统、代码仓库和 benchmark harness 都会变化;应用到真实环境前应重新固定版本、镜像、权限与评测数据。
在总路线中的位置
建议先完成:
- Agent 核心:状态、检查点、幂等、终止和人在回路;
- Tool Calling:schema、授权、调用 ID、错误与重试;
在接触不可信页面、邮件、仓库或高权限动作前,至少先读 威胁建模、提示注入与间接注入 和 身份与最小权限。这是早期安全门,不要求此时已经完成 AI 安全 的生产治理与事件响应部分。
本课程把这些不变量落到交互环境。之后可进入 评测体系、运行监控 与 LLMOps,把单次演示提升为可重复 trial 和发布门禁。
学习目标
- 用统一的 observation–action loop 分析浏览器、桌面与代码环境。
- 区分隐藏的真实环境状态、Agent observation、runtime state 与模型 context。
- 设计带版本、作用域、前置条件、风险、幂等键和验收证据的动作契约。
- 明确区分用户目标、模型计划、委派授权、环境身份、审批与 adapter receipt;计划、页面文字和模型自述都不能自行升级为权限。
- 在浏览器中使用语义 locator 与 actionability,而不是把坐标点击当默认接口。
- 为桌面和代码执行设置沙箱、最小权限、审批、回滚或补偿边界。
- 用 checkpoint、receipt 与外部事实恢复长任务,不重复副作用。
- 以初态、终态、轨迹、副作用、成本和延迟共同评测环境型 Agent。
- 让审计记录保留可对账的身份、策略、摘要和时间证据,同时对原始敏感内容实施最小留存、脱敏与访问控制。
推荐学习顺序
| 顺序 | 课程 | 核心问题 | 完成证据 |
|---|---|---|---|
| 1 | 统一的环境交互契约 | 目标、身份、状态、观察、动作与授权如何分层? | 能画出委派、控制与证据边界 |
| 2 | 浏览器 Agent 与可行动性 | 页面元素何时才可安全操作? | locator + actionability + 终态 verifier |
| 3 | 桌面操作 Agent 与机器状态 | 怎样控制焦点、模态框与跨应用副作用? | VM 初态与 typed action 方案 |
| 4 | 编码 Agent 与可验证补丁 | “测试通过”怎样成为受限完成证据? | repo snapshot + patch + 双向测试 |
| 5 | 沙箱、权限、审批与回滚 | 哪些控制必须在模型之外? | 风险分级与授权矩阵 |
| 6 | 长任务检查点与幂等恢复 | 崩溃后怎样安全继续? | checkpoint schema + crash-window 表 |
| 7 | 环境评测与综合项目 | 怎样证明任务成功且无越界副作用? | 评测卡 + 103 个离线测试 |
建议投入 12–16 小时:前 6 课各 60–90 分钟,综合项目 4–6 小时。
三类环境的统一视图
| 环境 | observation 示例 | action contract 示例 | 权威状态 | 完成证据 |
|---|---|---|---|---|
| 浏览器 | URL、可访问性树、DOM 摘要、截图、网络结果 | navigate、locator click/fill、download | session、tab、storage、站点后端 | 页面断言 + 后端业务状态 + receipt |
| 桌面 | 屏幕、可访问性树、窗口/焦点、文件元数据 | focus、click、type、launch、file op | OS、应用、文件系统、剪贴板 | 执行式终态检查 + 副作用清单 |
| 编码 | commit、worktree、文件、索引、测试输出 | read/search/edit/test/build | 仓库快照、依赖与工作树 | 目标测试 + 回归测试 + diff/策略检查 |
截图、DOM、终端输出和 issue 文本都是 observation,不自动成为可信指令;模型提出的 action 也不自动获得权限。
动手实践入口
课程项目仅使用 Python 标准库和内存沙箱,不调用真实浏览器、桌面、shell、网络或模型:
Set-Location ".\docs\环境型Agent"
$env:PYTHONDONTWRITEBYTECODE = "1"
python -B .\examples\environment_runtime.py
python -B -W error .\examples\test_environment_runtime.py
python -B -O -W error .\examples\test_environment_runtime.py项目包含严格 fixture/action/checkpoint schema、路径与测试目标作用域、权限拒绝、模型外 HMAC 审批、环境实例与 pre/post-state 指纹绑定、proposal/墙钟双重过期、过期 pending 冻结与 fresh approval 恢复、proposal/step 预算、以 adapter receipt 为权威的幂等 replay、完整 receipt 指纹、needs_review 人工对账、HMAC checkpoint 与外部单调高水位、crash-window 恢复、版本化验证、取消与终止;当前基线为 103 个离线测试。
掌握标准
- 能解释 environment state、observation、runtime state 与 context 的差别。
- 能为动作写出 schema、作用域、前置条件、风险、幂等和证据字段。
- 能说明 locator 唯一性、可见、稳定、接收事件和 enabled 为何属于 runtime 检查。
- 能为桌面任务固定 VM、应用、账号、locale、窗口和数据初态。
- 能为编码任务固定 base commit、依赖、测试与网络策略。
- 能把高风险写操作绑定到短期、精确作用域的批准。
- 能处理“副作用已发生、checkpoint 未落盘”的 crash window。
- 能同时检查初态、终态、轨迹、副作用、成本和延迟。
- 能运行 103 个测试并解释至少 5 个负向用例。
- 能指出何时应退回固定 workflow 或人工操作。
主要参考资料
| 主题 | 一手来源 | 本课程使用方式 |
|---|---|---|
| 真实 Web 环境与功能正确性 | Zhou 等,WebArena;官方代码库 | 初态、真实站点、功能终态评测 |
| 真实计算机环境与执行式评测 | Xie 等,OSWorld;官方代码库 | 机器初态、跨应用状态与执行式 verifier |
| 真实仓库 issue-to-patch | Jimenez 等,SWE-bench(ICLR 2024);官方代码库 | base commit、补丁、FAIL_TO_PASS 与 PASS_TO_PASS |
| locator 与动作前置条件 | Playwright:Auto-waiting / actionability | 唯一、可见、稳定、接收事件、enabled 等检查 |
| 环境隔离与稳健 locator | Playwright:Best Practices | 隔离、用户可见行为、语义 locator、web-first assertion |
| Agent 工具与人工控制 | OWASP AI Agent Security Cheat Sheet | 最小权限、外部数据不可信、敏感动作独立授权、对抗测试 |
| 组织级风险治理 | NIST AI RMF 与 Generative AI Profile | 风险、测量、人工监督和发布证据不等于单次 benchmark 分数 |
课程边界
本课程不教授某个浏览器 SDK、桌面产品或 coding-agent CLI 的操作步骤;这些 API 易变且不代表控制面。也不把单个 benchmark 分数当生产能力:真实部署还要验证身份、数据、组织流程、并发、合规、可维护性和事故恢复。