DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

KhalilYamber /

dsh-prism

Verified

DSH 界面两档模式插件:简化/原生一键切换,工具卡片白话化,降低上手门槛 / Two-level UI mode plugin for DeepSeek Harness

★ 1 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@38ea3a8c

dsh-prism

Release License Last commit

简体中文 | English

DSH 界面两档模式插件:简化 / 原生一键切换,工具卡片白话化,降低 DeepSeek Harness 的上手门槛。新手看白话,老手要完整,同一套界面两种读法。

项目仍在持续迭代:跟进 DSH 接口演进、扩充工具覆盖、打磨简化档体验,欢迎试用与反馈。

为什么做这个

DeepSeek Harness 发布后,社区对它的批评集中在一点:门槛。

  • 界面新闻:「一切皆插件」的设计十分依赖配置(YAML + 插件 + 效果组件 + 服务),「对高级用户而言功能强大,但对于只想快速用上可用智能代理的人来说,上手门槛较高」
  • 极客公园:DSH「对非编程用户不是很友好」,像框架、不像成品,是给开发者的尝鲜版
  • 社区开发者:「这玩意鬼才用,我为什么没事要插拔」

DSH 的毛坯房是刻意为之,但「想省事的人」和「要全功能的人」不该被迫接受同一套界面。dsh-prism 用两档模式回应这个矛盾:

档位 适用的人 界面表现
简化 想先用起来、不想研究术语的人 工具调用归组折叠:正式回复前的一串调用收成一行统计,点开展开面板看每个工具的交付文档
原生 老手、需要完整信息的人 插件零接管,产品原貌原样渲染,一个像素都不改

默认原生档,切换一次即生效,刷新页面回原生档。不想用的时候,卸掉插件,界面回到出厂状态,没有任何残留。

功能

  • 左下角悬浮入口:显示当前模式,点开菜单切换「简化 / 原生」,菜单内含「隐藏复杂工具」开关
  • 简化档 = 工具调用折叠组 × 交付文档:
    • 总结档:一次 user turn 内、模型正式回复之前的整串工具调用收成一个折叠组,收起时只显示一行统计「N 个工具 · M 次思考」(M 为组内模型思考次数,按 assistant 输出的 reasoning 块计数;无思考时只显示工具数),行尾带组状态(✓ 完成 / ● 运行中 / ✕ 有出错)
    • 中间档:点开统计行展开文档化面板——标题区(「本次调用 N 个工具 · M 次思考」)+ 清单区(每个工具一行:类别图标 + 白话动作/参数摘要 + 状态图标)+ 说明区;每行复用白话卡片样式,点单行展开该工具的「交付文档」详情(脱敏结果 Markdown 渲染)
    • 隐藏复杂工具:21 个高级工具(目标 / 计划、子代理编排、后台任务、插件系统)在面板内默认折叠成白话摘要行,点「展开」即展开并打开详情;菜单开关可随时关闭折叠
    • 归组规则:一个 user turn 内、正式回复(最后一条含文本的 assistant 消息)之前的全部工具调用为一组;运行中随新调用累计,刷新重放后按同一规则归组,每个工具恰好显示一次
  • 双语界面:插件全部文案跟随 DSH 界面语言(简体中文 / English),设置里切换语言即时生效,无需刷新;工具白话文案、参数摘要、菜单与状态均有中英双语\n- 数据脱敏(简化档):
    • 路径只显示文件名(file_path 等参数用 basename 呈现)
    • token / secret / password / api_key / authorization 等敏感参数名永不展示
    • 结果文本中的常见密钥形态(sk-xxx、Bearer xxx、key=xxx)替换为占位符
    • 详情面板只展示白话摘要与脱敏结果,不暴露原始参数
  • 原生档 = 产品原貌:原生档下插件完全不注册任何工具卡片,交还产品原样渲染(含通用卡片);简化档才注册折叠组节点(以更低的 priority shadow 产品 tool-call 树),模式切换时动态注册 / 注销、即时生效
  • 白话文案全覆盖:33 个工具规则表全覆盖白话文案(如 pwsh → 「正在电脑上执行一条命令」),其中 19 个没有原生卡片的工具在 v1.0.0 起由插件卡片接管;v1.1.0 起简化档把工具调用整体收成折叠组,组内所有工具行(含有原生卡片的 read / write / web_search 等)统一按白话规则渲染,原生档下它们仍是产品原版卡片

