用 ego-browser 把 ego-lite 浏览器接入 DeepSeek Harness

前言

DeepSeek Harness(dsh)是 DeepSeek 开源的智能体运行时,官方仓库把设计原则写成一句话:一切皆插件。模型适配、工具、会话、界面都可以拆成插件增删。智能体要登录站点、填表、翻页、下 PDF 时,纯文本工具往往不够,真正能带着 Cookie 跑动态页面的,还是 Chromium。

社区维护者 Fisfzy 做的 ego-browser,就是把 CitroLabs/ego-lite 这套给 AI Agent 用的 Chromium,接到 Harness 里。它不是 DeepSeek / 幻方的官方应用商店货架——收录它的 DeepSeek Harness 插件库 是独立社区目录,与官方无从属关系。下面按目录页和 GitHub 仓库能核对到的信息,说明它做什么、怎么装、用的时候要注意什么。

当前仓库 package.json 版本为 0.8.0,主要语言 JavaScript,要求 Node ≥ 22。GitHub 截至 2026-08-17 显示 22 星;社区目录页仍显示 13 星,以仓库页面为准更稳妥。

这是什么

ego-browser 是一款「工具与能力」类 DSH 插件,由 Fisfzy 维护,包名 @dsh-external/ego-browser。定位很直接:把 ego-lite 的浏览器能力变成 Harness 里一组可调用的 ego_* 工具,并附带实时观察窗。

社区目录页的简介仍写「13 个结构化 ego_ 工具」。对照仓库 README 与 lib/index.js 的注册列表,当前源码实际注册了 32* 个工具(前缀均为 ego_)。目录元数据滞后,下文以仓库源码为准。插件包内置 runtime/ 里的 ego 运行时,README 说明 Linux + Chrome 可开箱使用,不必再克隆 ego-lite 官方仓库或手动构建。

它要解决的问题,和 ego-lite 自己的定位一致:通用浏览器不是为 agent 设计的,登录态、验证码、动态渲染、表单这些只有真浏览器好处理。ego-browser 再补一层——agent 在后台点页面时,你能在 DSH Web 界面里看到画面,必要时直接接手。

核心功能

仓库把能力分成工具层和观察窗两块。工具层每个动作会把参数拼成 JS 脚本,经 ctx.subprocess 交给内置的 ego-browser nodejs,由 CDP 驱动共享 Chromium;结果用 @@DSH_RESULT@@ 哨兵行解析。全部 ego_* 在进程内互斥串行,避免抢同一个浏览器。

1. 32 个结构化工具

完整索引可用 ego_help。按 README 的分类如下:

  • 任务空间:ego_space_openego_space_closeego_status
  • 页面读取:ego_snapshot(语义树)、ego_page_infoego_read_element
  • 导航 / 等待:ego_navigate(复用 tab)、ego_waitego_wait_for_selectorego_wait_for_urlego_wait_for_response
  • 交互:ego_clickego_fillego_hoverego_dragego_selectego_checkego_keyego_scroll
  • 执行 / 调试:ego_js(页面求值)、ego_cdp(原始 CDP)、ego_cli(任意 heredoc)、ego_script(多步脚本)
  • 输出:ego_screenshotego_downloadego_upload
  • 会话 / 安全:ego_auth_flush(登录落盘)、ego_captchaego_dialog
  • 元工具:ego_helpego_doctorego_http

语义快照、按语义定位点击、填表、截图、CDP、任务空间隔离,都在这套工具里。环境不通时,可先跑 ego_doctor 做体检。

2. 实时观察窗

带图形界面的 DSH Web 里,右下角有常驻小球,点开后是 agent 当前页面的实况。CHANGELOG 写明 v0.5.0 起用 SSE 推流(Page.screencastFrame),监控窗可通过 CDP 把点击、拖拽、滚动回传到同一个 agent 浏览器。标签条可切换 / 关闭标签,历史抽屉按时间回看访问轨迹。无显示器的 headless 会话仍可用 ego_* 工具,只是没有观察窗。

v0.8.0 起:若环境里装了 dsh-better-sidebar,观察窗会注册成 sidebar 的原生 Tab;没装则退回原来的浮动窗。首次调用 ego_* 时会尝试自动打开该 Tab。这是可选集成,不把 sidebar 写成硬依赖。

3. 内置运行时与平台探测

runtime/ 嵌入了 CitroLabs/ego-lite 的 MIT 代码(含 Linux 移植相关改动),详见仓库 THIRD_PARTY_NOTICES.mdresolveEgoEnv 会自动探测 Chrome / Chromium / Brave / Edge;root、Docker、无显示器场景可用随包的 --no-sandbox wrapper。也可用环境变量 EGO_LINUX_CHROME 指定浏览器路径。

4. 任务空间隔离

多任务空间的 Cookie 相互隔离,登录要在对应空间里做。这是 ego-lite「让 agent 用已登录浏览器、又不搅你自己的标签」那套模型在 DSH 里的落地方式。

安装与启用

社区目录页给出的安装命令如下,在 DeepSeek Harness 终端里执行即可:

dsh plugin add github:Fisfzy/ego-browser

需要指定 profile 时,官方 CLI 的形式是 dsh plugin --profile <profile-name> add github:Fisfzy/ego-browser。GitHub 源安装可能在装包时执行构建脚本,pnpm ≥ 10 会要求你先允许该包的 prepare。目录页也提示:如需可复现安装,请固定 commit 哈希。截至 2026-08-17,仓库 master 最新提交为 41f791af9dcf29f1b14102add921a545f9e6c0c8,可以写成:

