DeepSeek Harness 插件

dsh-abyss

深海事务所 (Abyss) — an operations console for DeepSeek Harness agent fleets: every agent is a character at a desk, every line comes from the durable session log, and any past case replays and reports(英文原文)

跳到安装方式

来源信息

GitHub 仓库
Zongwei9888/dsh-abyss
最近更新
2026年8月15日
分类
自动化与任务
GitHub stars
1
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/Zongwei9888/dsh-abyss
插件名:dsh-abyss
作者:Zongwei9888

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器4 个文件
README.md来源说明 · 只读预览
README 语言

<div align="center">

<img src="assets/logo.svg" width="96" height="96" alt="深海事务所">

深海事务所 · Abyss

把 DeepSeek Harness 的多 agent 运行过程,变成一间看得见的事务所。

谁在干活、花了多少、卡在哪 —— 全都来自会话日志,一句台词都不是编的。

中文 · English

![npm](https://www.npmjs.com/package/dsh-abyss) ![license](LICENSE) ![tests](#测试) !deps

dsh plugin --profile web add dsh-abyss && dsh web

</div>

---

<img src="assets/screen-floor.png" alt="办公室:六位同事在同一个案子上并行工作">

它解决什么问题

一个 dsh 会话跑起来之后,你其实看不见里面发生了什么:派了几个子代理、谁在等谁、哪一步失败了、这次花了多少钱。终端里只有一串流式文字,会话结束就散了。

深海事务所把这些全部画出来,而且每一个数字、每一句台词都能追回到 ~/.dsh/sessions 里的那条日志。它不改 dsh 一行代码,装上即用。

四个页签,四个问题

页签回答什么视角
🧑 办公室现在谁在场、正在做什么此刻 · 以人为中心
💬 时间线发生过什么,按时间从旧到新过程 · 以时间为中心
📈 统计花了多少、卡在哪、谁在等汇总 · 以账为中心
🌿 组织谁把活派给了谁关系 · 以谱系为中心

<table> <tr> <td width="50%"><img src="assets/screen-timeline.png" alt="时间线"><br><b>时间线</b>:派活、发言、汇报、出错,逐条按真实时间排列,长了自动折叠。</td> <td width="50%"><img src="assets/screen-stats.png" alt="统计"><br><b>统计</b>:成本、令牌、工具调用、失败、重拨、归档、等人时长、历时;下面是每人上下文水位与考勤泳道。</td> </tr> <tr> <td colspan="2"><img src="assets/screen-org.png" alt="组织"><br><b>组织</b>:委派谱系从真实的父子会话关系长出来,一眼看清一个案子分给了几个人。</td> </tr> </table>

为什么不是又一个桌宠

生态里的桌宠是装饰;这里的每个角色演的都是真事

舞台上发生的背后的 dsh 机制
一位员工一个 agent 的 session
工牌上的岗位subagent/descriptor.label
他来自哪家公司subagent/descriptor.providerclaude-code/codex 是真的别家 agent)
老板递文件夹tool/call subagent,气泡里是真实任务简述
便签飞过工位tool/call send_message,气泡里是真实消息原文
站在你门口等批准approval/asked / approval/decided,等了多久是算出来的
干活干砸了tool/result.error 或结果块的 isError
去档案室整理compaction/summary.shadowedTokenCount
工资表assistant/message.usage × 可配价目表
上下文水位usage ÷ request/context.contextWindow

因为 dsh 有「模型可见 ⟺ 必落日志」的运行时不变量,回放同一个案子会重演一模一样的过程

安装

需要 DeepSeek Harness 的 web profile(dsh web 能跑起来即可)。

# 1. 装进 web profile
dsh plugin --profile web add dsh-abyss

# 2. 重启 web
dsh web

打开 http://127.0.0.1:3080 ,右下角就是事务所的坞。点开即用,不需要任何配置

dsh plugin --profile web add dsh-abyss@latest   # 升级
dsh plugin --profile web remove dsh-abyss       # 卸载(重启后生效)

<details> <summary><b>从源码安装(包尚未发布到 npm 时用这个)</b></summary>

git clone https://github.com/Zongwei9888/dsh-abyss.git && cd dsh-abyss
npm install && npm run build && npm pack
dsh plugin --profile web add ./dsh-abyss-<版本>.tgz
dsh web

dsh plugin add 走的是 profile 目录下的 pnpm,所以它同样认 profile 里的 .npmrc——私有 registry 直接在 $DSH_HOME/profiles/web/.npmrc 里配 registry= 即可。 </details>

> 面板嵌在产品自己的页面里,数据挂在同一个 origin 下的 /abyss不开新端口、不做跨域

几个不显眼但有用的地方

  • 一个会话 = 一间办公室,重启也还在。 打开一个昨天的会话,面板会从磁盘上的日志把那间办公室重建出来——成员、已收工的临时工、当时的全部戏份。
  • 十个会话同时跑也不乱。 会话树是「案子」,三档范围(本会话 / 本项目 / 全部)随时切;活跃的案子排前面,结束的折叠成一行。
  • 导出复盘。 一键生成 Markdown 报告:成员表、事故清单、完整台词,直接贴进 PR 或周报。
  • 过往案子。 磁盘上的日志就是档案库,几天前跑完的案子照样能回放、能出报告。
  • 读不出来就直说。 某个成员的日志损坏时,报告顶部会写明"有 N 位成员的日志读不出来,下面的数字不含他们"——一份安静地少算了的报告,比没有报告更糟。
  • 可拖动、可缩放,位置和尺寸都记住;双击标题栏放回右下角。

配置

不配也能用。要改就在 profile 的 cordis.yml 里:

- id: dsh-abyss
  config:
    prices:                 # 工资表,按每 1M token 计
      deepseek-v4-pro: { input: 0.55, output: 2.19, cacheRead: 0.07 }
    currency: "¥"           # 货币单位,默认 $
    vendors:                # 各厂商的标签、配色、图标
      claude-code: { label: "外聘顾问", color: "#f59e0b", icon: "brain" }
    sceneHistory: 200       # 新连接的面板能看到多少场旧戏
    maxTeams: 20            # 保留多少个案子(只淘汰已结束的)
    caseList: 30            # 「过往案子」列多少个
    watchPolicy: true       # 把其它插件的拦截画成保安场景

非法配置在加载时大声失败,不会默默忽略。

文档

  • 📖 [五分钟上手教程](docs/tutorial.md) —— 从装上到看懂每一个数字
  • 🏗 [它是怎么搭的](docs/architecture.md) —— 宿主/浏览器两半、数据端点、事件映射、测试策略
  • 📝 [更新日志](CHANGELOG.md)

测试

npm test        # 113 个用例:投影逻辑 + 宿主装配 + 发布的浏览器 bundle

浏览器测试跑的是发布的那个 bundle(经 DOM 替身驱动),不是逻辑副本——本项目踩过的每一个客户端缺陷(全局被遮蔽、引号未转义、状态只存在 DOM 里、开关反转、文字被套上旋转动画)对"重新实现一遍逻辑"的测试都是不可见的。

关键路径还做过真机联调:真实跑任务、真实并发三个会话、真实触发审批与工具失败,并把插件报出的数字和原始日志逐项对过账。

许可

MIT。图标来自 Lucide(ISC),鲸鱼/章鱼/螃蟹/海星按 Lucide 规格手绘 —— 见 [LICENSE](LICENSE)。