设计原则

  • 纯展示层:只改界面呈现,模型输入输出零改动,不影响 agent 的任何工作
  • 原生零接管:原生档不注册任何卡片,产品原貌完整回归;简化档把工具调用收成折叠组,组内工具行统一按白话规则渲染,官方工具卡片本身不被改动,原生档下保持原版
  • 内存态切换:刷新回原生档,简单、干净、无配置污染
  • 跟随主题:全部使用官方 --dsw-alias-* 设计变量,明暗主题自适应

安装

需要先装好 DeepSeek Harness(Node.js 22.19+ 或 24+)。

当前通过 GitHub 发布,克隆本仓库后以本地路径安装:

npx -y @deepseek-ai/dsh plugin --profile web add <本仓库目录>

也可以直接从 Releases 下载打包产物。启动 Web UI 后,左下角会出现悬浮入口。

使用

  1. 启动后点击左下角悬浮按键(显示当前模式)
  2. 选择「简化」:一次任务里的工具调用归成折叠组,收起是一行统计,点开展开面板看每个工具的白话行与交付文档详情
  3. 菜单里可开关「隐藏复杂工具」(仅简化档生效)
  4. 选择「原生」:恢复完整原生界面
  5. 刷新页面回到原生档

常见问题

为什么刷新后回到原生档? 档位存在内存里,这是刻意设计:简化档是临时辅助,不想用的时候刷新即消失,不留任何状态。

为什么有些工具卡片看起来没变? read、write、web_search 等工具官方已有产品级原生卡片,插件不为它们注册替代卡片(原生档完全原版);简化档把它们与其他工具一起收进折叠组,以统一的白话行展示,不改变官方卡片本身。

简化档会影响 agent 干活吗? 不会。插件只改界面显示,模型收到的输入输出与原生完全一致。

