Skip to content

v0.8.11-alpha — human_browser_open 幂等复用

Pre-release
Pre-release

Choose a tag to compare

@qin-jiangli qin-jiangli released this 04 Jul 15:11
84e4c9b

human_browser_open 幂等复用(AgentHub #100 轮31)

真机实证:操作员 agent 把 human_browser_open 当"翻页/刷新"反复调(一个任务 17 次),原实现每次无条件重启 Chrome + 重跑 CDP 装扩展 → 慢(每次冷启动数秒)+ 破坏(有时把已登录的公众号后台页顶成新标签/Google 首页,agent 落错页 churn)。光靠 skill 文案劝不住模型的重开习惯,故在工具层做成幂等

变更

  • 探测两路:① 盘扫 <udd>/DevToolsActivePort + /json/version 探活的 CDP 端点(human_dom 专用 profile 带临时 debug 端口,随 Chrome 存活,跨 server 重启也可探到);② 进程内启动注册表(覆盖无 debug 端口的非 human_dom 专用 profile)。陈旧 DevToolsActivePort(上次崩溃死端口)→ 正确判冷。
  • 热路径(复用):不重 spawn、不重装扩展、不重 auto-bake、不新开标签;返回 reused:true + reuse_via。传 url 只在恰好 1 个标签才在当前页内导航(多标签无法可靠判前台页 → 一律不动,绝不盲选 page[0] 顶掉登录页);同源即视为已在目标站不重载(保护登录态/编辑器);仅 focus/最大化(非破坏)。
  • 并发安全:「探测 → (冷)spawn → 登记」收进 per-key 锁,同一 profile 并发 open 只冷启动一次;慢的 CDP 装扩展留在锁外。
  • 不变:冷路径(首开)spawn + 装扩展,reused:false;默认日常 Chrome(无 profile)恒 reused:falseplatforms/common → win/mac 同一语义共享。

验收

  • 合成:连开 3 次 → 冷启动 1 次 + 复用 2 次(无新进程/无新标签/无 loadUnpacked 重跑)✅
  • 新增 23 条单测;platforms/common 全量 272 passed;blueprint-check 全绿;自走 code-reviewer 两轮(多标签盲选 + TOCTOU 竞态已修并复验通过)。

PR #74 · squash 84e4c9b