119 lines
10 KiB
Markdown
119 lines
10 KiB
Markdown
# ARTEMIS 2.0.0:插件与跨端测试
|
||
|
||
状态:核心插件链路、首发 Windows 插件适配已实现;Flash/Pro 纯电脑任务和基础浏览器表单实测通过,跨端与长期稳定性验收仍在进行,不是正式发行。
|
||
|
||
开发分支:`codex/v2.0.0-plugins`,从 1.5.2 主线建立。版本号为 2.0.0,发布前不创建正式版本标签。1.5.x 的 BUG 修复继续在主线进行,后续正常合并进开发分支。
|
||
|
||
插件市场仓库:<https://git.playones.com/chenmingxuan/Artemis-Plugins>
|
||
|
||
## 产品目标
|
||
|
||
用户在 ARTEMIS 网页输入一个任务,由 ARTEMIS 自身完成电脑、Web 控制台和 Android 的组合测试,生成统一证据和验收结论。外部 AI 仍通过现有 MCP 发起任务、指导任务并查询报告。
|
||
|
||
首版运行环境为本机 Windows。Flash、Pro 共用插件能力,纯电脑任务不要求连接 Android;架构保留远程执行和其他平台的扩展位置。
|
||
|
||
首发仅提供一个电脑控制插件,适配 [open-codex-computer-use](https://github.com/iFurySt/open-codex-computer-use)。浏览器通过该插件的窗口观察、点击和输入能力操作;首版不增加独立浏览器插件。终端、SSH、专用 API 等能力通过后续插件扩展。
|
||
|
||
## 插件市场和安装
|
||
|
||
- 市场以独立 Git 仓库维护索引、说明、来源和验证记录,发行附件分发插件安装包。
|
||
- 用户从 ARTEMIS 的插件页面安装、配置、检查、启用、升级及卸载插件,显示下载、安装和失败状态。
|
||
- 完整插件包包含清单、Skill、MCP 启动信息、配置表单定义及必要资源或依赖说明;允许纯 Skill 类型。
|
||
- 安装时使用最新已验证且兼容的版本。依赖进入插件专用目录,校验下载文件;安装失败保留原可用版本。
|
||
- 已安装插件提示更新,用户点击升级。任务固定使用启动时的版本,插件空闲时完成升级。
|
||
- 高级入口允许本地插件和自定义 MCP 接入,标明来源,用户手动启用。
|
||
- 验证记录注明 ARTEMIS、插件、系统版本及覆盖场景。尚未完成验证的插件不进入可安装市场索引。
|
||
|
||
## 配置、授权与 Skill
|
||
|
||
- 同一插件支持多套命名连接配置,例如不同路由器或控制台,允许设置默认项。
|
||
- 任务界面和 JSON 可以覆盖连接配置与可用插件;凭据保存在本机,任务参数和普通报告仅引用配置名称。
|
||
- 用户启用插件时授权其控制范围,范围内自动执行;超出范围等待用户指导。
|
||
- 执行层校验可调用工具及可识别的目标参数。第三方进程的系统权限必须如实说明,工具参数检查不能宣称等同于操作系统沙箱。
|
||
- AI 从已启用且配置就绪的插件中按需选择,按需加载工具、Skill 及其引用资源。
|
||
- 复用第三方 Skill 时适配工具名称和运行环境。依赖宿主专用 API 的 Skill 需要对应适配,不能仅复制文件就宣称可用。
|
||
|
||
## 任务执行和共享资源
|
||
|
||
- 复用后台配置、任务队列、批次、历史和报告存储,不另建调度器。
|
||
- 执行上下文从单个 Android 设备扩展为资源集合,按资源路由动作和观察结果。
|
||
- 同一桌面或同一路由器上的用例整条串行;独立资源上的任务可并行。仅操作手机的任务不占用桌面资源。
|
||
- 多资源获取应避免相互等待;资源身份需要跨插件一致,不能因为通过不同插件访问同一路由器而绕开互斥。
|
||
- 暂停先停止派发并确认正在执行的动作停止,再释放资源。恢复重新排队、观察和核对环境,不沿用过期截图或状态假设。
|
||
- 网页显示正在控制的资源并提供暂停和指导入口;跨端任务沿用现有用户指导语义。
|
||
- 工具结果区分成功、失败和结果不确定;保留文本、图像、结构化结果和错误,不因 MCP 调用返回就自动认定业务成功。
|
||
- 插件启动、连接、操作和恢复受明确超时及任务总预算约束;不得产生无界重试。
|
||
- 结果不明的点击或配置修改先核对状态再决定是否重试,业务用例不因模型或插件重试而重新提交。
|
||
- 恢复无效时结束当前用例、记录插件与工具的失败原因,后续用例遵循批次的失败即停止设置。
|
||
|
||
## 环境恢复和报告
|
||
|
||
- 环境恢复由任务提示词或配置决定,不统一强制回滚。
|
||
- 具备读取能力时记录配置修改前后的值;要求恢复时将恢复纳入结束阶段并验证,失败单独展示并标记受影响资源。
|
||
- 手机、电脑和浏览器操作进入同一时间线,记录资源、插件版本、耗时、动作结果及证据来源。
|
||
- 首版电脑证据以步骤截图和工具结果为主。保留 Android 录屏,插件接口允许返回视频附件,电脑持续录屏后续扩展。
|
||
- 执行完成与测试通过继续分开。缺少验收证据时记录未验证或阻塞,保留已有明确结论,人工复验沿用现有优先级。
|
||
- 网页、Word、Excel、单任务资料包和批次资料包提供一致的跨端结果与证据。
|
||
- 对外 MCP、参数文档和随源码分发的自动化 Skill 同步新任务配置及能力查询。
|
||
|
||
## 已核实的接入基础
|
||
|
||
现有代码具有 Actuator 能力描述、内部 MCP ActionSession、统一队列和 DataEngine。外部 MCP 连接、内部 Skill 动态加载及跨资源上下文仍需新增。
|
||
|
||
Flash 的扩展调用需要完整处理 MCP 错误及多种输出;Pro 的发现、工具绑定和动作分派需要连通,不能仅向模型声明工具名称。
|
||
|
||
电脑控制项目已有 Windows 实现。前期静态检查发现截图采用屏幕区域截取,窗口定位和元素索引具有会话状态;应通过固定版本实测遮挡、DPI、多窗口、连续操作、超时和退出清理,再确定市场发布包。这里不代表已通过运行验证。
|
||
|
||
## 交付顺序和验收
|
||
|
||
### 0. 开发基线
|
||
|
||
- [x] 独立开发分支,版本统一为 2.0.0。
|
||
- [x] 保存确认过的设计和市场仓库地址。
|
||
- [x] 形成可运行的插件功能;版本标记不代表功能已经完成。
|
||
|
||
### 1. 通用插件基础
|
||
|
||
- [x] 明确清单和市场索引契约,并实现版本兼容与参数校验。
|
||
- [x] 支持本地 stdio / 远程 MCP 连接、自定义接入、会话生命周期及有界取消。
|
||
- [x] 支持 Skill 按需加载、命名配置、凭据引用和授权范围检查。
|
||
- [x] Flash / Pro 共用工具分派,完整保存错误与图像等结果。
|
||
|
||
### 2. 插件页面和市场
|
||
|
||
- [x] 市场查询、安装进度、配置、启停、诊断、更新和卸载。
|
||
- [x] 下载完整性检查、失败恢复、任务版本固定与升级互斥。
|
||
- [ ] 仅发布实际验证过的插件版本与验证记录。
|
||
|
||
### 3. 跨端执行
|
||
|
||
- [x] 适配首发电脑控制插件,支持纯电脑和混合任务入口。
|
||
- [x] 多资源互斥、暂停恢复、指导、超时及共享环境变更处理。
|
||
- [ ] 跨端证据、验收、人工复验和各类导出保持一致。
|
||
- [x] 同步 HTTP、工作区 MCP 和自动化 Skill。
|
||
|
||
### 4. 验收
|
||
|
||
- [x] 确定性测试覆盖连接失败、结果不确定、超时、取消、升级及资源互斥。
|
||
- [ ] Windows 实测窗口遮挡、多窗口、DPI、输入、观察和浏览器控制台操作。
|
||
- [x] 实际跑通电脑修改参数、手机验证、按要求恢复及完整证据导出。
|
||
- [ ] 验证 Flash / Pro、纯电脑任务、批量执行、暂停恢复和人工指导。
|
||
- [ ] 执行仓库质量检查、前端交互检查,并完成真实安装包验证后发布。
|
||
|
||
### 本轮验证记录(2026-10-14)
|
||
|
||
- 确定性测试覆盖 stdio、Streamable HTTP、任务固定版本、取消/超时资源保护、图片来源与共享证据清理;网页测试与构建通过。
|
||
- 首发包增加窗口自身截图与子控件消息路由,修复实际发现的遮挡画面污染和按钮收不到点击问题。两个临时窗口验证了遮挡下截图来源与实际点击效果。
|
||
- 隔离 Chrome 窗口通过 MCP 修改本地表单参数、提交一次并读回确认。
|
||
- 使用已配置的 `gpt-6-luna / high` 跑同一个中文输入与结果确认任务:Flash 57 秒、Pro 112 秒,真实控件值和最终通过结果一致。只代表这两个基础样本。
|
||
- 真实 Pro 记录成功生成 Word、Excel 与含插件来源命名的截图列表。修复了接口清洗导致来源字段丢失的问题。
|
||
- 队列回归复现并修复两处资源遗漏:活动任务元数据丢失插件资源,以及取消后遗留版本占用。运行任务仍等进程退出才释放占用,避免提前允许升级。
|
||
- 真实 stdio MCP 的确定性用例验证暂停关闭连接、释放共享资源,恢复等待另一任务完成,再新建连接重新观察;该验证不代替真实模型的批次和指导组合验收。
|
||
- 真实 Flash 跨端任务使用选定的 Android 17 模拟器和隔离 Chrome:电脑修改参数、手机刷新验证、电脑恢复、手机再次验证,最终用例通过,耗时约 119 秒;后台仅收到改值与恢复两次提交。Word/Excel 导出包含 11 步、8 条插件操作、23 项截图引用,手机和插件图片分别保留。
|
||
- 同一跨端场景实际验证暂停后设备与桌面锁释放、恢复等待另一资源占用者退出;指导已被执行端领取并记录在下一步,未重复提交已完成的修改。该次操作完成但终检发现手机文字层级陈旧,保留为未验证,未把后续修复结果覆盖旧记录。
|
||
- 联调修复 Flash 跨端切换时将电脑图像带入手机观察的问题。插件图片保留在带来源的工具结果和步骤记录内,切回手机时重新获取手机截图与元素。
|
||
- 插件截图在首次入库时同时保存本次观察文字,回归确认后续动作不会将新文字补写到前一步图片上。
|
||
- 联调还复现 Android 辅助服务缓存旧网页文字。辅助 APK 1.2.1 在 Android 13+ 每次观察前清理节点缓存,修复后同一模型任务终检通过;另有不调用模型的动态网页回归,同时验证文字与像素从初始值更新并恢复。Android 12 及更早版本不使用此 API,仍需单独验收。
|
||
- 最终默认 Python 测试 2451 通过、2 跳过、8 未选中;Ruff 格式/静态检查、质量基线、核心 Pyright 均通过。前端 187 项测试与生产构建通过,真实 Android 动态网页回归通过。历史检索测试改用同步存储以消除测试自身的线程等待竞争,断言保持不变。
|
||
- 复杂浏览器控制台、多 DPI、多显示器、长程运行、真实批次组合及混合 Pro 模式还需要验收。插件市场不提前发布未完成验收的安装包。
|