前言¶
在 DeepSeek Harness(DSH)里给模型挂记忆类工具,常见问题是:工具在,模型却未必每轮想起来用;对话里的「记住这个」换会话就断档,也难以事后核对;若再叠加主动提醒,又容易在静默时段反复消耗 token。社区插件 dsh-soul-engine(维护者 zhaoguoqiang-hub,SkillHub 分类:记忆)走的是「状态面」路线:把长期状态落成本机明文 Markdown 账本,每轮把摘要注入系统提示词,本地定时器做零 token 自维护,可选心跳在确有事项时复用已有会话唤醒——成本与频率都写进配置与闸门里。
下面按定位、能力、安装、用法和注意事项说明,事实均来自插件 README 与 package 描述。
这是什么¶
dsh-soul-engine 是 DSH 的状态面插件,不是「再做一个聊天机器人」。它补三件事:每轮注入账本摘要,让主动性不依赖模型临时想起工具;记忆进可读、可 git 版本化的 Markdown 目录;心跳与预算看门狗让会花钱的自主行为可见、可关、可限频。
- 包名:
dsh-soul-engine(npm 当前版本 1.15.2,MIT) - 宿主要求:
dsh>= 0.1.1-rc.2,Node >= 22.3 - 平台:14 个工具、账本、轮首注入、自维护、右侧栏面板在 macOS / Linux / Windows 均可用;桌面通知与日历/提醒事项桥接仅 macOS,其他平台应关闭相关配置以免误用
核心功能¶
14 个 soul_* 工具¶
| 工具 | 作用 |
|---|---|
soul_init |
初始化账本(灵魂名 / 三条核心目标 / 空账本) |
soul_status |
总览:目标进度、叙事记忆、待办箱、画像,并给出「此刻最该主动做的」一条 |
soul_remember |
写入一条叙事记忆(含 selfState);pin 可进永久层 |
soul_goal |
内生目标账本:list / add / update / done |
soul_outbox |
主动待办箱:push(可带 dueAt)/ list / resolve |
soul_reflect |
规则层反思(零模型成本) |
soul_daily |
每日首聊三件事:brief / status |
soul_feedback |
正负反馈:record / list / report |
soul_memory |
账本审计(只读):list / get / search / recall / stats / archived / distill |
soul_forget |
记忆状态管理(可逆,不删原文):forget / restore / archive / unarchive / list |
soul_signal |
用户状态(能量 / 忙闲):record / status / clear |
soul_schedule |
macOS 日历 / 提醒事项:today / add / list |
soul_cost |
成本只读:report / days |
soul_maintain |
自维护:status / run(幂等) |
账本布局¶
默认目录为 $DSH_HOME/soul-data/(未设 DSH_HOME 时为 ~/.dsh/soul-data/),可用 config.dataFile 或环境变量 DSH_SOUL_DATA_FILE 覆盖。人可读部分在 memory/(适合进 git),运行计数在 runtime.json(不入 git)。插件会在维护 tick 中对账本目录做 git 提交;账本建议独立建仓,不放进项目仓库。
轮首注入¶
每轮组装提示词时注入账本摘要(主轴目标、待主动提的一条、最近记忆、纪律行)。关闭:config.promptSection: false 或 DSH_SOUL_PROMPT=0;字数上限 config.promptMaxChars(默认 1000),直接关联每轮常驻 token 成本。
自维护与心跳¶
- 自维护:默认每 5 分钟本地 tick,不调用模型——滞留待办作废、周报、叙事巩固/归档、账本 git 提交等。
- 心跳:仅在「真有事」(如 outbox 到点、可选的今日三件事未完成)且通过四道频率闸(安静时段、日/周上限、最小间隔)时,复用已有会话注入指令;新建会话不在设计路径内。整体关闭:
config.heartbeat: false。dailyBudgetYuan默认 0(关闭),设为正数可启用预算看门狗。
右侧栏¶
注册「灵魂」页签(待主动提角标),tab:概览 / 成本 / 记忆;数据来自宿主本地 GET /dsh-soul/state、GET /dsh-soul/memories;记忆 tab 可就地遗忘/撤销遗忘(POST /dsh-soul/forget),其余写入仅通过 soul_* 工具。
安装与启用¶
安装命令以 README 为准:
# 从 npm
dsh plugin --profile web add dsh-soul-engine
# 或从本地目录 / Git 仓库
dsh plugin --profile web add "file:/path/to/dsh-soul-engine"
dsh plugin --profile web add "github:<owner>/dsh-soul-engine"
确认 ~/.dsh/profiles/<profile>/package.json 的 dsh.profile.bundles 含 dsh-soul-engine,然后重启 DSH(bundles 在宿主启动时读取)。
验证:新会话调用 soul_status,应返回账本总览而非 unknown tool。
停用:从 dsh.profile.bundles 删除对应行即可,不必卸载包。
常用配置写在 cordis.patch.yml 的 config 中,例如 promptSection / promptMaxChars、maintenance / maintenanceIntervalMs、heartbeat 系列、dailyBudgetYuan、consolidate / retainMax / retainDays 等;环境变量含 DSH_SOUL_DATA_FILE、DSH_SOUL_PROMPT=0、DSH_SOUL_NOTIFY=0、DSH_HOME、DSH_COST_LEDGER。
典型用法¶
第一次使用建议按 README 快速开始顺序:
soul_init # 第一次:写下灵魂名 + 三条核心目标
soul_status # 每次都先看它:目标进度 / 最近记忆 / 待办 / 一条「此刻最该做的」
soul_remember # 值得记的事随手写一条
日常可配合 soul_goal、soul_outbox 管理目标与到点提醒;需要审计时用 soul_memory;用户要求遗忘时用 soul_forget(软删可恢复)。行动前 discipline 在注入段里也会提示:先 soul_status,听到偏好/边界/纠正当场 soul_remember。
适用场景与注意¶
适合谁:希望在 DSH 里维护跨会话、可 git diff 的私人记忆与目标台账,并愿意用少量轮首 token 换「每轮记得用工具」;需要可选、有上限的主动提醒,且接受心跳会消耗 token 的使用者。
安装前请知悉(README 安全披露摘要):
- 插件以当前 DSH 进程权限在本机读写
$DSH_HOME/soul-data/等路径,并可能调用git、macOS 上osascript;soul_cost读取成本账本;面板访问会写/tmp/dsh-soul-access.log。 - 宿主端不做出站联网;账本内容会进入模型上下文(注入段),请自行判断写入内容。
- 非 macOS 建议设
notify: false与schedule: false。 - 安装第三方插件即运行第三方代码,安装前应阅读源码与 MIT 许可证,自行评估信任边界。
DSH 生态理念是「一切皆插件」;SkillHub 目录页 为社区站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-soul-engine 把长期记忆做成明文 Markdown 账本、把「记得用工具」做成轮首注入、把维护与唤醒拆成零 token 本地 tick 与可关可限的心跳,并给出成本与遗忘的可操作界面。若要进一步核对行为与默认值,以仓库 README 与 cordis.patch.yml 为准。
- 目录页:https://www.skillhub.cn/plugins/zhaoguoqiang-hub/dsh-soul-engine
- GitHub:https://github.com/zhaoguoqiang-hub/dsh-soul-engine