ego-browser
把 ego-lite 浏览器(给 AI Agent 用的 Chromium)接入 DSH:13 个结构化 ego_* 工具(语义快照、语义定位点击、表单填充、截图、CDP 控制、任务空间隔离),内置运行时开箱即用。
fisfzy
@fisfzy
⬇ 3
★ 13
master
安装
dsh plugin --profile web add github:fisfzy/ego-browser
需要可复现安装时,可在仓库后追加 #commit 固定提交。
把 ego-lite 浏览器(给 AI Agent 用的 Chromium)接入 DSH:13 个结构化 ego_* 工具(语义快照、语义定位点击、表单填充、截图、CDP 控制、任务空间隔离),内置运行时开箱即用。
该插件未提供要点说明,请参考仓库 README。
agent-browserbrowser-automationdsh-pluginego-litedshx
- 安装并启动 DeepSeek Harness:
npx @deepseek-ai/dsh web - 在终端执行上面的安装命令(CLI 会解析插件并核验来源)
- 用 dsh plugins list 确认已安装,必要时重启 Harness 生效
插件以当前 dsh 进程的权限运行,安装时可能执行代码。请先通读仓库源码与许可证,确认无破坏性命令与越权访问;本站只做索引,不对第三方插件安全性作担保。
| 代码仓库 | github.com/fisfzy/ego-browser |
| 许可证 | 未标注(见仓库) |
| 主要语言 | master |
| 下载量 | 3 |
| GitHub 星标 | 13 |
| 最近推送 | 2026-08-14 |
| 收录日期 | 2026-09-19 |
| 分类 | 工具与能力 |
事实信息来自公开插件目录快照(2026-10-01),介绍文案由本站再加工。
以下为插件仓库 README 全文(原始内容,由公开目录抓取整理)。
# ego-browser — 看得见的 Agent 浏览器
> **仓库**:`github.com/dsh-external/ego-browser`(私有 · 内测)|版本历史见 [CHANGELOG.md](CHANGELOG.md)
> ⚠️ **保密声明**:属于 DeepSeek Harness **内测生态**的一部分,仅限 dsh-external 内测成员使用。**严禁公开、外发、镜像或分发到任何非授权位置**;仓库必须保持 PRIVATE,不发布到 npm / 公共 registry,不创建公开 fork 或镜像。
把 [CitroLabs/ego-lite](https://github.com/CitroLabs/ego-lite)(给 AI Agent 用的 Chromium)接入 DeepSeek Harness:以 **32 个结构化 `ego_*` 工具**驱动浏览器,并配一套**实时观察前端口**——agent 后台操作网页时,你能像看直播一样看到它正在浏览的每个页面,还能直接操作它。
**开箱即用**:插件包内置 ego 运行时(`runtime/`,MIT,见 [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md))——无需克隆官方仓库、无需手动构建,`--no-sandbox` wrapper 随包自带,root / Docker / 无显示器一键跑。
---
## 我们的真正优势(不是口号,是能对照代码和竞品核实的能力)
同样把 ego-lite 接进 DSH,市面上已有同类插件用它**只做了 3 个工具**——一个 `run` 脚本、一个 `help` 指南、一个 `status` 体检,浏览器仍是**后台黑盒**。`ego-browser` 走的是另一条路:**把黑盒打开,并且一上来就把"看"和"控"的能力做到位**。
| 能力 | ego-browser(本仓库) | 同类插件(Da1dr1em/dsh-ego-browser) |
|---|---|---|
| 结构化工具数 | **32 个**,职责单一、可确定性调用 | **3 个**(`run`/`help`/`status`) |
| 实时观察窗(SSE screencast 推流 + 标签条 + 历史抽屉) | ✅ 有 | ❌ 无 |
| 监控窗鼠标**直接操作**真实浏览器(点击/拖拽/滚动回传 CDP) | ✅ 有 | ❌ 无 |
| worker 单实例守卫 + 崩溃/重复自愈 | ✅ 有 | ❌ 无 |
| 下载捕获 `ego_download` / 人机验证检测 `ego_captcha`/`ego_page_info` | ✅ 有 | ❌ 无 |
| 平台自适应(Linux/macOS/Windows 自动探测 + root/无头/`--no-sandbox` 兜底) | ✅ 全平台 | 仅 Windows 预览宿主,需手动配 |
| 登录态落盘持久化 `ego_auth_flush` | ✅ 有 | ⚠️ 仅文档级说明 |
**关键差异两条:**
- **看得到**:别家是"跑完告诉你结果"的黑盒;我们实时推流,你**看着 agent 操作**,卡在验证码/走岔立刻发现。
- **控得住**:别家只读;我们监控窗**直接驱动**同一个 agent 浏览器,需要时你亲手接管(缩放/拖拽/点击),不必打断 agent 重来。
> 以上对比基于公开可见的可核实事实:本仓库代码(`bin/ego-cast-worker.mjs` 实时推流 + CDP 输入回传、`lib/index.js` 32 个注册工具、`lib/cast-server.js` host 桥接)与同类插件的源码/README。此文档不含对任何他人的贬低——我们只陈述自己多实现并验证了哪些能力。
---
## 它解决什么问题
通用浏览器不是为 agent 设计的,而 Web 上大量交互(登录态、验证码、动态渲染、表单、需真人会话的站点)只有真浏览器能面对——这正是 ego 系 **"让 agent 用你已登录的浏览器,而不打扰你"**([官网](https://github.com/CitroLabs/ego-lite))的由来。
`ego-browser` 把它接进 DSH,并把最痛的一点——**你看不见 agent 在干什么、也插不上手**——用一套观察窗解决:
> 🌐 小球一点看直播;🟦 标签条切换/关闭;🕘 历史抽屉回看;🔍 缩放拖拽;🖱️ 监控窗直接接管真实浏览器。**一句话:让 agent 在浏览器里干活,你在旁边既看得见、又随时能接手。**
---
## ✨ 近期亮点
- **v0.6.1**:卸载不再阻塞宿主退出(自愈链路稳定);观察窗 worker **单实例守卫** + stale 状态清理;登录/人机验证引导条可关闭且互斥;**观察窗主动跟随 agent 正在操作的页面**(不再被后台重绘页抢占视图)。
- **v0.6.0**:工程收敛——`lib/` 定为唯一源,`build` 改语法校验,杜绝"一构建全回归"。
- **v0.5.0**:实时 SSE 推流 + 监控窗直接操作 agent 浏览器。
- **v0.4.0**:Windows 适配。
- 完整历史见 [CHANGELOG.md](CHANGELOG.md)。
---
## 前置条件
| 要求 | 说明 |
|---|---|
| Node ≥ 22 | harness 环境自带 |
| **任意 Chrome / Chromium / Brave / Edge** | 自动发现,或 `EGO_LINUX_CHROME` 指定;root 下用自带 wrapper |
| DSH + dshx | 插件装载机制 |
| 带图形界面的 DSH Web(观察窗) | headless 会话仍可用 `ego_*` 工具,仅无观察窗 |
## 安装
```sh
dshx install ego-browser # tarball 或 git URL 均可
dshx list # 应显示:[on] ego-browser
```
可选配置(`~/.dsh/config.yaml` 该插件条目下):`egoBin`、`defaultSpace`、`maxOutputBytes`、`graceMs`。
无需宿主侧任何配置:`resolveEgoEnv` 自动探测 root / 无显示器并兜底。观察窗 host 路由(`/api/ego/spaces` 等)仅在有 HTTP server 时注册,headless 是安全 no-op。
## 工具清单(32 个,前缀 `ego_`,完整索引见 `ego_help`)
| 类别 | 工具 |
|---|---|
| 任务空间 | `ego_space_open` `ego_space_close` `ego_status` |
| 页面读取 | `ego_snapshot`(语义树) `ego_page_info` `ego_read_element` |
| 导航/等待 | `ego_navigate`(复用 tab) `ego_wait` `ego_wait_for_selector` `ego_wait_for_url` `ego_wait_for_response` |
| 交互 | `ego_click` `ego_fill` `ego_hover` `ego_drag` `ego_select` `ego_check` `ego_key` `ego_scroll` |
| 执行/调试 | `ego_js`(页面求值) `ego_cdp`(原始 CDP) `ego_cli`(任意 heredoc) `ego_script`(多步脚本) |
| 输出 | `ego_screenshot` `ego_download` `ego_upload` |
| 会话/安全 | `ego_auth_flush`(登录落盘) `ego_captcha` `ego_dialog` |
| 元工具 | `ego_help` `ego_doctor` `ego_http` |
## 观察窗怎么用
右下角 **🌐 常驻小球** → 点开:
- **主画面**:agent 当前页面实况;滚轮缩放、按住拖动、双击复位;Ctrl+滚轮缩放视图、Ctrl+拖动平移(v0.5.0)。
- **标签页条**:顶部横排,点选切换,`×` 关闭。
- **历史抽屉**(🕘):按时间回看访问轨迹。
- 操作时下方网址行就地显示提示,2 秒后恢复。
> 登录态说明:多任务空间 Cookie 相互隔离,请在对应空间内登录。重启 DSH 后运行期登录态被清空(Chrome 运行期 Cookie 仅优雅关闭时落盘),需重登——扫码很快。
## 工作原理
- **工具层**:每个工具把参数拼成 JS 脚本,经 `ctx.subprocess` 用 `ego-browser nodejs` 喂给 stdin 运行,宿主经 CDP 驱动共享 Chromium。结果以 `@@DSH_RESULT@@` 哨兵行解析。所有 `ego_*` 经进程内互斥锁串行化,错误统一归一。
- **观察窗**(三层):`lib/client.js`(前端)+ `lib/cast-server.js`(host 路由转发,懒启动、崩溃自动重启)+ `bin/ego-cast-worker.mjs`(attach 到 agent 正在用的浏览器,推实时帧)。worker 只读/见控,绝不动宿主环境。
## 开发
```sh
npm run build # node --check lib/*.js(lib/ 为唯一权威源,不复编译覆盖)
```
> 直接改 `lib/`(`lib/index.js` 工具层、`lib/client.js` 前端、`bin/ego-cast-worker.mjs` worker)。新工具在 `registerActionTools` 按 `t({...})` 加,并在 `ego_help` 索引补一条。
`node_modules/` 仅含指向 DSH checkout 的符号链接(编译期类型解析);运行时由 harness 解析 `@deepseek-ai/dsh-tools`。
## 已知限制(诚实说明)
- **Windows**:插件层已做 v0.4.0 适配;底层 ego-lite 宿主仍是非 Windows 官方支持的社区移植,复杂多步流程稳定性可能弱于 macOS。
- **快照质量**:Linux 用 CDP `DOMSnapshot` 重建语义树,非 macOS 内核级,复杂 iframe/画布场景可能降级。
- **宿主可靠性(Linux)**:未合并的社区 PR,跨 CLI 调用间可能丢 tab/空间状态;插件已内置防御,简单流程稳定,复杂流程可能需重试。
- **登录态持久化**:Chrome 运行期 Cookie 仅优雅关闭时落盘,强杀重启需重登。
- 输出 schema 为宽松 `additionalProperties: true`,客户端以实际返回值为准。
## 许可与署名
插件本体 MIT。内置运行时嵌入 [CitroLabs/ego-lite](https://github.com/CitroLabs/ego-lite) 的 MIT 代码(含 [PR #234](https://github.com/citrolabs/ego-lite/pull/234) 的 Linux 移植)及一处本地代理补丁——详见 [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md)。
数据来源:公开的 DeepSeek Harness 插件目录与各插件 GitHub 仓库。本站为独立第三方目录,与 DeepSeek、幻方(High-Flyer)及插件作者均无隶属或背书关系。