dsh-sensorium:为工作区智能体提供十种内感受状态

前言

在 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 一致):

  1. 自行推进:workspace_pulse 每 2 分钟采样;need 与 affect 每 5 分钟 settle,不依赖工具被调用。
  2. 按时间槽积分:离开 15 小时会走过三十个半小时间槽,安静槽衰减、活跃槽略作补充,而不是压成一次读数。
  3. 回填:首次启动无采样历史时,用文件 mtime 重建近 24 小时;断电不抹掉一整天的痕迹。
  4. 对话单独计数:插件监听 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——要被观测的项目目录。优先级从高到低:

  1. 在 profile patch 里按 id 覆盖,例如:
- id: sensorium-need-tension
  name: dsh-sensorium
  config:
    workspace: "/absolute/path/to/project"
  1. 环境变量 SENSORIUM_WORKSPACE
  2. 回退到宿主进程的 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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye