ego-browser

29Star3Fork5Issue0Watching

把 ego-lite(AI Agent 专用 Chromium)接入 DSH,提供 32 个结构化浏览器工具加实时观察窗,AI 操作网页时用户能看见、可接手。

机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
JavaScript
分支
master
agent-browserbrowser-automationdsh-plugindshxego-lite

安装

$ dsh plugin --profile web add github:Fisfzy/ego-browser

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 Fisfzy/ego-browser:先查看仓库 https://github.com/Fisfzy/ego-browser.git 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

把 ego-lite(专为 AI Agent 设计的 Chromium,运行时已嵌入插件包)接入 DeepSeek Harness,对外暴露 32 个结构化 ego_* 工具,让 AI 能像真人一样在网页上点击、填表、读内容、过验证;并配一个右下角实时观察窗,AI 操作网页时你能看着、必要时直接抢过控制。

核心能力

  • 注册 32 个 ego_* 结构化工具,覆盖任务空间(打开/关闭)、页面读取(语义树快照、属性读取、截图、元素信息)、导航与等待、键鼠交互、表单与对话框、人机验证检测、网络请求与下载捕获、自由脚本逃生舱
  • 在 DSH Web 端右下角提供"🌐"实时观察窗:以 SSE 推 JPEG(CDP 后端,默认)或 fMP4 视频流(FFmpeg 后端)实况显示 agent 正在浏览的页面,支持标签条切换、历史抽屉回看
  • 观察窗支持直接接管:在画面上点击、拖拽、滚轮、Ctrl+滚轮缩放、Ctrl+拖动平移、点击后键入中文/快捷键,全部路由回 agent 用的同一个 Chromium,不必打断 agent 重来
  • 自带人机验证检测(reCAPTCHA / hCaptcha / Turnstile / Cloudflare 等)与登录引导条,agent 卡在登录或验证时主动提示
  • 跨平台自适配:Linux/macOS/Windows 全支持,root / Docker / 无显示器环境自动注入 --no-sandbox wrapper 与 headless 兜底,无需手工配 Chrome
  • 暴露 ego_doctor 环境体检、ego_auth_flush 登录态落盘、ego_help 工具索引等运维型工具

技术实现

  • 语言: TypeScript(构建产物为 lib/index.js + lib/client.js + bin/ego-cast-worker.mjs 三 bundle)
  • 关键依赖: @deepseek-ai/dsh-toolsdefineTool 工具注册基座)、@deepseek-ai/schemastery(Config Schema 校验)、@deepseek-ai/dsh-settingsego-browser 设置命名空间与持久化)、react(前端浮窗 UI)、runtime/ego-linux(嵌入的 ego-lite 运行时,vendored)
  • 架构模式: Cordis 双面插件(dsh.bundle.patch 注入到宿主 services 列表,dsh.client 把浮窗前端注入 Web 宿主);每个 ego_* 工具走"参数→拼 JS 脚本→ctx.subprocessego-browser nodejs→按 @@DSH_RESULT@@ 哨兵解析"模式,所有工具经进程内互斥锁串行化防止争用同一浏览器
  • 入口文件: src/index.ts(插件 apply 入口 + 32 个工具注册)、src/config.ts(Schemastery Config + resolveConfig)、src/cast-server.ts(host 路由 /api/ego/*)、src/client/index.ts(浮窗前端单文件)

适用场景

当你想让 AI 完成必须靠浏览器才能做的事——抓需要登录态的网页、跨页表单填写、模拟移动端、操作带验证码或需真人会话的站点——又不想为它单开一个测试账号时,这个插件把同一套 Chromium 借给 AI;同时观察窗让"AI 在干什么、卡在哪里"全程可见,必要时你亲手接管不必打断 agent。

前置依赖与兼容性

依赖最低版本说明
DeepSeek Harness0.1.0-rc.8peerDependencies@deepseek-ai/dsh-* 系列推导;需要宿主同时提供 tools / subprocess / webServer(观察窗)服务
Node.js>=22package.json#engines.node;观察窗与 vendored 运行时均依赖 Node 22+ 内置能力
操作系统macOS / Windows / Linux插件层三平台都支持;macOS 上为官方体验,Linux/Windows 走社区移植(见"已知问题与限制")
浏览器运行时Google Chrome / Chromium / Brave / Microsoft Edge 任意一种自动探测常见路径;root 用户使用插件自带的 --no-sandbox 包装脚本;可通过 EGO_LINUX_CHROME 或设置里的 chromePath 字段手动指定
原生模块插件本体不引入原生模块;vendored 运行时是纯 JS;FFmpeg 二进制为可选下载(按需托管到 ~/.dsh/cache/ego-browser/ffmpeg/

安装方式

dsh plugin --profile web add github:Fisfzy/ego-browser

配置项

配置类型说明默认值
chromePathstring自定义 Chrome/Chromium 可执行文件路径;留空则按常见位置自动探测空(自动)
captureBackendstring观察窗画面后端:auto / cdp(默认 JPEG 流) / ffmpeg(视频流,需手动安装)auto
streamProfilestring画质档位:low / balanced / high,决定 FPS、最大宽度、码率三档默认balanced
cdpFpsnumberCDP 预览每秒帧数,5–3020
cdpQualitynumberCDP JPEG 质量,1–10055
cdpMaxWidthnumberCDP 帧最大宽度(像素),320–1920960
cdpBackstopIntervalMsnumber静态页兜底截图间隔(毫秒),1000–100003000
ffmpegFpsnumberFFmpeg 后端帧数,5–30按档位 15/20/30
ffmpegMaxWidthnumberFFmpeg 后端最大宽度,320–1920按档位 960/1280/1600
ffmpegBitrateKbpsnumberFFmpeg 目标视频码率(kbps),500–20000按档位 2000/4000/8000
ffmpegEncoderstringFFmpeg H.264 编码器:auto / software / h264_mf / h264_nvenc / h264_qsv / h264_amf / h264_videotoolbox / h264_vaapiauto
ffmpegPathstring自定义 FFmpeg 路径;留空则按 PATH → 托管缓存顺序探测
githubMirrorstring托管下载时的 GitHub 镜像前缀,例如 https://gh-proxy.com/github.com
egoCliArgsstring追加到 ego-browser nodejs 调用的额外 CLI 参数;下次 ego_* 调用生效;部分控制参数会被过滤
chromeArgsstring追加到 Chrome 启动参数的额外选项;下次浏览器冷启动生效(浏览器是单例);部分控制参数会被过滤
egoBinstring自定义 ego-browser CLI 路径;留空则使用 vendored runtime/ego-linux/bin/ego-browser.mjsvendored runtime
defaultSpacestring/number默认任务空间名;后续 ego_* 调用省略 space 时落到这里dsh-agent
maxOutputBytesnumber每次子进程收集 stdout/stderr 的字节上限4194304(4 MiB)
graceMsnumber子进程超时的宽限毫秒数15000

常见问题

Q: 我在 Linux 服务器上 root 启动,没有 Chrome 也能跑吗?

A: 能。resolveEgoEnvsrc/index.ts)会自动探测 root 与无显示器环境,注入自带的 --no-sandbox 包装脚本与 headless 兜底;只要系统里装了任意 Chrome / Chromium / Edge / Brave 就能启动。找不到时 ego_status 会立刻给出可执行文件路径与原因。

Q: 我可以同时跑多个 AI agent 任务吗?它们会互相干扰吗?

A: 所有 ego_* 工具在进程内被一个互斥锁串行化,所以同一插件实例内多个 agent 不会抢同一个浏览器;多任务用"任务空间"隔离——ego_space_open 创建一个独立空间,space 参数路由到对应空间。Cookie 在不同空间互相隔离,请在目标空间内登录。

Q: 观察窗的实时画面对电脑有什么要求?

A: CDP 后端(默认)开销很小,DSH Web 端任何能跑现代浏览器的机器都能看;FFmpeg 后端需要 Chrome 窗口被正确捕获,Windows 上必须使用带 gfxcapture 滤镜的 FFmpeg,macOS 首次使用需要"屏幕录制"权限,Linux 需要 Chromium 与 FFmpeg 共享 DISPLAY,Wayland 缺少 Portal/PipeWire 输入时会提示切回 CDP。

Q: agent 走到验证码页面了怎么办?

A: ego_captchaego_page_info 会探测 reCAPTCHA / hCaptcha / Turnstile / Cloudflare 等控件并返回 { detected, kind };检测到时观察窗顶部会弹出"人机验证"引导条,你可以直接进观察窗完成验证,agent 同一浏览器仍在等你,过完继续。

Q: 我看的是"agent 操作的 DSH 自身界面"吗?还是说它在另一个浏览器里?

A: agent 用的就是这一个浏览器,没有第二个。它操作 DSH 的会话管理、任务看板、设置界面时,观察窗同样全程可见、可接手——插件文档把这称为 "self-observation"。

Q: 我怎么卸载?会留下 cookie 或 profile 吗?

A: dsh plugin remove 走 cordis 的标准卸载流程(fire-and-forget,不阻塞宿主退出)。Chrome profile 与 vendored 运行时位于用户态目录(macOS/Linux 走 $XDG_STATE_HOME/ego-lite-linux,Windows 走 %LOCALAPPDATA%\ego-lite-linux),不删除插件就还在;想清干净就手动删对应目录。

Q: "32 个工具"看着多,怎么找到我要用的那个?

A: 调一次 ego_help(支持 topic 参数分类查看,如 tools / navigate / input / form / wait / network / login / script 等),会返回带分类的完整索引与一句话说明。

上手难度

进阶 — 32 个工具覆盖面广,agent 直接可用;普通用户侧只需装一次 Chrome,确认 ego_status 通过即可。进阶玩家想压榨画质/帧率需理解 CDP 与 FFmpeg 双后端差异,并按需手动安装托管 FFmpeg。

已知问题与限制

  • 底层 ego-lite 宿主在 macOS 是官方支持,Linux/Windows 走社区移植,复杂多步流程的稳定性弱于 macOS,跨 CLI 调用之间可能丢失 tab/空间状态
  • FFmpeg 后端跨平台捕获:Windows 需要带 gfxcapture 的新构建,PATH 里的旧版会被跳过并提示下载兼容版本;Linux 用 x11grab、macOS 用 avfoundation display crop;macOS ScreenCaptureKit 与 Wayland Portal helper 属后续增强
  • 登录态仅在 Chrome 优雅关闭时落盘,强杀或断电后需重新登录;想立即固化可调 ego_auth_flush 或在观察窗登录引导条点"已登录,保存"
  • 工具输出 schema 使用宽松 additionalProperties: true,客户端应以实际返回值为准,不要依赖 schema 列举字段
  • 安装时 DSH 同名 peer 包不全在公共 npm registry;普通 pnpm install 在解析 @deepseek-ai/* peer 时可能失败,需通过 DSH profile 安装提供 peer;CDP 路径不依赖 FFmpeg,插件安装阶段不会下载二进制
  • 快照质量:Linux 走 CDP DOMSnapshot 重建语义树(非 macOS 内核级),复杂 iframe / canvas 场景可能降级
  • ego_httpmode: server(Node 侧 fetch.server)在 vendored Windows 运行时可能触发 libuv 崩溃,默认走浏览器上下文(fetch.browser

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/Fisfzy/ego-browser)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录