中文EN

dsh-agentic-pet

fun已测通过npmMIT

模型驱动的桌面宠物,派生自 PC2005-cloud/dsh-pet(MIT):独立置顶小窗跟随会话状态,与 Web 界面竞速应答审批与提问,维护每宠独立的好感账本,经 pet_say/pet_do 工具或自主内心戏说话,并可用自备的 BreezeBlue API Key 通过 BreezeBlue 把台词读出来。它使用独立的 /whale598 路由与 ~/.dsh/whale598 数据目录,是独立于 dsh-pet 的另一只桌宠,不替代上游。

下载量 / Downloads
2,427
依赖体积 / node_modules
65.91 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

安装

dsh plugin --profile web add dsh-agentic-pet

沙箱测试结果

阶段结果
1 安装✓
2 列装✓
3 挂载✓
4 启动—

四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。

README


description: "dsh 桌面宠物:经由 web 组合层伺服宠物页面、由进程内 dsh 事件驱动、可从桌面应答审批与提问的 agentic 宠物插件。"

kind: "package-bundle"


dsh-agentic-pet

[English](README.md) | 中文

简介

dsh-agentic-pet 是 DeepSeek Harness 生态的桌面宠物插件:宠物以透明置顶窗常驻桌面,跟随 agent 会话状态(idle / thinking / working / error),与 web 界面竞速应答审批与提问(先答者赢),维护每宠独立的触摸好感账本,并向模型暴露表达工具(pet_say、pet_do、pet_digest、pet_interactions、pet_state、pet_schedule_wake、pet_cancel_wake)——模型可以借宠物说话、做动作、感知被触摸、给自己定作息。说话内容可通过 BreezeBlue TTS 朗读——carrier 侧合成每条 /say 文本,语音就绪后与气泡同时下发;合成失败或超时静默降级为只显示(桌面设置页可配)。多只宠物实现可以并存:目录注册表(~/.dsh/whale598/pet-http.d/)发现全部在线宠物,状态、交互、账本按宠路由。

宠物本身是零 DSH 知识的纯显示端。理解运行时的一切——事件收敛、交互瀑布、多宠路由、模型工具——都在插件的 driver 里,宠物只实现一个小型本地 HTTP 控制接口。任何讲同一 HTTP 契约的宠物实现都能被采纳,插件零改动。

多宠会话路由(session ↔ 宠物)

  • 宠自己的内心戏会话(每宠一个:boot greeting 自动创建,或设置页「指定会话」手动绑定):driver 用 voiceOwners 映射表记录会话→宠物,模型在会话里的 pet_say/pet_do 不点名也自动落回这只宠;这些回合不画状态灯(呼吸不是工作状态)。
  • 工作会话:有绑定宠时状态灯只亮在它身上(宠物在交互竞速里答过题即赢得绑定);无绑定或绑定宠离线时,状态广播到全部在线宠。审批/问答永远全员广播。工作会话没有宠物工具,不涉及说话/动作的分发。
  • 手动在侧栏开的宠物模式会话:driver 不认识它(不在映射表里),按普通工作会话对待——状态灯上身,表演类工具(pet_say/pet_do/定撤闹钟)直接拒答、不分发。这不是预期用法:想跟宠物说话,请用宠物表面的输入卡,直达她自己的会话。

仓库结构

路径 · 内容

src/ · 插件(Cordis bundle):/pet 路由、事件 driver、注册表、PetService 接缝、模型工具、设置页路由

client/ · 桌面侧边栏设置页(client 半边)

carrier/ · 随包分发的 Electron 载体构建产物(lib/、dist-renderer/)

carrier-src/ · 载体源码(自开发上游镜像;素材在 dsh-pet-assets)

vendor/typert-plugin/ · 打包配置使用的 typert 装饰器插件(vendored)

tests/ · Vitest 用例(注册表路由与 /status 字段矩阵的纯函数覆盖)

安装

在 DeepSeek Harness 桌面端插件页安装,或:

dsh plugin --profile <name> add dsh-agentic-pet

动画素材以独立包 dsh-agentic-pet-assets 分发,作为依赖自动带入。

开发

日常迭代在本仓库内完成:改 src/ → 本地构建(tsc + tsdown,工具链与私有包依赖的准备见文档)→ 部署到桌面 profile 的 vendor 目录 → 重启 DeepSeek Harness。完整手册(含工具链准备、部署/验证/清理命令与已知坑)见 [docs/DEV-DEPLOY.md](docs/DEV-DEPLOY.md)。

历史上的构建在 dsh monorepo workspace 内进行(被打包的 @deepseek-ai/dsh-* 依赖未发布 npm),经 scripts\sync-from-monorepo.cmd 镜像进本仓库——monorepo 侧副本已停在 0.2.1-rc.3,该链路已过期,仅留档;直接运行会用旧代码覆盖本仓库。

测试:node_modules/.bin/vitest run(vitest 及 js-yaml@4.1.0、@deepseek-ai/cordis-plugin-include 为 ad-hoc 安装,见文档 §4);tests/registry-service.spec.ts 等纯函数规格只需 cordis 与 vitest 即可自持运行。

发布

package.json 的 version 归本仓库所有:scripts\sync-from-monorepo.cmd 镜像其余所有字段、只保留它。monorepo 那份带的是 workspace 版本(0.2.1-rc.3),早先的整文件覆盖会把已发布的版本号改掉——npm 上的 0.4.0 因此没有对应的 commit 与 tag。

node scripts\release.mjs 0.4.1 --dry-run   # 预检 + 打包清单,不发布
node scripts\release.mjs 0.4.1             # 发布,提交 "chore(release): 0.4.1",打 tag v0.4.1
git push --follow-tags

以下任一条件不满足,脚本拒绝发布:工作树干净、新版本号大于当前值、tag v<版本> 不存在、构建产物齐备、lib/ 里只有一个 bundle chunk(tsdown 用 clean:false,残留的旧 service-*.js 会被打进包)。发布失败会自动还原 package.json,工作树不会停留在一个并未发布的版本号上。预发布版本(x.y.z-rc.N)以 --tag rc 发布。

每个已发布版本都能用 tag v<版本> 定位——回答"npm 上是什么"的是 tag,不是清单。因此仓库里的版本号恒等于最后已发布的版本。

文档

  • 开发与部署手册(本地构建工具链、vendor 部署、测试、发布、已知坑):[docs/DEV-DEPLOY.md](docs/DEV-DEPLOY.md)。
  • 控制面契约(所有宠物实现共同讲述的冻结消费方 API)见项目文档的多宠指南。
  • 说话朗读(BreezeBlue TTS)设计笔记见 monorepo 工作区的 packages/bundle/pet-app/docs/tts.md。
  • 已知边界与设计笔记见仓库 wiki 与项目工程文档。

致谢与授权

  • 本项目基于 PC2005-cloud/dsh-pet 衍生(上游 dsh-pet 插件,作者 PC2005-cloud)。插件代码以 MIT 许可发布。
  • 角色形象("大肥鱼"鲸鱼娘,见 carrier/assets 与 dsh-agentic-pet-assets)的形象授权为 CC BY-NC-SA 4.0(署名 · 非商业 · 相同方式共享),原作者声明。仅限非商业使用;形象衍生须以相同方式共享。

以上内容来自 npm 上的 README,我们只做格式化,不改内容。

版本

npm 上共发布:17,最后更新 2026-11-06

链接

GitHub · Homepage · npm

同类插件