点开详情后表格 / 代码块是什么效果? 结果文本先脱敏,再按 Markdown 子集渲染:| a | b | 表格、``` 代码块、# 标题、- 列表、**粗体**、行内代码与 commit 哈希高亮;任何解析失败都退化为纯文本。

Roadmap

  • 跟进 DSH 官方接口演进,保持新版本兼容
  • 扩充工具规则表,让更多工具自动获得白话文案与文档化呈现
  • 打磨简化档体验:时间线行、交付文档渲染、脱敏粒度
  • 按社区反馈补充适配说明与常见问题

有想法或遇到不适配的工具,欢迎开 issue 讨论。

更新日志

v1.2.0(2026-08-18)

  • 界面双语适配:全部文案跟随 DSH 界面语言(zh/en),切换即时生效;33 工具规则、参数摘要、菜单、组状态均有英文

v1.1.1(2026-08-18)

  • 修复:简化档归组在真实浏览器完全失效(ToolGroupNode 裸用 framework hook useSession,每次渲染抛错导致槽位条目退出、回退产品原版渲染,两档看起来一样);改为从组件 props 取运行时注入的 hook
  • 组状态升级为三态 + 混合计数:全对显示 ✓、全错显示 ✕、对错混合显示警示符号 + 「✓ n · ✕ m」计数(对在前);组内还有调用在跑时只显示 ● 运行中,跑完才给对错总结
  • 状态计数按根工具调用计算,与组内行数口径一致

v1.1.0(2026-08-18)

  • 简化档工具调用归组折叠:一次 user turn 内、正式回复之前的整串工具调用收成一个折叠组
    • 总结档:收起时一行统计「N 个工具 · M 次思考」(M 按 assistant 输出的 reasoning 块计数,无思考时只显工具数),行尾带组状态
    • 中间档:点开统计行展开文档化面板(标题区 + 每工具一行 + 说明区),每行复用白话卡片样式,点行看脱敏交付文档详情
    • 归组在运行中随新调用累计、刷新重放按同一规则归组;每工具恰好显示一次
    • 行推导提取为共享函数 toolRowMeta,时间线卡片与折叠组面板共用,文案与状态完全一致
  • 折叠组统计行的开合状态按组独立存内存 store(每个 turn 一组),刷新回默认收起
  • 修复:简化档的 tool-call 节点渲染器与产品 ToolCallTree 同 key 注册冲突(keyed 槽同 key 同 priority 会抛错),改为以 priority: -1 shadow 产品渲染;白话卡片不再注册到 tool.call.toolview(该槽在简化档无消费方),折叠组面板内直接渲染

v1.0.0(2026-08-18)

  • 架构:规则表 + 参数名规则驱动(33 工具白话文案、接管名单自动推导),新增工具只需加一行
  • 原生档零注册:产品原貌完整回归,切换即时生效
  • 简化档:时间线行(类别图标 + 白话动作 + 状态图标)+ 交付文档详情(Markdown 子集渲染:表格 / 代码块 / 标题 / commit 高亮)
  • 新增「隐藏复杂工具」开关(默认开启):21 个高级工具折叠成一行
  • 数据脱敏加严:敏感参数名永不展示、密钥形态替换、详情先脱敏后渲染
  • 悬浮入口动态定位,跟随侧栏与输入框,不遮挡输入

早期版本

  • 初版:简化 / 原生两档切换,33 工具白话文案,接管 19 个无原生卡片的工具

贡献

  • 发现工具适配问题:开 issue,附上工具名与界面截图即可
  • 想补充白话文案或新工具规则:按「新增一个工具」一节改 TOOL_RULES,提 PR
  • 代码风格:与 lib/client.js 保持一致(零依赖、React.createElement、中文注释)

架构(全部实现位于 lib/client.js)

TOOL_RULES        规则表:33 个工具 → 白话文案与参数摘要声明
ARG_NAME_RULES    参数名规则:无显式声明的工具按参数名自动生成摘要
SENSITIVE_KEY     敏感参数名(任何情况下不展示其值)

注册是动态的:conversation.chat.node 的 tool-call 渲染器仅在简化档注册(以 priority: -1 shadow 产品 ToolCallTree;keyed 槽同 key 同 priority 的注册会抛错,更低 priority 者胜出),原生档零注册,产品界面原样呈现。折叠组面板内的工具行直接渲染白话卡片,不经 tool.call.toolview 槽分发(该槽的消费方是产品 ToolCallTree,简化档下已被 shadow)。

规则表字段

字段 含义
tools 工具名(数组);多个工具共用一条规则
doing / done 进行中 / 完成的白话文案;缺省时自动生成通用文案
complex 标记复杂工具:简化档默认折叠成一行,点击可展开
noArgs 不显示参数摘要(保持原有行为)
arg.pick 候选参数键,按序取第一个非空字符串
arg.mode 呈现方式:file=路径只留文件名 / raw=原文 / short=截断(配 max)/ count=数组计数(配 unit)/ wrap=(值)包裹 / fixed=固定文案
arg.prefix 摘要前缀
arg.fallback 参数缺省时的文案;不填则不显示摘要

新增一个工具

  1. 在 TOOL_RULES 加一行,只写工具名即可:doing/done 自动生成通用白话文案,参数摘要由 ARG_NAME_RULES 按参数名自动生成(如 file_path → 「文件:xxx」、url → 「链接:xxx」),简化档折叠组面板自动按规则渲染该工具行。
  2. 想更精准时再补 doing / done / arg;想让它默认折叠则加 complex: true。
  3. 简化档折叠组面板会把组内所有工具(含产品有原生卡片的 read / write 等)按规则渲染成白话行;原生档下它们仍是产品原版卡片,无需特殊处理。

装配

  • cordis.patch.yml:bundle patch 注入(insert prism)。
  • package.json:dsh.client.inject: ["@deepseek-ai/dsh-client-runtime"],浏览器半体经 exports["./client"] 加载。
  • 经 web profile 的 node_modules/dsh-prism junction 直接指向工作树装配;修改 lib/client.js 后刷新页面即生效(无需同步副本)。

License

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit 38ea3a8c99c7

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout