For AI agents: the complete documentation index is available at https://a3s-lab.github.io/Test/v0.16.2/llms.txt, the full documentation bundle is available at https://a3s-lab.github.io/Test/v0.16.2/llms-full.txt, and this page is available as Markdown at https://a3s-lab.github.io/Test/v0.16.2/concepts/architecture.md.
历史版本

本页记录 v0.16.2。请切换到当前版本查看最新指引。

架构与权限边界

A3S Test 把一次测试拆成四件可以单独核验的事。界面提供事实,规划方选择动作,执行核心决定动作是否允许,证据记录最后发生了什么。模型可以提出定位或设计建议,只有明确授权才能把建议送进修复流程。

两个规划入口,一个执行核心

调用方编码 Agent                    关闭式 ACL 套件
  观察 → 决策 → 一个动作              准入 → 执行 → 断言
             \                       /
              类型化 A3S Test Core
       Action · Session · Policy · Lifecycle
                         |
              Web · GUI · TUI 驱动适配器
                         |
          事件 · 证据 · JSON 结果 · 自有清理

Core 不依赖浏览器、桌面感知、终端模拟、CLI 或具体 LLM provider。它只定义类型化动作、观察、会话、策略、结果和生命周期。具体实现由注入的适配器拥有。

页面理解发生在渲染之后

浏览器原生可访问树是重要事实,但不足以表达组件归属、源码提示、多坐标空间几何、视觉视口、受控业务事实和人工修复状态。嵌入式 Test Kit 在页面渲染后补充这些信息,并通过单调修订号发布有界 Page Context。

页面上下文不篡改宿主 DOM,也不取代浏览器观察。A3S Test 在同一观察中核对驱动语义与 Test Kit 修订,避免把两个不同时刻的状态拼接在一起。

四层权限

  1. 确定性事实:驱动观察、Test Kit 上下文、文件摘要、本地断言和证据。
  2. 模型建议:视觉定位、设计审计和源到契约候选,均带来源、预算和置信度。
  3. 人工授权:目标确认、候选选择、冲突决定、单项或批量修复提交。
  4. 修复执行:拥有会话与工作区的编码 Agent 修改源码,A3S Test 在新浏览器里验证。

模型输出不能决定测试 verdict,不能声称浏览器已经观察到某状态,也不能直接授权工作区修改。Overlay 展示报告不会改变 runner 结果。

运行时所有权

每个被启动的程序属于 A3S Test 创建的进程组、Windows Job 或等价的自有进程树。取消与超时必须终止并回收完整树,优雅关闭有明确上限,并保留紧急清理路径。A3S Test 不关闭开发者已有的浏览器会话。

Web 会话使用隔离命名空间和非零空闲超时。证据路径必须解析为会话 artifact 根目录中的新常规文件。GUI 和 TUI 适配器承担同样的精确所有权要求。

界面适配器

界面当前边界
WebA3S Browser 或兼容 standalone browser。支持持久 Agent 会话、ACL、语义引用、证据与隔离网络策略。
GUImacOS 上通过锁定 A3S CUA 0.10.0 契约测试。发布流程在真实 arm64 主机验证权限、两种感知 profile 和精确清理。
TUI原生 PTY / ConPTY、受限 VT 语义窗口和自有命令进程树。当前通过 ACL 套件驱动。

部署方 provider

Provider 协议只定义数据交换,不捆绑模型权重,也不在公共 API 中用字符串选择后端。部署方通过类型化对象注入实现,并负责模型许可、隐私、容量和运行环境。

HTTP adapter 禁止重定向与环境代理,除明确 loopback HTTP 外要求 HTTPS,限制请求与响应体,绑定传输和 wire deadline,并从错误中脱敏授权值。服务层仍独立复核身份、来源、几何、用量和权限。