# deepseek-pets **Repository Path**: skiess_admin/deepseek-pets ## Basic Information - **Project Name**: deepseek-pets - **Description**: dsh-pet 是 DeepSeek Harness("一切皆插件"的 agent 框架)的情感陪伴插件。宠物住在 Web UI 里,通过会话事件感知你的真实工作状态——思考、写代码、报错、完成——并用像素动画表达情绪与成长。后期可能适配桌面版 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-15 - **Last Updated**: 2026-08-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # deepseek-pets #### 介绍 dsh-pet 是 DeepSeek Harness("一切皆插件"的 agent 框架)的情感陪伴插件。宠物住在 Web UI 里,通过会话事件感知你的真实工作状态——思考、写代码、报错、完成——并用 emoji 动画表达情绪与成长。后期可能适配桌面版。 它不是静态贴纸:状态纯由会话事件投影推导,可回放、可恢复、不干扰模型解析。 #### 功能 - 🐣 emoji 宠物三形态(🥚 蛋 → 🐣 幼体 → 🐥 成体,随等级成长) - 🧠 事件驱动情绪:9 种状态(newborn/working/thinking/talking/happy/relieved/sad/stuck/resting)自动切换动画(跳动/浮动/摇摆/跳跃/叹气/低落/抓狂/睡眠) - 💪 情绪深度(V1.2):错误互动 marker+move 配对——报错给行动建议而非空鼓励;连续 3 轮出错进入 stuck 强化态("先把问题拆小");有错完成轮进入 relieved(如释重负),只有干净跑完才 happy - 🛠️ 工作可视化(V2.0):tool/call 事件驱动工具动画——读文件📖翻书、跑命令⌨️敲键盘、写文件✏️、搜索🔍、其他工具🔧;状态迁移过渡文案(working→thinking "我在想…")。工具动画带 ~900ms 本地保持(dsh 工具调用为同步毫秒级返回,保持期让动画可被看到) - 🏆 成就彩蛋:12 个隐藏成就(含 V1.2 新增"触底反弹":连续 3 轮出错后完成一轮无错对话),解锁时顶部 toast 提示 - 🍪 投喂系统:每完成 5 轮对话获得 1 个零食,点击投喂 → 开心咀嚼动画 + 随机气泡文案 - 📈 等级经验系统:经验每 10 点升 1 级,升级触发形态变化与成就;经验条独立 memo 组件 + CSS transition(UI 分级刷新:情绪动画事件级 / 经验条每轮 / 成就低频) - 🎨 自动适配 dsh 深浅色主题(跟随 --dsw-* 设计变量) - ⚙️ 设置页可配置:宠物命名、启停开关、动画速度 - 🔧 自检脚本(V1.2):`python3 scripts/verify_pet.py` 校验成就双表/状态枚举/CSS 动画/投影 schema 一致性,改代码后跑一遍防手滑 #### 软件架构 - **服务端**(lib/index.js):会话事件投影(sessionProjections),与官方 todo 插件同构——状态(含零食/连续轮数/错误数/连续错误数/当前工具/成就)从 turn/step/tool 等持久事件纯函数推导,绝不向事件流 emit 自定义事件(那会破坏模型请求解析) - **客户端**(lib/client.js):ModuleLoader 格式 bundle,注册到 conversation.input.dock 槽位(输入框上方),emoji 宠物 + 纯 CSS 动画,零图片资源;投喂/气泡/toast 为本地 UI 状态,不写持久投影 - **自检**(scripts/verify_pet.py):纯 Python 标准库,正则解析两端代码,6 项一致性检查 + 红线阈值提示 #### 安装教程 1. 将插件链接到 dsh profile 的 node_modules: ```sh ln -sfn /path/to/deepseek-pets /root/.dsh/profiles/node_modules/dsh-pet ln -sfn /root/.dsh/profiles/node_modules /path/to/deepseek-pets/node_modules ``` > Windows 用户:用 `mklink /J` 目录联接代替 `ln -sfn`,或直接 `cd profile && pnpm add ` 安装 2. 在 profile 的 cordis.patch.yml 挂载插件: ```yaml - insert: - id: pet name: dsh-pet ``` 3. 重启 dsh web 服务,进入工作区聊天即可看到输入框上方的宠物胶囊 #### 使用说明 1. 打开 dsh Web UI(默认 :3080),选择工作区并发送消息 2. 宠物会随对话状态自动切换情绪动画(思考/输出/出错/完成) 3. 工具报错时宠物低落并给出行动建议;连续 3 轮出错进入"卡住了"强化态;有错完成轮"如释重负",干净跑完才"超开心" 4. 工具调用时会显示对应工作动画:读文件📖翻书、跑命令⌨️敲键盘、写文件✏️、搜索🔍,工作→思考切换时气泡显示"我在想…" 5. 完成 5 轮对话后 🍪 按钮亮起,点击投喂宠物(本地动画,刷新后零食数由投影恢复) 6. 达成条件自动解锁成就(顶部 toast,含"触底反弹") 7. 在设置页的 "pet" 分组可修改宠物名字、启停、动画速度 8. 经验每 10 点升 1 级:🥚 蛋(Lv1-2)→ 🐣 幼体(Lv3-5)→ 🐥 成体(Lv6+),胶囊下方经验条实时显示进度 #### 成就列表 | 成就 | 条件 | |---|---| | 🏆 初来乍到 | 完成第 1 轮对话 | | 🏆 渐入佳境 | 累计完成 10 轮对话 | | 🏆 形影不离 | 累计完成 50 轮对话 | | 🏆 顺风顺水 | 连续 5 轮无错误 | | 🏆 无懈可击 | 连续 10 轮无错误 | | 🏆 第一次跌倒 | 遇到第 1 次错误 | | 🏆 愈挫愈勇 | 累计遇到 10 次错误 | | 🏆 小吃货 | 累计获得 5 个零食 | | 🏆 零食富翁 | 累计获得 20 个零食 | | 🏆 破壳而出 | 升到 3 级(幼体) | | 🏆 展翅高飞 | 升到 6 级(成体) | | 🏆 触底反弹(V1.2) | 连续 3 轮出错后完成一轮无错对话 | #### 开发自检 改动 lib/index.js 或 lib/client.js 后运行: ```sh python3 scripts/verify_pet.py ``` 检查项:成就双表 key 一致、状态枚举一致、CSS 动画全覆盖、投影 schema 与 defaultPet/客户端兜底/引用字段一致。退出码 0 通过,1 有发现,2 定位失败(代码格式可能变了)。 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### License MIT License,Copyright (c) 2026 Skiess