dsh-webui-perf
awa-123-cw
DeepSeek Harness WebUI 性能优化开关插件:长代码流式渲染/历史加载/高亮缓存优化,设置面板一键开关(with official-package patches)
PROJECT TOPICS
PROJECT README
把 DeepSeek Harness 的多 agent 运行过程,变成一间看得见的事务所。
谁在干活、花了多少、卡在哪 —— 全都来自会话日志,一句台词都不是编的。
中文 · English
dsh plugin --profile web add dsh-abyss && dsh web
一个 dsh 会话跑起来之后,你其实看不见里面发生了什么:派了几个子代理、谁在等谁、哪一步失败了、这次花了多少钱。终端里只有一串流式文字,会话结束就散了。
深海事务所把这些全部画出来,而且每一个数字、每一句台词都能追回到 ~/.dsh/sessions 里的那条日志。它不改 dsh 一行代码,装上即用。
| 页签 | 回答什么 | 视角 |
|---|---|---|
| 🧑 办公室 | 现在谁在场、正在做什么 | 此刻 · 以人为中心 |
| 💬 时间线 | 发生过什么,按时间从旧到新 | 过程 · 以时间为中心 |
| 📈 统计 | 花了多少、卡在哪、谁在等 | 汇总 · 以账为中心 |
| 🌿 组织 | 谁把活派给了谁 | 关系 · 以谱系为中心 |
![]() 时间线:派活、发言、汇报、出错,逐条按真实时间排列,长了自动折叠。 |
![]() 统计:成本、令牌、工具调用、失败、重拨、归档、等人时长、历时;下面是每人上下文水位与考勤泳道。 |
![]() 组织:委派谱系从真实的父子会话关系长出来,一眼看清一个案子分给了几个人。 |
|
生态里的桌宠是装饰;这里的每个角色演的都是真事:
| 舞台上发生的 | 背后的 dsh 机制 |
|---|---|
| 一位员工 | 一个 agent 的 session |
| 工牌上的岗位 | subagent/descriptor.label |
| 他来自哪家公司 | subagent/descriptor.provider(claude-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 # 卸载(重启后生效)
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= 即可。
面板嵌在产品自己的页面里,数据挂在同一个 origin 下的
/abyss,不开新端口、不做跨域。
不配也能用。要改就在 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 # 把其它插件的拦截画成保安场景
非法配置在加载时大声失败,不会默默忽略。
npm test # 113 个用例:投影逻辑 + 宿主装配 + 发布的浏览器 bundle
浏览器测试跑的是发布的那个 bundle(经 DOM 替身驱动),不是逻辑副本——本项目踩过的每一个客户端缺陷(全局被遮蔽、引号未转义、状态只存在 DOM 里、开关反转、文字被套上旋转动画)对"重新实现一遍逻辑"的测试都是不可见的。
关键路径还做过真机联调:真实跑任务、真实并发三个会话、真实触发审批与工具失败,并把插件报出的数字和原始日志逐项对过账。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。