Skip to content

PLAN-FNOS-018 Midscene 桥接使用说明准确性修正 ​

字段内容
计划编号PLAN-FNOS-018
计划日期2026-10-18
对应需求FNOS-018 Midscene 桥接使用说明准确性修正
本轮功能FNOS-018-01 至 FNOS-018-04
计划状态已完成

计划目标 ​

让 dsh-midscene 技能与 BRIDGE_PRELUDE 中每段示例代码都能按原样跑通,并写明 Bridge 模式的能力边界,使 agent 一次选对路径。

当前实现与目标设计 ​

领域当前表述目标表述依据
静默连接setActiveTabId(Number.parseInt(...), { activate: false })先 setActiveTabId(数字 id) 选中标签页,再 connectCurrentTab({ activateTab: false }) 连接setActiveTabId 只收一个参数;activateTab 属 BridgeConnectTabOptions
标签页 id 类型「id 必须传数字」保留,并补上「传字符串会触发 tabs.update 签名错」的原因实测报错原文
验证静默效果无用 getBrowserTabList() 的 currentActiveTab 字段自证实测标签页结构含该字段
Bridge 取证能力未提及明确「不支持 evaluate(返回值恒为 undefined 且不报错)」,给出三条替代路径类型声明无 evaluate + 实测
.env 加载只说「存成运行目录的 .env」区分 CLI(自动加载当前目录)与 SDK(需注入进程环境,附示例)实测 aiModel 报 MIDSCENE_MODEL_NAME is required
桥接口字段port / fixedModelName / family;env 四行保留(与实测一致)对运行中桥的响应核对

修改面 ​

只改两个文件:

  1. plugins/dsh-midscene-plugin/skills/dsh-midscene/SKILL.md(插件自有技能,非上游)
  2. plugins/dsh-midscene-plugin/src/host/skills.ts 的 BRIDGE_PRELUDE(注入到全部技能的引用块)

官方 7 个技能文件不动——SOURCE.md 已约定它们与上游逐字节一致,环境约束一律通过 PRELUDE 注入。

影响范围分析 ​

需求功能代码模块配置/数据测试文档目标环境
FNOS-018-01skills.ts 的 PRELUDE、SKILL.md 第二步无PRELUDE 内容断言技能本身即文档本地 + 真实 Chrome
FNOS-018-02同上(新增边界说明)无同上同上本地
FNOS-018-03同上(区分两种加载)无同上同上本地
FNOS-018-04不改(已正确)无既有桥接口用例—本地

不涉及:桥接服务实现、上游技能文件、compatibility.json 与依赖、模型路由。

分阶段任务 ​

阶段一:修正与本地验证 ​

任务 ID对应需求/验收修改内容前置条件验证方式
PLAN-FNOS-018-T01-01FNOS-018-01 / AC-01~AC-03改写 PRELUDE 与 SKILL.md 的静默连接示例:拆成 setActiveTabId(数字) + connectCurrentTab({ activateTab: false });补 id 类型原因;补 currentActiveTab 自证方法无示例原样执行不抛错;连接后前台标签页不变
PLAN-FNOS-018-T01-02FNOS-018-02 / AC-01、AC-02写明 Bridge 模式不支持 evaluate 及其表现(返回 undefined、不报错),给出三条替代取证路径无按说明选取证路径可得到结果
PLAN-FNOS-018-T01-03FNOS-018-03 / AC-01、AC-02区分 CLI 与 SDK 的 .env 加载;SDK 示例给出进程环境注入写法无SDK 示例可让 aiQuery 正常返回
PLAN-FNOS-018-T01-04FNOS-018-04 / AC-01核对桥接口描述无需改动;补一条断言用例防止将来漂移无单测通过

依赖、风险和决策 ​

已决定事项 ​

  1. 只改插件自有技能与 PRELUDE:上游技能逐字节一致是既有约定,破坏它会让后续同步成本上升。
  2. 不新增桥的能力:evaluate 缺失是上游 SDK 的限制,插件不越界补一个自研 RPC。
  3. 保留「id 必须传数字」:这是实测证实的正确结论,与本次要修的错误写法不是一回事。
  4. PRELUDE 与 SKILL.md 同步改:PRELUDE 会注入到全部 8 个技能,只改 SKILL.md 会导致其它技能里仍是旧写法。

风险 ​

风险影响缓解
上游 SDK 后续版本改了选项名说明再次过期说明中标注所依据的 SDK 版本(v1.16.0 CLI / v1.15.0 浏览器侧)
只改 PRELUDE 漏改 SKILL.md(或反之)两处说法不一致T01-01 明确要求两处同步;用例断言两处都含新写法
把「静默」写成绝对保证用户以为任何路径都静默说明区分 SDK 路径(可静默)与 CLI 路径(必然激活)

回退方案 ​

文档回退:还原两个文件的文本即可,无运行时影响、无数据变更。

测试、打包、发布和回滚 ​

  • 本地:PRELUDE 与 SKILL.md 内容断言(含新写法、含边界说明、保留正确结论);插件 check。
  • 实测:在真实 Chrome 上按说明执行一遍静默连接与一次视觉查询。
  • 发布:插件补丁版本发布,skills/ 随包分发(files 已含)。
  • 回滚:见上节。

参考资料 ​

  • 技能来源与注入机制:plugins/dsh-midscene-plugin/skills/SOURCE.md
  • 注入实现:plugins/dsh-midscene-plugin/src/host/skills.ts
  • 桥接服务:plugins/dsh-midscene-plugin/src/host/bridge-server.ts
  • 上游类型声明(判定依据):@midscene/web 的 bridge-mode/agent-cli-side.d.ts、bridge-mode/common.d.ts

完成状态 ​

阶段任务状态
一:修正与本地验证T01-01~T01-04已完成

变更记录 ​

日期变更说明
2026-10-18初始登记建立 PLAN-FNOS-018,单阶段 4 个任务。修改面锁定为插件自有技能与 BRIDGE_PRELUDE 两个文件,上游 7 个技能不动。已写明四项决策与「两处必须同步改」的风险。

基于 VitePress 构建