用 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

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

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

小夜