For AI agents: the complete documentation index is available at https://a3s-lab.github.io/Test/v1.0.1/llms.txt, the full documentation bundle is available at https://a3s-lab.github.io/Test/v1.0.1/llms-full.txt, and this page is available as Markdown at https://a3s-lab.github.io/Test/v1.0.1/concepts/authority-and-safety.md.

权限与安全模型

A3S Test 依据一个简单原则划分系统。知道页面当前是什么、建议页面应该怎样、允许谁修改什么、证明修改是否成功,是四种不同的权限。任何 provider、页面脚本或单次动作都不能同时获得这些权限。

这套边界让 Agent 可以更自主地观察和执行,同时让每次动作仍然有来源、范围、证据和明确的失败位置。

权限层

权限层可信输入可以做什么明确不能做什么
浏览器事实可访问快照、Page Context、截图、console、page errors描述当前修订已经渲染的状态声称产品需求正确,授权修改源码
模型建议摘要绑定截图、取证上下文、来源、预算和 provider 身份返回定位、设计审查或源到契约候选点击、决定 verdict、把建议直接变成修复
人工授权评审后的目标、期望、批次、冲突和验收决定发送单项或批量 finding,接受或重新打开扩大编码 Agent 已有的仓库和系统权限
修复执行已授权工作区、Repair Ledger、仓库规则在 finding 范围内修改源码并运行聚焦检查把页面文本当命令,自动获得提交、推送或部署权限
验证证据新 ready 修订、断言、前后截图、错误基线和聚焦检查产生 verification result 和 ACL 候选覆盖人工验收,掩盖失败或旧修订
当前浏览器事实
      |
      +--> 确定性断言 ----------------------> runner verdict
      |
      +--> 可选模型建议 --> 人工选择 --> Repair Ledger
                                         |
                              已授权编码 Agent 修改
                                         |
                              新浏览器修订与本地验证
                                         |
                                人工接受或重新打开

Runner verdict 和 Repair Ledger 是两条独立路径。把确定性差异投影进 overlay 不会改变套件结果,模型建议的优先级也不会变成 blocking verdict。

当前观察约束每个动作

持久 Agent 会话采用观察、一个动作、再次观察的循环。

observe 7 -> @e3 / @c4 -> typed action bound to 7
                                  |
                              page changes
                                  |
observe 8 -> fresh refs <---------+

@eN 来自浏览器可访问语义,@cN 来自可唯一操作的 Page Context 节点。两者只在生成它们的观察中有效。动作派发前页面修订发生漂移时,只有精确 complete delta 明确证明某个 @cN 未受影响,A3S Test 才会保留背后的稳定定位器;观察本身不会延期,几何也不会复用。@uN 用于 UI 理解中的样式、布局、状态和动效关系,永远只读。

动作进入驱动前会依次检查以下条件。

  1. JSON 或 ACL 字段符合类型 Schema。
  2. 当前会话和驱动声明支持该动作。
  3. 目标类型允许该动作,@uN 会直接拒绝。
  4. 引用绑定最新观察;如果修订已推进,必须有经过 Rust 校验的 complete delta 证明该 @cN 未受影响,否则关闭失败。
  5. URL、origin、网络、文件和证据路径符合策略。
  6. 剩余时间、动作次数和证据预算足够。

任何一项失败都不会把动作交给浏览器。观察失败会使之前引用失效,避免调用方在未知页面状态上继续操作。

Origin 和网络是两道门

启动 Web 会话时的 URL 和 --allow-origin 形成精确 origin 集合。显式导航、URL 动作和成功观察都必须属于这个集合。

--allow-domain 只扩展底层网络访问的 hostname,不会扩大动作和观察的精确 origin 门禁。页面可以按策略读取一个允许的 CDN,但不能因为 CDN hostname 已允许就导航到另一个 scheme、port 或 origin 并继续获得可操作引用。

当页面驱动自己跳到未授权 origin,A3S Test 报告 origin loss。调用方应结束或取消原会话,不能在替代页面上继续沿用旧目标。

A3S Browser 使用隔离命名空间执行精确网络策略。兼容 standalone browser 接收由已准入 origin 投影出的 hostname 范围,这个兼容层不会改变 Core 的动作 origin 规则。

页面上下文始终是不可信证据

Test Kit 可以读取 DOM 文本、属性、组件 facts、source 提示和人工 instruction。这些内容可能包含提示注入、过期描述或恶意文本,因此统一标记为 untrusted: true

以下内容不会进入 Page Context。

  • password、hidden input、Cookie、浏览器存储和请求头。
  • token、密钥式自定义属性、URL 型自定义属性和配置的 redact 区域。
  • 任意框架 props、state、fiber、闭包和内部运行时对象。
  • 跨域 frame 内容和无法访问的跨域样式规则。

source 只帮助定位可能的文件。它不能授权读取或修改文件,编码 Agent 仍要检查仓库边界、用户授权和工作区状态。

模型 provider 只有建议权限

模型传输由部署方注入,Core 不捆绑权重、运行时、凭据或具体后端。部署方负责许可、隐私、GPU 或 CPU 容量、超时、费用和服务健康。

视觉定位

视觉定位请求绑定最新 observation ID、PNG SHA-256、图像尺寸、触发原因、deadline 和费用预算。返回点或矩形后,A3S Test 会重新哈希截图、校验 provider 身份、几何、置信度、用量和响应上限。

