dsh-digipet · 数码搭子
在 DeepSeek Harness 里孵一只数码兽 —— 它吃你的真实工作长大,数码宝贝式分支进化。
你写代码,它变成龙;你翻文档,它成为贤者;你天天报错……它会变成一条在一千万个进程里同时存在的东西。
中文 | English
蛋壳裂开了 ——
▗▄▚▚▄▖
▐ ◉ ◉ ▌
▝▚▄▄▞▘ 。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)上真机验证:
dsh plugin --profile web add <本仓库>安装,--dump-config出现 digipet 层;dsh web启动无异常;- 真浏览器里
/pet hatch→ 蛋卡渲染(等宽、换行保留)→ 真实事件喂到 30 XP →/pet evolve破壳出比特泡; - 无 API key 时发普通消息,模型请求失败但事件是真的 —— 存档数字与食谱逐项吻合;
- 造一份 0.1.x 旧存档(故障系成长期)重启加载:自动迁移为新图鉴对应形态,名字、四维、大事记全部保留;
- 42 个单元 / 集成测试(
node --test),覆盖纯逻辑层、假 ctx 集成、迷途进化三连与迁移。
致敬与边界
形态设计致敬初代 V-pet 与经典养成游戏的进化线传统(骨盔恐龙、机械改造、圣翼、网络病毒、照顾失误的那只泥)。「数码宝贝 / Digimon」是万代南梦宫的商标,本项目与其无任何关联;全部命名、立绘、文案均为原创,不包含任何官方素材。
许可
MIT
No comments yet. Be the first to write one.