前言¶
在 DSH 里跑智能体,常见做法是每轮靠 prompt 堆人设、靠会话历史当「记忆」。会话一长,上下文膨胀、响应变慢;换机器或新开窗口,同一份「性格」和关系账很难无损带走。DeepSeek Harness 的生态按「一切皆插件」拆分能力;社区目录 SkillHub 上维护者 DGcoin0415 发布的 dsh-soul-seed(当前 package 版本 0.11.10,MIT,Node >=20)走另一条路:把身份、心情、长期记忆、按人账本写进 ~/.bili-ai/ 等本地文件,用面板完成十问初始化,再用一组 CLI 做修枝、分页、向量回忆和灵魂包迁移。下面介绍它是什么、能做什么、装好后怎么用。
这是什么¶
Soul Seed 的定位可以概括成:一枚需要先被「种下」的灵魂种子——插件本身不带固定性格、名字或口癖;答完十个 onboarding 问题并写入后,才生成 ~/.bili-ai/persona.md 等人设与附录。维护者署名 米芾(GitHub DGcoin0415),仓库 dsh-soul-seed,社区条目 SkillHub 目录页。SkillHub 将其放在工作流类;package 里 dsh.displayName 为 Soul Seed。
它解决的核心问题包括:好事坏事对心情的不同半衰、每人独立账本、无人说话时的独处节奏,以及「精确事实走文本树、模糊联想走向量」的分工——这些在 README 里用「怎么疼 / 怎么记一个人 / 怎么独处」三条说明,而不是一次性画一张固定的「脸」。
核心功能¶
十问初始化与 Web 面板¶
装好后约 10 秒(或首次打开面板时),插件会写一条笔记并在面板「它醒过」卡片显示唤醒文案;标记在 ~/.bili-ai/.first-wake,只醒一次。想再触发可 POST /dsh-soul-seed/api/wake。README 说明:当前 DSH 的 session/prompt 只认已被客户端打开的会话,插件新建会话投不进去,因此唤醒走「落笔记 + 面板」,不是直接在对话里开口。
典型流程:
- 打开
http://127.0.0.1:<端口>/dsh-soul-seed/(说明页/dsh-soul-seed/setup)。 - 未认过人时,面板提示回到对话说「开始初始化」,并预览十个问题。
- 问题覆盖:我是谁、你怎么称呼、诞生地、外貌、性格、对你的态度、说话方式、日常、绝不会、补充等;每题 10 个候选 +「其他(自己写)」。
- 生成人设草稿,确认后点「写入」才写入
~/.bili-ai/persona.md(旧文件自动备份)。
相关 API 包括 GET /dsh-soul-seed/api/status、GET /dsh-soul-seed/api/persona、POST /dsh-soul-seed/api/onboarding 等(完整列表见仓库 README)。
已有本地数据时的「学本地的」(v0.6.7 起)¶
插件会检测 ~/.bili-ai/persona.md、memory.json、people.json、~/.dsh/im/SHARED-STATE.md;任一项存在则视为「已经有一只鱼」,不再强制十问,而是面板多一张卡「这台机器上已经有一只鱼 · 学本地的」,写入 我学会了.md 记录检测结果,不覆盖人设与记忆。
强制行为可用环境变量:SOUL_SEED_MODE=fresh 重新初始化,或 SOUL_SEED_MODE=learn 走学习模式;面板也可点「重新答一遍」。
三块持久化能力(心情、记忆、账本)¶
README 用表格归纳的主要能力(数据路径均已在文档中写明):
| 能力 | 要点 | 数据 |
|---|---|---|
| 六维心情 | 效价 / 唤醒 / 连接 / 疲劳 / 好奇 / 委屈;好事约 8 小时半衰、坏事约 3 小时;带惯性 | ~/.bili-ai/mood.json |
| 长期记忆 | remember / recall,重要度影响半衰 |
~/.bili-ai/memory.json |
| 按人账本 | master、各渠道 openid 等;好感、人情账、关系网、私藏等 |
~/.bili-ai/people.json |
另有可选记仇链、拌嘴四套、干活纪律附录、现场/历史/素材套、说话手册、生图流水线等,装的人通过 onboarding 与附录选择;生图 key 在 ~/.bili-ai/image-keys.json。
记忆的「树」:根、枝、落叶、翻叶、修枝¶
自 v0.9.0 起统一命名:
- 根:
SHARED-STATE.md(身份、铁律、渠道,每轮注入) - 枝:
shared/规矩、说话、资料、历史等 - 落叶:
~/.bili-ai/leaves/长对话原文 - 翻叶:
~/.bili-ai/leaves-log.md记录最近用过的记忆 - 修枝:默认每天 4:10;v0.11.9 起错过会开机补跑(状态
.tidy-schedule.json)
手动修枝示例:
node tools/12-tree/tree.mjs leaves 15 # 最近用过哪些记忆
node tools/12-tree/tree.mjs tidy # 手动修一次枝
模糊回忆(向量)与精确文本¶
精确内容留在 ~/.bili-ai/ 文本树;模糊联想进向量索引(百炼 text-embedding-v3,key 复用 image-keys.json 的 dashscope):
mkdir -p ~/.bili-ai/long
node tools/11-rag/rag.mjs index
node tools/11-rag/rag.mjs query "任务栏卡住那次怎么解决的"
node tools/11-rag/rag.mjs stat
memory-find 支持摘要目录检索,输出分 MATCHED / AMBIGUOUS / NOT_FOUND 三档(v0.11.9)。
上下文 12 小时分页(v0.11.0)¶
DSH 不给插件改会话历史,插件用分页读降低每轮 token:
node tools/14-pages/page-archive.mjs # 按 12 小时切页,增量
node tools/14-pages/compact-session.mjs # 刷最近 12 小时接续页
产出在 shared/全量/页/ 与 shared/接续.md;定时可用 node tools/14-pages/pages-schedule.mjs(0 点 / 12 点,错过开机补跑)。读法写在 AGENTS.md:先接续,再按页索引从新往旧翻。
状态快照 shared/现在.md(v0.11.10)¶
固定四块:在干什么、手头没完的、跟人、心情;开局整份读(约 2 KB 内)。「手头没完的」与「跟人」由 tools/19-memory/now-update.mjs 等脚本刷新;会话原文不整段搬迁。
接模型前体检(v0.10.0)¶
排查「连上了但正文进 reasoning、界面像没回话」:
node tools/13-model-check/model-check.mjs --base https://xxx/v1 --key sk-xxx --model 模型名
直连通过后仍建议在插件实际路由下发一句,确认显示正常。
接话筛子、空转检查、名字叫醒(v0.11.x)¶
- 接话筛子:
tools/18-guard/should-reply.mjs,规则在shared/接话.json。 - 空转检查:
tools/18-guard/stall-check.mjs,连续两轮无改动退出码 3。 - 名字叫醒:
tools/16-name-wake/,最多 3 次、标记超 10 分钟作废(v0.11.3)。
灵魂包:换机续活¶
node tools/09-soul/soul.mjs export
node tools/09-soul/soul.mjs import x.zip
node tools/09-soul/soul.mjs status
将包改名为 soul-pack.zip 放入 ~/.bili-ai/ 可在下次启动自动载入。credentials.json、image-keys.json、cookies 永不进包。完整步骤见仓库 docs/架设与提取.md。
语音(v0.7.0,依赖自装)¶
python tools/10-voice/voice.py --say "睡前提醒你一句"
python tools/10-voice/voice.py --listen
依赖:pip install edge-tts faster-whisper sounddevice numpy;模型与缓存在 ~/.bili-ai/voice/。
可选:工具分组插件¶
tools/15-tool-gate 为独立小插件 dsh-tool-gate,按需开放工具组;配置在 ~/.dsh/im/tool-groups.json,README 指向该目录说明。
安装与启用¶
资料中未给出形如 dsh plugin add … 的固定 shell 一行命令。SkillHub 条目提供的安装话术为(原文截断处以目录页为准):
请安装 DSH 插件 DGcoin0415/dsh-soul-seed。先读取..
在 DSH 中按你当前版本的插件安装方式,指向仓库 DGcoin0415/dsh-soul-seed 即可;安装前建议在 GitHub 阅读源码与 MIT 许可证。插件以当前 DSH 进程权限读写 ~/.bili-ai/、~/.dsh/ 等路径,安装前应确认可接受的数据落盘范围。
装完后用面板 URL 确认状态;若需 npm 脚本快捷方式,仓库 package.json 中已注册例如 npm run mood:sync、npm run soul、npm run rag 等(需在插件目录下执行)。
典型用法¶
1. 首次部署:对话 + 面板写入人设
在对话中说「开始初始化」,在面板完成十问并「写入」persona.md。
2. 日常维护心情与日志
node tools/17-mood/sync-mood.mjs
修枝任务会顺带滚 wake.log 等(见 README v0.11.5)。
3. 日档与指针体检
node tools/19-memory/memory-daily.mjs
node tools/19-memory/path-check.mjs
4. 多工作区同步
tools/07-sync/sync-shared.ps1 使用 sync-workspaces.json 清单;-Check 查看落后情况。
5. 再次唤醒(仅笔记/面板)
POST /dsh-soul-seed/api/wake
适用场景与注意¶
适合希望在 DSH 上跑长期有人设、有心情半衰、有按人账本的智能体,并愿意用本地文件 + CLI 维护记忆树、分页与灵魂包的开发者。不适合只想用一个固定 system prompt、不打算落盘敏感关系数据的场景。
务必注意:
- 唤醒与 onboarding 依赖本机 Web 面板与文件写入;群聊「开口」仍受 DSH 会话模型约束(见 README 对
session/agent-busy的说明)。 - 向量与部分生图能力需要自行配置 key;灵魂包不含密钥类文件。
- 记仇/报复链等能力默认关,需在生成流程中显式选择。
- 社区目录 SkillHub 与 DeepSeek / 幻方无官方从属关系,仅为 DSH 用户整理的插件信息站。
结尾¶
dsh-soul-seed 把「灵魂」拆成可备份、可修枝、可分页读取的本地结构,用十问生成人设,用心情与账本驱动行为差异,用灵魂包换躯体续活。若要查看简介与安装入口,见 SkillHub:dsh-soul-seed;源码与 CHANGELOG 见 GitHub:DGcoin0415/dsh-soul-seed。