环境型 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、downloadsession、tab、storage、站点后端页面断言 + 后端业务状态 + receipt
桌面屏幕、可访问性树、窗口/焦点、文件元数据focus、click、type、launch、file opOS、应用、文件系统、剪贴板执行式终态检查 + 副作用清单
编码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-patchJimenez 等,SWE-bench(ICLR 2024);官方代码库base commit、补丁、FAIL_TO_PASS 与 PASS_TO_PASS
locator 与动作前置条件Playwright:Auto-waiting / actionability唯一、可见、稳定、接收事件、enabled 等检查
环境隔离与稳健 locatorPlaywright: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 分数当生产能力:真实部署还要验证身份、数据、组织流程、并发、合规、可维护性和事故恢复。