k-skill 浏览器运行时详解:BrowserOS、Aside、Chrome CDP 降级顺序
2026/8/30 10:04:11 网站建设 项目流程

k-skill 浏览器运行时详解:BrowserOS、Aside、Chrome CDP 降级顺序

【免费下载链接】k-skill한국인을 위한 스킬 모음집 - 에이전트를 한국인으로项目地址: https://gitcode.com/GitHub_Trending/ks/k-skill

k-skill 是"为韩国人打造的 AI 技能合集",其中许多技能(法院拍卖公告查询、电子诉讼支付令、预备军训练信息等)需要真正的浏览器会话才能工作。负责这件事的核心组件就是k-skill 浏览器运行时(k-skill-browser-runtime):它按BrowserOS → Aside → Chrome CDP的降级顺序自动挑选可用的浏览器通道,并内置 CAPTCHA、支付、电子签名等"停止规则",让 AI 代理在需要人工接管时安全停下,而不是硬闯。

什么是 k-skill 浏览器运行时?

在 k-skill 中,浏览器自动化被集中收敛到一个 Node.js 适配器包里:packages/k-skill-browser-runtime/。

它的设计原则很清晰:

  • 只做连接与生命周期管理:探测端点、连接 CDP 会话、断开时只关闭自动化创建的标签页,绝不关闭用户已有的页面;
  • 不做站点逻辑:具体的导航、选择器、解析规则留在各个技能自己的 SKILL.md 和代码里;
  • HTTP 优先:如果数据能通过公开 HTTP/RSS/sitemap 直接拿到,就不动用浏览器——浏览器只留给"需要登录会话"或"依赖 JS 渲染"的场景。

官方文档入口在 docs/browser-runtime.md,API 与停止规则详情见 packages/k-skill-browser-runtime/README.md。

降级顺序:auto 模式如何挑选浏览器?

默认 provider 是auto,运行时会按平台顺序逐个探测,直到成功为止。源码在 packages/k-skill-browser-runtime/src/provider.js:

平台降级顺序
macOS(darwin)Aside Browser → BrowserOS CDP → Chrome/Chromium CDP
其他平台(Linux/Windows 等)BrowserOS CDP → Aside Browser → Chrome/Chromium CDP

探测逻辑是"健康检查 + 连接"两段式(见 provider.js):

  1. 对 CDP 端点发起<cdpUrl>/json/version探测,确认服务存活;
  2. 对 Aside 执行一次安全的aside repl探测,只列出标签页、不打开任何页面;
  3. 第一个探测通过的 provider 被选中;全部失败则抛出类型化错误UNAVAILABLE,并在cause中附带最后一个失败原因,方便排障。

💡 如果你在 macOS 上装好了 Aside,它就会比 BrowserOS 更优先被使用;而其他平台则以 BrowserOS 为首选。

三大 Provider 分别怎么工作?

1. BrowserOS:只附着,不启动

browserosprovider 连接的是用户自己手动启动的 BrowserOS GUI 会话,默认端点为http://127.0.0.1:9100。运行时明确承诺两件事:绝不替用户启动 BrowserOS,绝不传递 headless 参数。它也不是 CAPTCHA 破解器、登录求解器或隐身爬取浏览器——这是一个"可被人看见、可随时接管"的会话浏览器。

2. Aside:只用官方 CLI REPL 表面

asideprovider 通过文档化的aside repl命令行表面工作(实现见 packages/k-skill-browser-runtime/src/aside-repl.js 与 aside.js)。它不依赖非公开的 localhost 端口、守护进程鉴权或未经文档化的 CDP 端点,因此升级 Aside 时更不容易被打断。会话结束只会关闭适配器自己创建的标签页。

3. Chrome CDP:通用兜底

chrome-cdpprovider 连接标准 Chrome/Chromium 远程调试端口,默认http://127.0.0.1:9222,即你需要自行以--remote-debugging-port=9222启动 Chrome 后由运行时附着。

三者对比一览(摘自 README.md):

Provider默认入口是否替用户启动浏览器适用场景
auto(默认)按平台顺序探测什么都不用配置
browseros127.0.0.1:9100强制使用自己启动的 BrowserOS
asideaside replCLI强制走 Aside 的文档化 REPL
chrome-cdp127.0.0.1:9222强制走 Chrome/Chromium CDP

