OpenCLI 浏览器驱动技能
让 AI 代理通过你的已登录 Chrome 浏览器,以结构化命令驱动真实网页,完成导航、填表、点击与数据提取。
技能教代理通过Chrome DevTools协议控制真实浏览器,可读写页面数据、模拟登录态。文档明确要求agent使用结构化命令而非eval进行写操作,且bind不拥有用户窗口、不关闭用户标签,体现了权限敬畏。但缺少对敏感数据(如密码、cookie)处理的明确说明,也未提及回滚或恢复机制。依赖本地daemon和Chrome扩展,安全性依赖于安装来源。作者未验证,但可能靠文档和项目维护习惯增强信任。因此信任为10/25:主要风险(权限和确认)可见但隔离和回滚不完整。
SKILL.md自洽且详尽,包含错误码和match_level等反馈机制,能引导agent正确处理异常。但这些是静态文本描述,无法确认实际CLI行为。文档中的命令和例子可能已过时或未同步。静态审查未执行任何命令,无法验证关键路径。也没有看到针对这个技能路径的专用测试。因此可靠性为8/10(静态审查上限):happy path可能可行,但边界情况和失败反馈的证据薄弱。
技能适用于需要驱动真实浏览器的场景,如检查通知、填表、提取数据等。文档明确区分了与opencli-adapter-author技能的边界,并提供了数值引用和CSS选择器的目标契约,便于触发。环境方面,项目支持中文文档和多个中国网站适配器(如B站、知乎、小红书),表明对中国用户友好。但技能本身主要依赖本地Chrome和扩展,不依赖海外服务,对中国大陆网络可达性较好。不过具体触发条件(何时使用)仍是语义上的,未测试。因此适应性为11/15:场景明确但边界和触发条件证据有限。
SKILL.md信息架构清晰,有前置条件、会话生命周期、目标契约、错误处理表等,且有成本指南和示例配方,便于渐进披露。README提供了安装说明和技能目录,并注明Apache-2.0许可。但专用技能文档本身没有显式版本号或变更日志,维护责任仅在README中隐含。已知限制未明确列出(如跨源iframe最佳努力,但未提及其它限制)。因此规范为10/15:可读可用但有隐藏假设和治理缺口。
静态审查无法验证技能的实际效果。文档宣称能完成多种任务并提供了示例,但没有可验证的第三方执行证据。虽然存在e2e测试,但针对的是'adapter'和'article download',并非本技能的核心浏览器驱动路径。因此有效性为5/7(静态上限):核心任务可能完成,但输出可用性和对比收益的证据有限。
静态审查只能看到文档和测试文件,无法执行命令验证。CI工作流存在且有e2e测试,但这些测试覆盖的是其他技能路径(如article download、auth failure),不直接覆盖本技能的核心驱动功能。因此可验证性为3/5:有可审计的测试但覆盖薄弱。
- 该技能可以驱动真实浏览器并模拟登录态,可能访问敏感数据(如个人账户信息)。务必确认代理在执行前获得用户明确许可,并限制权限。
- 文档未说明密码、cookie等敏感数据的处理方式,也没有回滚机制。建议在敏感操作前进行确认。
- 技能依赖本地Chrome和扩展,安装来源需可信。建议从官方商店或GitHub Releases获取。
- 静态评估未验证实际行为,实际使用前应在隔离环境中测试。
这个 Skill 能做什么,适合哪些场景?
OpenCLI 浏览器技能赋予 AI 代理通过命令行接口(CLI)驱动真实 Chrome 窗口的能力。代理可以导航到网址、检查页面结构、填写表单、点击元素、提取数据,并拦截网络请求。技能强调选择器优先的目标合同,附带回执的结构化输出,以及处理动态 DOM 漂移的弹性机制。它专为人工智能代理设计,通过结构化信封提供精确匹配和错误代码,实现自主可靠的操作。该技能支持绑定现有标签页、后台浏览器窗口、跨源 iframe、复合表单控件(日期、下拉框、文件)以及网络流量检查。
技能通过 opencli browser 命令驱动实时 Chrome 会话:打开网址、获取页面状态快照(带数字引用)、按 CSS 或语义定位器查找元素、点击、输入、填充、选择、上传文件、拖放、按键、滚动、等待条件、提取 Markdown 内容、评估只读 JavaScript(包括跨源 iframe)、捕获并检查网络请求,以及管理标签页和会话。所有命令都会返回结构化 JSON 信封,包含匹配计数、置信度等级和机器可读错误代码。
- 需要 AI 代理自动填写你已登录的网页表单并提交,例如回复邮件或在社交平台发布内容。
- 需要从依赖登录或需要交互的网站上抓取数据(如个人时间线、私人通知、分页列表),并优先通过拦截其内部 API 而非 DOM 抓取。
- 需要 AI 代理驱动你已打开的标签页,并在不中断登录状态的情况下执行多步骤流程,例如同时处理多个标签页任务。
- 需要调试网站自动化:通过 `--compare-sources` 对比 DOM 与可访问性树快照的差异,或解决元素选择器失效的问题。
- 需要让 AI 代理从长文章中分块提取内容,或交互式地选择 React 自定义下拉菜单(如日期选择器或分类选择器)。
这个 Skill 有哪些优点和局限?
- 利用您已登录的浏览器,无需复制 cookie 或重复登录。
- 每个命令返回结构化的 JSON 信封,包含置信度和可操作的错误代码,非常适合自主代理。
- 通过数字引用和指纹识别,对 DOM 变化具有弹性。
- 网络拦截优先于 DOM 抓取,更可靠且资源消耗更低。
- 支持绑定现有标签页、后台窗口和跨源 iframe。
- 需要安装多个组件:OpenCLI 运行时、Browser Bridge 扩展和技能本身。
- 依赖 Chrome 的调试端口,容易受到 1Password 等干扰扩展的影响。
- 自动化可能很脆弱;某些站点需要自定义适配器,这超出了本技能的范围。
- 缺少内置测试套件;可靠性依赖 `opencli doctor` 诊断。
- 使用 `eval` 执行只读 JavaScript,无法直接提交表单;必须通过结构化命令操作。
如何安装这个 Skill?
- 安装 OpenCLI:推荐使用桌面应用(opencli.info/download),或通过 npm 全局安装
npm install -g @jackwener/opencli(需 Node.js >= 20)。 - 安装 Browser Bridge 扩展:从 Chrome Web Store 安装,或从 GitHub Releases 下载 zip 并手动加载到 chrome://extensions。
- 将技能安装到你的 AI 代理:运行
npx skills add jackwener/opencli --skill opencli-browser。 - 验证安装:运行
opencli doctor,确保输出为绿色。
如何使用这个 Skill?
确保 Chrome 正在运行且 opencli doctor 通过。向你的 AI 代理描述任务,例如“帮我查看我的小红书通知”或“帮我填写这个表单”。代理会运行诸如 opencli browser <session> state、click、type 等命令。例如,打开一个会话:opencli browser work open https://example.com。对于需要登录的页面,先手动导航并登录,然后使用 opencli browser <session> bind 将该标签页绑定到会话,接着让代理使用 state、click、type 等命令。
这个 Skill 与同类方案有什么区别?
与 Playwright 或 Puppeteer 等通用浏览器自动化库相比,OpenCLI 专为 AI 代理设计,提供结构化输出、错误代码和会话管理,并可与您自己喜欢的浏览器集成。它不提供自己的测试运行器;您需要自行集成。