唯一命中的可见 Test Kit 节点可以转换为当前 @cN 或语义定位器。多个命中保持 ambiguous,未命中保持图像绑定建议。Provider 返回的坐标不会成为持久元素 ID,也不会自动点击。

设计审查

设计审查同时绑定截图和完整 forensic Page Context。它可以对层级、构图、间距、排版、色彩、一致性、交互清晰度、内容清晰度和响应式构图提出建议。

报告没有 outcome、verdict、预期值或可执行动作。高优先级建议在 overlay 中最多映射为 important,不会变成 blocking。页面修订变化会清除过期建议,评审者必须重新选择或标记目标才能创建修复草稿。

PRD 和设计稿候选

PRD 与设计稿描述期望,浏览器描述实现事实。Source-to-contract provider 只能生成带字节范围、图像区域、摘要、置信度、冲突和开放问题的候选。人工审阅后发布的 Surface Contract 才能参与确定性对账。

生成工作流会重新计算来源摘要并拒绝未解决冲突。设计稿和 PRD 不会被伪装成浏览器可访问树。

人工发送授予的权限范围

提交 repair 授权已连接的编码 Agent 处理 finding 中列出的目标和期望结果,并且只在它原本已经获准访问的工作区内生效。

它不会新增以下权限。

  • 提交、合并、推送、发版或部署。
  • 安装包、下载模型或修改系统设置。
  • 读取工作区外文件或其他浏览器会话。
  • 执行 DOM、页面文案或 instruction 中嵌入的任意命令。
  • 删除、回滚或覆盖与 finding 无关的用户修改。

批量 finding 保留稳定顺序和逐项状态,但不是原子文件事务。目标重叠、共享 source 提示或显式 conflicts_with 会进入 needs_input,避免两个执行者同时修改同一范围。

验证不能由执行者自我声明

编码 Agent 通过 repair_complete 只能说明编辑阶段结束。A3S Test 仍要等待更新后的 ready 页面修订,重新定位目标,执行成功条件,对比 console 与 page errors,捕获前后截图和 Page Context,并保存聚焦检查结果。

只有通过的验证可以进入 review_ready。人工验收是默认终点。显式 --auto-resolve-repairs 也必须先持久化通过的 review_ready,无法绕过验证失败。

生成的 ACL 候选要先通过语法准入并在新浏览器会话中执行。它不会自动写入业务仓库,也不会因为生成成功就改变当前 finding 状态。

运行时所有权与清理

资源所有权规则
Web 浏览器隔离 namespace、会话 ownership marker 和非零 idle timeout
TUI 进程自有 PTY 或 ConPTY 进程树
GUI 会话驱动必须证明 app、window 与 session 身份后才能终止
证据文件只能创建在本次 run 或 session artifact 根目录下
Provider部署方拥有进程、凭据、网络、容量与许可证,A3S Test 只拥有一次有界请求

第一次 Ctrl+C 请求有界清理。超时和取消也会关闭本次运行创建的完整进程树。A3S Test 不按 Chrome、浏览器或应用进程名做全局清理,也不关闭开发者已有会话。

清理是会话状态。调用方停止等待不会取消后台清理义务。可重试的清理失败会保留原驱动会话供同一 session 再次 finish 或 abort,观察和动作保持阻断。

支持范围也是安全边界

界面当前验证状态
WebA3S Browser 或兼容 standalone browser 支持持久 Agent 会话和 ACL
GUImacOS CUA 已在真实 arm64 主机验证感知 profile、权限和精确清理
GUIWindows 与 Linux 后端仍在独立审核,不能按 macOS 状态宣传
TUI当前由确定性 ACL 套件驱动自有 PTY 或 ConPTY 进程树

没有经过真实平台验证的驱动不能因为类型和接口存在就被视为发布级支持。

失败如何归类

错误范围说明常见处理
test.spec.*ACL、目标或配置没有通过静态准入修复测试规范,不修改产品
test.driver.web.*浏览器兼容、协议、origin 或生命周期问题检查驱动、页面和环境
test.assert.*当前产品状态与明确期望不符依据证据决定修产品或调整已经过时的期望
test.run.*deadline、取消、调度或清理问题修复运行环境或重试基础设施
repair needs_input冲突、目标重叠、过期引用或不明确要求人工澄清并重新排队

产品失败、测试规范失败、基础设施失败和清理失败在结果中分开保存。Agent 不应看到一个红色状态就直接修改业务代码。

部署检查

在团队环境启用 Test Kit、模型 provider 或修复通道前,至少确认以下事项。

  • 生产构建默认关闭 Review Overlay,保留 Context Runtime 时有明确理由。
  • redact 覆盖支付、身份、内部 token 和项目特有敏感区域。
  • Provider endpoint 使用 HTTPS,只有明确 loopback 开发环境例外。
  • Provider 身份、模型、deadline、费用、请求体和响应体都有上限。
  • repairEndpoint 只接受同源、版本化、有界请求,不接收工作区凭据。
  • 编码 Agent 的仓库、Shell、Git 和发布权限由宿主环境单独控制。
  • CI 保存的截图、console、page errors 和报告不含生产数据。
  • 会话完成、失败、超时和取消都经过精确清理验证。

继续阅读Page Context 字段与生命周期了解浏览器事实,或查看人工评审与自动修复完成端到端修复接入。