⚠️ 注意"失败关闭"(fail-closed)设计:未知的 provider 名称会抛出UNKNOWN_PROVIDER类型化错误,而不会悄悄回退到 BrowserOS,避免你以为在跑 Chrome 其实跑在了别的浏览器上。

停止规则:什么时候 AI 必须停下来?

浏览器自动化最大的风险是"不小心点了付款/提交"。运行时在 packages/k-skill-browser-runtime/src/stop-rules.js 中导出一组类型化停止码,各技能据此决定"继续"还是"交还给用户":

停止码含义典型处理
AUTH_REQUIRED需要用户认证/本人登录交给用户手动登录
CAPTCHA_DETECTED遇到验证码/反爬检测交还人工,绝不绕过
PAYMENT_REQUIRED遇到支付步骤经用户确认后走官方流程
ELECTRONIC_SIGNATURE需要电子签名交还人工
IRREVERSIBLE_BOUNDARY不可逆操作(提交/取消等)先向用户确认再执行
BLOCKED上游被拦截/登录墙停止并说明
UNAVAILABLE所有 CDP provider 连不上提示配置浏览器

这套规则配合 docs/dolshoi-runtime.md 中的行动模型:可回退的步骤(加购、草稿、选座、临时占位)继续做,不可逆的外部效果(付款、发消息、最终提交)之前必须先取得用户确认

环境配置:4 个环境变量搞定

全部配置项见 docs/browser-runtime.md:

变量默认值说明
KSKILL_BROWSER_PROVIDERautoauto/browseros/aside/chrome-cdp
KSKILL_BROWSEROS_CDP_URLhttp://127.0.0.1:9100BrowserOS 的 CDP 端点
KSKILL_CHROME_CDP_URLhttp://127.0.0.1:9222Chrome/Chromium 的 CDP 端点
KSKILL_ASIDE_COMMANDasideAside CLI 的命令名或路径

大多数情况下保持auto即可:先装好你喜欢的浏览器(Aside 或 BrowserOS),运行时会自动探测并接入。

哪些技能在用这套运行时?

目前直接复用该运行时的典型技能(详见 docs/browser-runtime.md):

  • court-auction-notice-search — 法院拍卖信息优先走直接 HTTP,失败后回退到运行时浏览器;
  • court-payment-order-assistant — 电子诉讼支付令,登录后通过 BrowserOS CDP 交还给用户接管;
  • yebigun-training — 在用户已登录的预备军首页会话中查询训练日程。

d2b-notice-searchs2b-notice-search这类技能则采取"生成浏览器自动化指示语句"的路线,foresttrip-vacancyiros-registry-automation等 Python 技能则自带 Playwright/Chromium 会话——它们不在 Node 运行时的管辖范围内,各自管理自己的浏览器。

给技能作者的三条军规

如果你打算基于 k-skill 写新的浏览器技能,docs/browser-runtime.md 给出了明确规范:

  1. 不要重复造轮子——复用运行时的connect()/runJob()/ 停止规则,而不是内联一套 CDP 或 Playwright 逻辑;
  2. 用 semver 声明依赖——如"k-skill-browser-runtime": "^0.1.0",避免workspace:协议破坏 npm 发布;
  3. 把站点逻辑留在技能里——导航路径、选择器、解析与 fallback 顺序都记录在该技能的 SKILL.md 中,并暴露类型化的 stop/continue 规则。

小结

k-skill 的浏览器运行时把"用哪个浏览器"这件烦心事变成了平台感知的降级链:macOS 优先 Aside,其他平台优先 BrowserOS,Chrome CDP 兜底;把"什么时候该停"变成了 7 个类型化停止码,把"绝不做的事"(启动 BrowserOS、绕验证码、关用户页面)写成了硬性边界。对使用者来说,零配置开箱即用;对开发者来说,一个auto+ 停止规则,就能把 AI 代理的浏览器行为约束在安全范围内。

【免费下载链接】k-skill한국인을 위한 스킬 모음집 - 에이전트를 한국인으로项目地址: https://gitcode.com/GitHub_Trending/ks/k-skill

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询