前言¶
DeepSeek Harness (DSH) 提供了 Web 界面来管理智能体。开发过程中,观察 Agent 状态的运行和完成有助于调试和体验。DSH 的理念是“一切皆插件”,这意味着开发者可以添加自定义组件。Kun Like 桌宠是一个静态 Bundle 插件,将动态精灵动画集成到 DSH 的 Web 界面中。
插件介绍¶
Kun Like 桌宠由 GangLongYu 维护,遵循 MIT 许可证。它通过在 DSH Web 界面右下角渲染精灵动画,将 Agent 的抽象状态转化为可视化的角色动作。插件不再依赖本地绝对路径素材,而是通过静态 Bundle 自动装配。
核心能力¶
- 9 种精灵动画:沿用 8 列 × 9 行、每格 192 × 208 的素材契约。
- 状态感知:监听
agent/status,并以agents.list()轮询兜底,感知运行和完成状态。 - 状态映射:结合
tools/execute、approval/request、agent/request-error显示工作、等待和失败状态。 - 系统音效:任务完成时由 Host 播放系统提示音;Windows、macOS、Linux 均有对应实现。
- 交互功能:桌宠可拖动;点击会挥手并播放互动语音。
- 调试工具:提供
kun_pet_debug工具以及/kun-pet/state调试接口。
状态与动作对应¶
| Agent 状态 | 桌宠动作 | 气泡文案 |
|---|---|---|
| 工具执行中 | 专注干活 | 努力工作中… |
| 回合运行但没有工具执行 | 思考 | 思考中… |
| 等待回复或审批 | 期待 | 在等你回复哦~ |
| 请求出错 | 难过 | 呜…出错了 (._.) |
| 回合完成 | 挥手/跳跃并播放提示音 | 完成啦!你干嘛~哎哟 |
| 空闲 | 呼吸待机 | 休息中~ 有事叫我 |
安装与启用¶
使用官方 CLI 安装插件到 web profile。
npx @deepseek-ai/dsh plugin --profile web add github:GangLongYu/dsh-kun-like-pet
npx @deepseek-ai/dsh web
安装完成后,打开终端输出中的 Web 地址,桌宠应显示在右下角。Host 提供自检接口用于验证:
- http://127.0.0.1:3080/kun-pet/state
- http://127.0.0.1:3080/kun-pet/spritesheet.webp
- http://127.0.0.1:3080/kun-pet/voice.mp3
如果 3080 端口被占用,DSH 会自动使用其他端口,请以启动日志为准。
本地开发¶
若需修改源码,克隆仓库后按步骤构建。
1、克隆仓库并安装依赖:
git clone https://github.com/GangLongYu/dsh-kun-like-pet.git
cd dsh-kun-like-pet
npm ci
2、构建产物并测试:
npm run build
npm test
3、安装到 DSH:
npx @deepseek-ai/dsh plugin --profile web add .
npx @deepseek-ai/dsh web
修改 plugin/src/ 后必须重新执行 npm run build,并把更新后的 plugin/lib/ 一并提交。
环境要求与注意事项¶
- Node.js:需要 22.19 或更高版本。
- DeepSeek Harness:建议 0.1.0-rc.6。DSH 仍处于开发预览阶段,升级后若 API 有破坏性变化,请先运行本仓库测试。
- 音效依赖:
- Linux:依赖可用的
ffplay。 - Windows:使用 WPF
MediaPlayer。 - macOS:使用
afplay。 - 素材授权:代码使用 MIT License,但
assets/中的素材(图像、语音)为粉丝二创,不随代码许可自动获得商业使用授权。 - 权限:插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。
技术细节¶
插件采用 Host/Client 分离架构。
- Host (
plugin/lib/index.js):负责事件监听(如tools/execute)、状态轮询、音效播放以及/kun-pet/state路由。 - Client (
plugin/lib/client.js):通过shell.overlay注入 React 组件,实现桌宠渲染、拖动和点击交互。
目录结构包含 cordis.patch.yml 用于 profile 安装补丁,以及 assets/ 目录存放精灵图和语音文件。