🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

站点技能记忆浏览器 dshworks/dsh-ego-browser

DeepSeek Harnessv0.1.4
dshworks34 天前有提交已提供中文文档扫描:含敏感能力

dsh 的 ego lite 浏览器自动化,会记住东西——召回某个站点学到的工具,把跑通的脚本提升成新工具,真需要时把键盘交回用户。7 个工具,仅限宿主,MIT。

30.8/100
综合分
1
GitHub 星标
198
npm 周下载
—/5
用户评分

数据截至 2026/9/30 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add @dshworks/dsh-ego-browser
npm 源 · @dshworks/dsh-ego-browser 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · ads
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 34 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包@dshworks/dsh-ego-browser @ 0.1.4
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/14 00:31:11

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件
查看扫描证据(共 26 处,展示前 16 条)
  • 写入本地文件
    lib/index.js:110
    await writeFile(file, code)
  • 删除本地文件递归
    lib/index.js:123
    await rm(dir, { recursive: true, force: true })
  • 写入本地文件
    lib/memory.js:156
    await mkdir(this.root, { recursive: true })
  • 写入本地文件
    lib/memory.js:157
    await mkdir(this.metaDir, { recursive: true })
  • 读取本地文件
    lib/memory.js:171
    if (existsSync(receiptPath)) {
  • 读取本地文件
    lib/memory.js:172
    return { seeded: false, reason: 'already seeded', ...JSON.parse(await readFile(receiptPath, 'utf8')) }
  • 写入本地文件
    lib/memory.js:175
    await writeFile(receiptPath, JSON.stringify({ from: null, sites: [], note: 'store was not empty' }, null, 2))
  • 读取本地文件
    lib/memory.js:181
    if (!existsSync(source)) continue
  • 读取本地文件
    lib/memory.js:182
    const names = (await readdir(source, { withFileTypes: true }))
  • 写入本地文件
    lib/memory.js:190
    await writeFile(receiptPath, JSON.stringify(receipt, null, 2))
  • 写入本地文件
    lib/memory.js:193
    await writeFile(receiptPath, JSON.stringify({ from: null, sites: [], note: 'no source workspace found' }, null, 2))
  • 读取本地文件
    lib/memory.js:203
    return (await readdir(this.root, { withFileTypes: true }))
  • 读取本地文件
    lib/memory.js:219
    return JSON.parse(await readFile(join(this.root, siteId, 'manifest.json'), 'utf8'))
  • 写入本地文件
    lib/memory.js:344
    await mkdir(join(siteDir, folder), { recursive: true })
  • 删除本地文件递归
    lib/memory.js:392
    await rm(siteDir, { recursive: true, force: true })
  • 删除本地文件
    lib/memory.js:402
    await rm(join(siteDir, schema.path), { force: true })
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-subprocess@deepseek-ai/dsh-tools@deepseek-ai/schemastery@deepseek-ai/cordis
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 召回站点已学工具
  • 脚本提升为新工具
  • 必要时交还键盘
v0.1.02026-08-24
dsh 里跑浏览器任务,每次成本都一样。智能体打开页面、拍快照、找元素、点击、滚动、提取,下周再来一遍,价格照旧,因为会话一结束,学到的东西全没了。 ego lite 自己的 README 把修复列为待办: 「经验积累,用得越多智能体越快(即将推出)」 读取端已经上线:site.learnContext、site.runTool 和 site.runBrowserTool 会加载 learnings/ 目录。这里补的是写入的那一半。 ego_recall ──▶ ego_run ──▶ ego_learn ──▶ ego_site_run │ └──▶ ego_handoff 七个工具。第二次抓那个仪表盘时,智能体调用的是它上周自己写的工具。 · 60 秒试一下 需要先安装并完成 ego lite 的引导,让 ego-browser 出现在 PATH 上。 dsh plugin --profile web add -w @dshworks/dsh-ego-browser · 重启 dsh curl -s localhost:8090/dsh-ego-browser/memory | jq .tools # 七个名字,没生效就是 [] 然后让智能体跑一次 ego_doctor。全新安装时它已经带着三个站点和八个工具,继承自你机器上的 ego 技能。 · 已验证的部分 在真实 dsh 0.1.1-rc.2 上启动已发布的包验证过——用 dsh plugin add -w @dshworks/dsh-ego-browser 安装,所以测的就是你装的那个产物:七个工具全部注册,存储自动播种,我们的校验器在 ego 自带的 learnings 里零问题,memory 路由对重绑 Host 返回 403。对构建好的 ego-browser 包验证过:两个能力探测、输出分类和晋升门。74 个测试,不需要浏览器。 未验证:线上的一切——真实页面加载、真实任务空间、真实用户接管。ego lite 只支持 macOS,而这是在 Linux 容器里构建的。如果你有 Mac,最有用的反馈是线上报告,包括「完全一致」。 · ego 线上接口值得知道的三件事 1. argv 形状不稳定。随附技能写的是 ego-browser nodejs;citrolabs/ego-lite@main 上的命令行不接受 argv,多一个就退出码 2。这个插件做探测,不做假设。 2. 辅助接口不稳定。扁平全局(cliLog、snapshotText)对门面(console.log、page、taskSpaces)。给一边写的脚本在另一边抛 ReferenceError。探测后把答案交给模型。 3. 硬停止会丢弃整次运行的输出。收回任务空间时 ego 只打印自己的提示,结果哨兵永远不到。这里它的缺席就是信号,不是解析失败。 · 在 npm 上 @dshworks/dsh-ego-browser,公开,MIT。直接从仓库安装也行(github:dshworks/dsh-ego-browser)——构建产物已提交,两种方式都不用构建。 · 致谢 CitroLabs 的 ego lite 才是好点子。存储格式、临时引用规则和交接协议都是他们的。如果你想看智能体浏览,该装的是 Fisfzy/dsh-ego-browser——实时投屏面板,外加 ego 运行时的 Linux 移植。 MIT。与 DeepSeek 和 CitroLabs 无关联。
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
/ _ \/ _ |/ _ \ dsh-ego-browser | __/ (_| | (_) | \___|\__, |\___/ ego lite for DeepSeek Harness, |___/ with a memory it keeps 给 dsh 浏览器 agent 的站点技能记忆。 7 个工具 · 用 ego lite 自己的 learnings/ 格式存 · 在 dsh 0.1.7-rc.2 上验证过 · 81 个测试,不需要浏览器 · 纯 host 插件 · MIT = 20"> 它做什么 · 60 秒上手 ·凭据 ·什么时候别用 ·相关工作 · llms.txt · ego lite 是一个人和 agent 共用的浏览器:agent 在自己的 Space 里干活,复用你真实的登录态,你的标签页还是你的。这个插件把它接进 dsh —— 并补上 ego 自己 README 里仍标着「即将推出」的那一半。
展开完整文档(README 剩余 1 节)
/ _ \/ _ |/ _ \ dsh-ego-browser
| __/ (_| | (_) |
\___|\__, |\___/ ego lite for DeepSeek Harness,
|___/ with a memory it keeps

给 dsh 浏览器 agent 的站点技能记忆。

7 个工具 · 用 ego lite 自己的 learnings/ 格式存 · 在 dsh 0.1.7-rc.2 上验证过 · 81 个测试,不需要浏览器 · 纯 host 插件 · MIT

= 20">

它做什么 · 60 秒上手 ·凭据 ·什么时候别用 ·相关工作 · llms.txt ·

ego lite 是一个人和 agent 共用的浏览器:agent 在自己的 Space 里干活,复用你真实的登录态,你的标签页还是你的。这个插件把它接进 dsh —— 并补上 ego 自己 README 里仍标着「即将推出」的那一半。

「Experience accumulation that makes your agent faster the more you use it (coming soon)」 —— ego lite README

读的那半边其实已经发布了:site.learnContext、site.runTool、site.runBrowserTool 会从 EGO_BROWSER_AGENT_WORKSPACE 指向的目录里加载 learnings/。缺的是写的那半边。

ego_recall ──▶ ego_run ──▶ ego_learn ──▶ ego_site_run
这个 agent 一次浏览器 把跑通的那 下次一次调用,已经学到的 任务写一段 一步固化 而不是重新摸关于该站点 脚本 一遍页面的东西 │ └──▶ ego_handoff —— 页面需要真人时,真的去问,然后再把控制权拿回来

闭环就成立了。第二次抓同一个后台时,agent 调的是它上周自己写的工具,而不是重新摸一遍页面。

它做什么

- 动手前先回忆 —— ego_recall 直接从磁盘返回某个 hostname 的笔记与工具签名。不开浏览器、不加载页面、不花 token 重新摸索上个月已经跑通过的东西。
- 一次任务一段脚本 —— ego_run 把整个浏览器任务交给 ego 运行时的一段脚本,这正是 ego 自己 benchmark 所依据的设计。
- 把跑通的固化下来 —— ego_learn 把有效的一步变成真正的站点工具,用 ego 的格式存,并拒收那些活不到明天的。
- 调用学过的东西 —— ego_site_run 按名字调用已存工具并计数,于是没人用的工具一眼可见。
- 真的把键盘交给你 —— ego_handoff 弹出真正的 dsh Continue / Finish task 提示 —— 这正是 ego 自己的 hard-stop 文案在向 harness 要的东西 —— 你说继续,它才把控制权拿回来。
- 告诉模型你装的是哪一代 ego —— ego_doctor 探测已安装的命令,而不是相信文档,因为同一个命令名后面有两套互不兼容的运行时。
- 一开始就不是空的 —— 首次启动时,store 会继承你机器上已有 ego skill 的 learnings/。

它怎么工作(30 秒)

dsh agent
│ ego_run / ego_site_run ego_recall / ego_learn
▼ │
┌──────────────────────────────┐ ▼
│ dsh-ego-browser(host 半边) │ ┌──────────────────────────┐ │ · argv 与 helper 表面探针 │ │ learnings// │ │ · 脚本包装与结果归类 │─────────────▶│ manifest.json │ │ · 晋升闸 │ 写入 │ notes/.md │ └──────────────┬───────────────┘ │ tools/.js │ │ stdin heredoc │ browser-tools/.js │ ▼ └──────────┬───────────────┘ ego-browser │ EGO_BROWSER_ │ │ AGENT_WORKSPACE ▼ ▼ ego lite 应用 ◀────────── 同一份 store,ego 自己也读得回去(你的登录态,它自己的 Space)

唯一的那根线就是 ego lite 应用装的 ego-browser 命令。这里不内嵌、不打补丁、也不启动任何浏览器。

上手(60 秒)

需要运行 dsh 的机器上已安装并完成 ego lite 引导(lite.ego.app),使 ego-browser 在 PATH 上。

1. 安装
dsh plugin --profile web add -w @dshworks/dsh-ego-browser

2. 重启 dsh

3. 确认装上了 —— 七个名字;如果是 [] 就是没装上
curl -s localhost:8090/dsh-ego-browser/memory | jq .tools

在 deva 容器里经 ego bridge 跑 dsh?dsh 会从它启动的每个进程的环境里剥掉所有像凭据的变量(KEY、SECRET、TOKEN、PASSWORD),所以 bridge 的 token 得在 profile 的 cordis.patch.yml 里显式转发:

- id: dsh-ego-browser
config:
env:
DEVA_EGO_TOKEN: !!js process.env.DEVA_EGO_TOKEN

add 会顺手把 bundle 登记进 profile 花名册。然后让 agent 先跑一次 ego_doctor —— 它就是这样弄清楚该给你装的这一代 ego 写 cliLog() 还是 console.log() 的:

command: ego-browser invoked as: ego-browser
store 用的是 ego 的格式,不是我们的

/learnings//manifest.json id、name、domains、notes、tools /learnings//notes/.md agent 摸清楚的东西,用散文写 /learnings//tools/.js node 工具:export async function f(ctx, args) /learnings//browser-tools/.js 页面工具:在标签页里求值

这里学到的东西,在 dsh 之外的原版 ego-browser skill 里同样能加载,指向同一个 workspace 的其它 agent 也一样。没有私有格式,也没有需要迁出的东西。

首次启动时,如果找得到已有的 ego skill workspace,会把它的 learnings/ 继承过来一次。只继承一次;你删掉的站点不会自己回来。

一切都在写入前校验,被拒的晋升不会改动 store 分毫:manifest 形状、域名模式、参数与返回 schema、声明的导出,以及源码语法 —— 用 node --check 在进程外解析,绝不 import,因为那段代码是写给浏览器运行时的,没有理由在 harness 进程里执行。

随时读 store: sh
curl -s localhost:8090/dsh-ego-browser/memory | jq

配置

所有字段可选。

| 字段 | 默认 | 含义 |
| bin | ego-browser | 命令。不在 PATH 上时填绝对路径。 |
| workspace | $DSH_HOME/ego-browser/workspace(未设 DSH_HOME 时为 ~/.dsh) | 学到的站点存放处。指向已有的 ego skill 目录即可共用同一份 store。 |
| seed | true | 首次启动时继承已有 ego workspace 的 learnings/。 |
| cwd | harness cwd | ego-browser 进程的工作目录。 |
| extraArgs / env | [] / {} | 追加到每次调用。 |
| timeoutMs | 120000 | 单次脚本的时限。 |
| probeTimeoutMs | 20000 | 能力探针的时限。 |
| maxOutputBytes | 1048576 | 保留的脚本输出;超出保留尾部。 |
| route | true | 在 /dsh-ego-browser/memory 提供 store。 |
| trustedHosts | [] | 除 loopback 外允许读该路由的 authority。 |

只有 subprocess 是硬依赖。tools 和 webServer 存在时才接管,所以 headless profile 也能干净加载,只是没有路由。

handoff 的完整流程

ego 自己的 hard-stop 文案,几乎是逐字在向 harness 要这个能力:

「Offer the user choices like "Continue" or "Finish task" if your harness supports it」

dsh 支持。ego_handoff 交出任务空间,弹出一个带这两个选项的真实 dsh 提问,选 Continue 后把控制权拿回来,下一次 ego_run 直接续上 —— 不用「你回一句 continue 我再试试」,也不会在用户还在输密码时把键盘抢走。

如果根本没人可问 —— headless、没有提问 UI,或者调用方是子 agent(harness 会用 DELEGATED_CALLER 拒绝而不是永远阻塞)—— 它会直说,而不是假装收到了答案。

相关工作

已经有两位先把 ego 接进了 dsh,两个都值得一看:

- Fisfzy/dsh-ego-browser —— 32 个细粒度 ego_* 工具,外加一个可以直接点击操作的实时观察窗,并自带 ego 运行时的 Linux 移植,没有 macOS 应用也能跑。是真下了功夫的作品,对自身局限也很坦诚;如果你要的是看着 agent 浏览,选它。本插件不与之竞争,也不提供观察窗。
- Da1dr1em/dsh-ego-browser —— 围绕 Windows 预览宿主的三个工具:run、help、status。能跑起来的最小诚实实现。

两者都没有往 learnings store 里写东西,也都没有把 ego 的 hard stop 变成真正的提示框。这个插件补的就是这块。

还有东西本身:ego lite(CitroLabs 出品)才是这里的好点子 —— 人和 agent 共用一个浏览器,而不是用框架去驱动另一个。store 格式、临时 ref 规则、handoff 协议全是他们的;这个插件只是把它们填满。

贡献 · 安全 · 许可

CONTRIBUTING.md —— 哪些需要真实浏览器,哪些不需要。如果你手上有装了 ego lite 的 Mac,真机上的 ego_doctor 输出是你能提供的最有用的东西。

SECURITY.md —— agent 操作的是你真实的登录会话。安装前值得花两分钟看看。

MIT。ego lite 是独立发布的免费下载,遵循它自己的 MIT 许可;本仓库未内嵌其任何代码。与 DeepSeek、CitroLabs 均无关联。
预览分享卡片长什么样 ↓dshworks/dsh-ego-browser
分享 · DeepSeek Harness Hub
dshworks/dsh-ego-browser

dsh 的 ego lite 浏览器自动化,会记住东西——召回某个站点学到的工具,把跑通的脚本提升成新工具,真需要时把键盘交回用户。7 个工具,仅限宿主,MIT。

回到顶部