前言¶
在 DeepSeek Harness(DSH)Web 界面里跑多会话智能体时,常见问题是:模型正在思考、流式输出还是调用工具,页面上往往缺少统一、可读的反馈。刷新页面或切到别的标签页后,更难判断当前有哪些会话在跑、进度到哪一步。
dsh-answer-pet 面向这一场景:在 Web GUI 角落挂一只可拖拽的「回答状态宠物」,用动画和状态卡把会话进度、输出速率和模型执行轨迹可视化。外观通过声明式 PetTheme v1 与进度核心解耦,默认蓝鲸,也内置橘猫与银渐层猫主题。
这是什么¶
dsh-answer-pet 是 DSH Web bundle 插件,由 Nanki-nn 维护,当前版本 0.6.0,MIT 许可证。插件分 Node half 与浏览器 client:前者监听 session/event 维护进度与轨迹,后者渲染宠物、状态卡和交互。
目录页:SkillHub - dsh-answer-pet
源码:github.com/Nanki-nn/dsh-answer-pet
核心功能¶
可扩展宠物主题¶
主题通过 PetTheme v1 契约定义 SVG、动画、宽高比和阶段文案,与回答进度逻辑分离。当前内置三个可信主题,随插件构建加载,不执行第三方任意 JavaScript,也不注入未经清理的外部 SVG。
| 主题 id | 名称 | 说明 |
|---|---|---|
blue-whale |
蓝鲸 | 默认主题 |
orange-cat |
橘猫 | PetTheme v1 示例 |
silver-shaded-cat |
银渐层猫 | 构建时注入内嵌 PNG,不加载外部图片 |
未知主题 id 会安全回退到 blue-whale。自定义主题开发见仓库内 docs/PET_THEME.md。
回答进度与状态卡¶
插件按 DSH 会话事件驱动阶段机,实时映射到宠物动画和进度百分比:
| 阶段 | 主题接口 | 状态卡进度 |
|---|---|---|
| 空闲 | idle |
不显示运行会话卡 |
turn/start |
turn |
2% |
思考(step/start) |
think |
5% → 10% |
输出(assistant/chunk) |
stream |
10% → 90% |
工具(tool/call) |
tool |
冻结当前进度 |
完成(turn/end) |
done |
100% |
进度优先使用 assistant/chunk 的 usage;有 maxTokens 时按 outputTokens / maxTokens 填充,否则用饱和曲线估算,同一回合内单调不减。状态卡还显示输出 token、token/s、耗时和文本片段。
多会话与模型轨迹¶
多个会话并发时,每个运行中的会话对应一张独立进度卡,纵向排列;无运行会话时不显示卡片,也不显示数量 0。
每张卡内展示最近模型轨迹,例如分析任务、推理与规划、组织回答、工具调用及结果。工具失败在轨迹中标红。轨迹最多保留 6 条(卡片显示最近 4 条)。工具名会显示(如 read、grep),参数只从白名单字段提取简短摘要,不展示完整 Shell 命令或原始 JSON。
交互与数据更新¶
- 拖拽宠物:位置持久化到
localStorage。 - 单击宠物:触发主题定义的眨眼,不移动位置。
- 状态卡可折叠;收起后仅在存在运行会话时显示数量按钮。
- 轮询与 SSE 结合:流式数据平滑更新,阶段切换即时刷新。
安装与启用¶
插件需安装到 Web profile。在终端执行:
dsh plugin --profile web add github:Nanki-nn/dsh-answer-pet
安装后停止并重新启动当前的 dsh web 进程,再刷新 Web GUI 页面。升级插件时重复同一条命令即可。
从旧版本升级到 0.6.0 后必须重启 dsh web;仅刷新浏览器不会加载新的配置 schema 和 Node half 逻辑。
典型用法¶
切换宠物主题¶
在 <dshHome>/settings.yaml 的 answer-pet 段配置主题。主题更新会在下一次配置刷新时挂载。
answer-pet:
theme: silver-shaded-cat # blue-whale / orange-cat / silver-shaded-cat
调整尺寸、位置与显示项¶
同一 section 下可配置宠物尺寸、停靠角、透明度、轮询间隔,以及是否显示进度卡和状态气泡。
answer-pet:
theme: blue-whale
size: 96 # 宠物高度 px(48–200)
corner: br # 停靠角:br / bl / tr / tl
opacity: 1 # 透明度(0.2–1)
pollMs: 800 # /state 轮询间隔
showBar: true # 显示会话进度卡
showBubble: true # 显示状态气泡
恢复默认位置¶
若拖拽后想恢复宠物默认停靠位置,在 DSH Web 页面打开开发者工具执行:
localStorage.removeItem('answer-pet:pos')
location.reload()
同时恢复状态卡展开状态:
localStorage.removeItem('answer-pet:bar')
location.reload()
适用场景与注意¶
适合谁
- 经常在 DSH Web 界面跑多会话智能体,需要一眼看到哪些会话在跑、当前阶段和工具调用情况。
- 希望在角落放轻量状态指示,而不是反复切会话页查看日志。
- 想基于
PetTheme v1做自定义宠物主题(需阅读仓库开发指南并按构建流程接入)。
使用前注意
- 插件以当前
dsh web进程权限运行;安装前建议查看 源码 与 MIT 许可证,确认符合你的环境要求。 - 模型轨迹依赖 Node half 监听
session/event;安装或升级后务必重启dsh web,单独刷新页面只能更新浏览器端样式。 - 进度百分比是插件根据阶段、token 和
maxTokens估算的,多数模型接口不会提供精确完成百分比。 - SkillHub 是 DSH 社区插件目录,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-answer-pet 把 DSH Web 里的回答过程拆成可读的宠物动画、多会话进度卡和模型轨迹时间线,并通过 PetTheme v1 把外观与核心逻辑分开。若你已在用 DSH Web 跑智能体,可按上文命令安装到 Web profile,重启服务后刷新页面即可试用。
- 目录页:https://www.skillhub.cn/plugins/Nanki-nn/dsh-answer-pet
- GitHub:https://github.com/Nanki-nn/dsh-answer-pet