Back to directory

dsh-digipet

Curated pick

swaylq/dsh-digipet

Digimon-style raising game: hatch an egg that feeds on real work (turns, tool calls, errors) and evolves along four branching lines shaped by how you work; zero tokens, invisible to the model.

2

stars

0

forks

MIT

License

2026-08-15

Created

2026-08-15

Last push

README

<div align="center">

dsh-digipet · 数码搭子

在 DeepSeek Harness 里孵一只数码兽 —— 它吃你的真实工作长大,数码宝贝式分支进化。

你写代码,它变成龙;你翻文档,它成为贤者;你天天报错……它会变成一条在一千万个进程里同时存在的东西。

license dsh-plugin deps tokens tests

中文 | English

</div>

蛋壳裂开了 ——

    ▗▄▚▚▄▖
   ▐ ◉  ◉ ▌
    ▝▚▄▄▞▘  。o

✨ 数码蛋 进化为 比特泡 Bitpop(幼年期Ⅰ)
「一颗刚立了 flag 的比特,还不知道自己要变成什么。」

进化仪式

30 秒上手

dsh plugin --profile web add github:swaylq/dsh-digipet
# 重启 dsh,然后在任意会话里:
/pet hatch

然后正常干活就行。每个完成的回合 +5 XP、你每条消息 +2、每次工具调用 +3、连报错都 +4。/pet 随时看它,/pet evolve 见证进化仪式。

它会变成什么,取决于你怎么干活

生命周期完整对齐初代育成机的正统结构:数码蛋 → 幼年期Ⅰ → 幼年期Ⅱ → 成长期 → 成熟期 → 完全体 → 究极体。从成长期起,每次进化都重新读一遍「这一阶段你实际怎么干活」来选系谱:

系谱 喂出它的方式 究极体
🐉 龙之系谱 写文件、跑命令 战铠龙皇 Wardrake Sovereign
📜 贤者系谱 读代码、查资料 天书贤神 Codex Deva
🕊️ 圣翼系谱 一句一句聊天 炽天使皇 Seraph Prime
👾 病毒系谱 在报错和事故里泡大 末日蛛皇 Doomweaver —— kill -9 只会让它分裂

3 个共通幼年形态 + 4 条系谱 × 4 阶段 + 3 个隐藏形态 = 22 格图鉴。系谱不锁死 —— 上一阶段是龙、这一阶段疯狂报错,它就转职病毒系谱。你的宠物最终长成什么样,就是你这段时间工作方式的镜子。

至于那三个隐藏形态,图鉴里只有一句谣传:

「谣传:吃撑的时候进化,会出事。」

初代玩家都知道这句话什么意思。有的错误能被爱救赎,有的错误会层层堆叠、越滚越高,最终成为某种祖传的存在(立绘的最后一行是 // 别动。)。

图鉴

命令

命令 作用
/pet 状态卡:立绘、XP、饱食度、心情、四维属性、累计吞食
/pet hatch 孵蛋(每个 DSH home 一只;蛋可进化时也可当仪式触发器)
/pet evolve 进化仪式
/pet name <名字> 起名(16 字以内)
/pet dex 图鉴(未见过的形态显示 ???,隐藏形态只给谣传)
/pet story 一生的大事记
/pet about 机制说明与信任立场

从 0.1.x 升级:旧存档(海洋生物图鉴)会在下次启动时自动无损迁移 —— 阶段、经验、四维、图鉴、大事记全部保留,历史形态一并映射到新图鉴。

为什么做这个

DSH 生态已经有二十多个桌宠插件(whale-girl、各家鲸鱼、Clippy、Live2D……),它们几乎都是状态镜像:agent 在思考,宠物做思考动作;任务完成,宠物欢呼。做得最深的 whale-girl 有资历等级和称号,但形象不会变,而且只活在 Web GUI 里。

没有一个是养成:没有孵化、没有阶段进化、没有「你的工作方式决定它长成什么」。dsh-digipet 补的是这一格 —— 初代育成机式的成长循环,宿主是你的 harness,饲料是你的真实工作。

吃撑了会犯困(饱食度 > 90% 时经验收益降到 15%),睡一会儿消化掉再继续吃 —— 这是天然的防刷机制。但老玩家都知道:撑着肚子的时候,千万别按进化。

原理

整个插件是四个事件监听 + 一个斜杠命令

挂载点 喂的是
agent/turn-stopping 每个完成的回合 +5 XP
agent/inbox/claimed 你的每条消息 +2 XP(喂「羁绊」)
tools/result 每次工具调用 +3 XP,按工具名分类喂「锻造」或「学识」;失败喂「皮实」
agent/error 每次报错 +4 XP(喂「皮实」)

进化门槛 30 / 120 / 500 / 1800 / 6000 / 16000 XP。进化时取这一阶段窗口内的最高属性定系谱,窗口随进化清零。存档在 $DSH_HOME/digipet/state.json,写盘走「临时文件 + fsync + 原子 rename」(与官方 JSON 存储后端同款),事件再密集也只按 1.5 秒节流落盘一次。

关键不变量:模型可见即已记录 —— 而这个插件干脆什么都不让模型看见。 不注册工具(工具 schema 是每轮固定 token 税)、不 agent.inject()、不写会话事件。宠物只活在命令结果卡里,对每一次模型请求的贡献是零字节。

信任立场

  • :只读它自己的存档文件。不读你的代码、不读会话内容 —— 事件监听里只用到「发生了什么类型的事」,消息与工具的具体内容从不落存档。
  • :只写 $DSH_HOME/digipet/state.json
  • 网络:无。
  • 模型可见面:无。零 token 开销,KV cache 不受任何影响。
  • 故障半径:所有监听器包在 try/catch 里,命令处理器有自己的错误兜底 —— 宠物摔了一跤不会波及你的工作。挂载的事件全是通知型(emit/serial),本插件从不否决、不改写、不延迟任何真实流程。

已知限制

  • 一个 DSH home 一只宠物,同机的所有 profile、会话、子 agent 共享它、一起喂它(这是特性也是限制)。
  • 多个 dsh 进程同时跑时,存档是「后写者胜」—— 与官方 JSON 后端同样的单进程立场。
  • 工具分类靠名字的正则启发(write/edit/shell → 锻造;read/grep/search → 学识),第三方工具起了奇怪的名字就会被当成中性饲料。
  • 会话流里的折叠行会把立绘拍平成一行 —— 点开卡片看完整版(DSH 的工具行同款交互)。
  • 进化门槛与食谱不可配置:改了数字,图鉴和存档就没有共同语言了。

验证记录

在 dsh 0.1.0-rc.6(macOS,web profile)上真机验证:

  1. dsh plugin --profile web add <本仓库> 安装,--dump-config 出现 digipet 层;
  2. dsh web 启动无异常;
  3. 真浏览器里 /pet hatch → 蛋卡渲染(等宽、换行保留)→ 真实事件喂到 30 XP → /pet evolve 破壳出比特泡;
  4. 无 API key 时发普通消息,模型请求失败但事件是真的 —— 存档数字与食谱逐项吻合;
  5. 造一份 0.1.x 旧存档(故障系成长期)重启加载:自动迁移为新图鉴对应形态,名字、四维、大事记全部保留;
  6. 42 个单元 / 集成测试(node --test),覆盖纯逻辑层、假 ctx 集成、迷途进化三连与迁移。

致敬与边界

形态设计致敬初代 V-pet 与经典养成游戏的进化线传统(骨盔恐龙、机械改造、圣翼、网络病毒、照顾失误的那只泥)。「数码宝贝 / Digimon」是万代南梦宫的商标,本项目与其无任何关联;全部命名、立绘、文案均为原创,不包含任何官方素材。

许可

MIT

DSH Plugins is an independent community directory of DeepSeek Harness plugins. Not affiliated with or endorsed by DeepSeek. Third-party plugins are not security-audited — review the source before installing.