前言¶
在 DeepSeek Harness(DSH)里给智能体加「性格」或「内在状态」,常见做法是把长段 prompt 写进 profile。Prompt 不会在无人对话时自行演变,也不会在忙碌一天后慢慢回落;它也不消耗真实时间。若你希望 agent 的状态随文件活动、时钟和真实对话积分与衰减,且完全不调用模型,就需要可计算、可持久化的状态层。dsh-sensorium 把这一层做成一个 npm 包:一次安装、一份 patch、十行插件定义,十种内感受各自独立写状态文件。
这是什么¶
dsh-sensorium(npm 包名 dsh-sensorium,当前版本 0.1.1,MIT 许可证)由 Bao · E-1021 维护,仓库位于 github.com/ztan4706/dsh-sensorium。它面向「住在某个 workspace 里的 agent」:通过指数衰减、时间积分,以及来自文件 mtime 与真实会话的信号,维护十种确定性内感受;DSH 进程不在场时,时间仍会在这些状态里推进。
宿主要求:node >= 20,dsh >= 0.2.0 且 < 0.4.0-0(见 package.json 的 engines)。
核心功能¶
下面介绍十种 sense 各自对应的工具与观测对象(资料中的表格,此处按阅读顺序归纳)。
| 序号 | Sense | 工具名 | 追踪内容 |
|---|---|---|---|
| 01 | workspace_pulse | sense_workspace_pulse |
工作区忙闲:近 30 分钟变更、安静分钟数、24 小时采样序列 |
| 02 | time_sense | sense_time_sense |
时钟、日相位、深夜标记 |
| 03 | affect_core | sense_affect_core |
效价 / 唤醒 / 支配度,向基线衰减 |
| 04 | need_tension | sense_need_tension |
连接 / 刺激 / 完结需求,随时间积分,由真实对话喂养 |
| 05 | expression_bias | sense_expression_bias |
语气 / 主动度 / 面具 |
| 06 | silence_gate | sense_silence_gate |
是否开口——沉默也是合法输出 |
| 07 | residue_trace | sense_residue_trace |
情绪余味;强事件 linger 更久 |
| 08 | unresolved_weight | sense_unresolved_weight |
未闭环事项随年龄变重(唯一可接收输入的 sense) |
| 09 | body | sense_body |
姿态、尾巴、耳朵、手——仅在变化时展示 |
| 10 | face | sense_face |
眼、眉、口与一处藏不住的细节 |
时间机制要点(与 README 一致):
- 自行推进:workspace_pulse 每 2 分钟采样;need 与 affect 每 5 分钟 settle,不依赖工具被调用。
- 按时间槽积分:离开 15 小时会走过三十个半小时间槽,安静槽衰减、活跃槽略作补充,而不是压成一次读数。
- 回填:首次启动无采样历史时,用文件 mtime 重建近 24 小时;断电不抹掉一整天的痕迹。
- 对话单独计数:插件监听
agent/inbox/claimed;来自本 workspace 的消息只影响 connection 与 stimulation,文件变更不再冒充「有人在和你说话」。
状态写入目录:<workspace>/.dsh/sensory/,每个 sense 只写自己的状态文件。公式与参数见仓库 docs/design.md;与其他插件组合的风险与自检清单见 docs/compatibility.md。
安装与启用¶
先做安装,再显式配置 workspace,最后重启 DSH(插件模块按 URL 缓存)。
官方安装命令(公开发布包):
dsh plugin --profile <your-profile> add dsh-sensorium
安装后,十行 sense 会一次性写入该 profile 的 patch 层。完成后重启 DSH。
配置¶
十种 sense 共用同一个 workspace——要被观测的项目目录。优先级从高到低:
- 在 profile patch 里按 id 覆盖,例如:
- id: sensorium-need-tension
name: dsh-sensorium
config:
workspace: "/absolute/path/to/project"
- 环境变量
SENSORIUM_WORKSPACE - 回退到宿主进程的
process.cwd()
第三种仅作回退。README 说明:在 DSH 内宿主 cwd 常常是 app 或 profile 目录,状态会写到错误位置;自 0.0.1 起在此情况下会打印控制台警告。实际使用应显式设置 workspace。
若只需要部分 sense,可按 id 禁用其余项:
- id: sensorium-face
disabled: true
典型用法与自检¶
agent 侧通过各 sense 注册的工具(如 sense_workspace_pulse)读取当前状态;具体调用方式遵循 DSH / Cordis 的插件工具约定。仓库提供两条自检命令,用于验证时间是否真的在走、以及十种工具是否像宿主一样全部注册:
node tests/selftest.mjs # cross-sense regression: does time actually pass?
node tests/apply-smoke.mjs # apply all ten like the host does; ten tools must register
适用场景与注意¶
适合谁:需要在 workspace 内长期驻留、且希望内在状态随时间与真实交互变化、又不想为「性格」反复烧模型的 DSH 开发者。
权限与审阅:插件以当前 DSH 进程权限运行,会读写你配置的 workspace 下的 .dsh/sensory/ 并监听 inbox 路径。安装前请阅读仓库源码与 MIT 许可证,确认路径与数据落盘位置符合你的安全策略。
资料中写明的限制:
activity_level代理的是文件活动,不是对话;对话单独追踪且只喂养 connection 与 stimulation。- 消息是否属于「本 workspace」依赖 session 的 cwd;无法解析时,每条消息都会计入。
- 无 UI,只有状态与工具。
- 各插件文件顶部的常数是人为选取的,改数字即改节奏。
DSH 生态强调「一切皆插件」;社区目录站点 skillhub.cn 与 DeepSeek / 幻方无官方从属关系,本文不以「官方应用商店」表述。
结尾¶
dsh-sensorium 用一份 patch、十个 sense、零模型调用,把「时间流过 agent 身体」做成可持久化的计算状态。若你要在工作区里试装,可从目录页或 GitHub 查看说明与 CHANGELOG,安装命令以 README 为准。
- 目录页:https://www.skillhub.cn/plugins/ztan4706/dsh-sensorium
- GitHub:https://github.com/ztan4706/dsh-sensorium