dsh plugin add github:Fisfzy/ego-browser#41f791af9dcf29f1b14102add921a545f9e6c0c8

仓库 README 另外写了 dshx install ego-browser <tarball 或 git URL>,装完用 dshx list 应看到 [on] ego-browser。那是另一套装载器写法;走社区目录时,以页面上的 dsh plugin add 为准。

package.json"private": true,README 也写明不发布到 npm / 公共 registry,不要按包名去 npm 上找。

前置条件(来自 README):

  • Node ≥ 22(Harness 环境通常自带)
  • 本机有 Chrome / Chromium / Brave / Edge,或设置 EGO_LINUX_CHROME
  • 已安装 DSH;要看观察窗则需要带图形界面的 DSH Web

可选配置写在 ~/.dsh/config.yaml 对应插件条目下,README 列出的字段包括 egoBindefaultSpacemaxOutputBytesgraceMs。浏览器路径探测失败时,可改 egoBin 或设置页里的 Chrome 路径。v0.8.0 之后,设置卡还可以调观察窗推流参数(帧率上限、JPEG 质量、帧宽度、兜底截图间隔),这些属于观察窗侧配置,不影响 ego_* 工具本身是否可用。

典型用法

仓库没有给出一段可直接粘贴的对话示例,但工具职责是确定的。装好并确认插件已启用后,一次常见流程是:

  1. ego_space_open 打开(或复用)任务空间,默认空间名可在配置里改,源码默认是 dsh-agent
  2. ego_navigate 打开目标 URL(文档写明会复用 tab)。
  3. ego_snapshot 拿页面语义树,再用 ego_click / ego_fill 按语义定位交互;需要等元素或 URL 变化时用 ego_wait_for_selectorego_wait_for_url
  4. 需要视觉核对时调用 ego_screenshot;遇到人机验证可用 ego_captcha 探测,登录态要落盘则用 ego_auth_flush
  5. 不确定当前环境时先跑 ego_doctor,工具清单以 ego_help 为准。

观察窗一侧(DSH Web):

  • 点右下角小球打开实况;滚轮缩放、按住拖动、双击复位。
  • 顶部标签条切换页面,× 关闭的是真实浏览器标签。
  • 监控窗里的鼠标操作会回传到 agent 正在用的那一个 Chromium,不必另开一套浏览器。

README 列出的上手场景包括:让 agent 在已登录站点翻页收集资料、填表中途用观察窗接手验证码、在自己产品上做冒烟点击,以及 agent 操作 DSH 界面本身时同样可见(仓库称为 self-observation)。这些是文档中的能力说明,不是第三方评测。

适用场景与注意事项

适合已经在跑 DeepSeek Harness、需要智能体操作真实网页的人:抓取带登录态的站点、填复杂表单、看 agent 点了什么、必要时自己接管。纯 API 抓取或无浏览器环境的任务,不必上这个插件。

使用前请直接看这几条边界,都来自仓库 README / CHANGELOG,不要当成「全平台完美可用」:

  • Windows:插件层在 v0.4.0 做了适配;底层 ego-lite 宿主仍是非 Windows 官方支持的社区移植,复杂多步流程稳定性可能弱于 macOS。
  • 快照质量:Linux 用 CDP DOMSnapshot 重建语义树,不是 macOS 上的内核级快照,复杂 iframe / 画布场景可能降级。
  • Linux 宿主:文档写明 Linux 侧是未合并进上游的社区移植,跨 CLI 调用间可能丢 tab / 空间状态;插件有防御,简单流程相对稳,复杂流程可能要重试。
  • 登录态:多空间 Cookie 隔离;Chrome 运行期 Cookie 主要在优雅关闭时落盘。CHANGELOG 的 Unreleased 项还在改重启后的落盘行为,强杀(SIGKILL)场景不要默认「一定能恢复登录」。
  • 观察窗依赖 Web:headless 只有工具、没有直播画面。
  • 输出 schema:文档写明为宽松 additionalProperties: true,客户端以实际返回值为准。

插件以当前 dsh 进程的权限运行,安装时可能执行代码。装之前应自己检查 GitHub 源码和许可证。package.json 声明插件本体为 MIT,内置 runtime 同样按 MIT 嵌入 ego-lite;GitHub 仓库目前没有被识别到的 LICENSE 文件,以仓库内声明和 THIRD_PARTY_NOTICES.md 为准,不要想当然当成官方担保。

README 页眉仍写「私有 · 内测」,但截至本文核实日,https://github.com/Fisfzy/ego-browser 是公开仓库,社区目录已收录。页眉文案和可见性不一致时,以 GitHub 仓库实际状态为准。

小结

ego-browser 做的事情很具体:把 ego-lite 这套 Agent 浏览器接进 DeepSeek Harness,交出一批可调用的 ego_* 工具,并在 Web 界面上给一条能看、能点的观察通道。目录页安装命令是 dsh plugin add github:Fisfzy/ego-browser;当前源码是 32 个工具、版本 0.8.0,内置运行时,不走 npm。它是社区插件,不是 DeepSeek 官方商店里的一栏。装之前读源码、固定 commit、按自己的权限模型评估风险,比多看一句介绍更重要。

目录页:https://deepseek-harness-plugin.com/zh-CN/plugins/ego-browser/

GitHub:https://github.com/Fisfzy/ego-browser

上游浏览器:https://github.com/CitroLabs/ego-lite

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