dsh-simulated-life:为 DeepSeek Harness Agent 提供拟真生活上下文

前言

DeepSeek Harness(DSH)的 Agent 在执行任务时,通常只关注当前的对话上下文。如果 Agent 需要模拟一个拥有长期记忆的角色,或者需要在一个持续演化的世界里做出决策,现有的上下文机制就显得不够用了。

dsh-simulated-life 是一个插件,它为 DSH Agent 提供“拟真生活上下文”。每轮对话时,它会自动读取工作区近 24 小时内的“生活事件”并注入到上下文中。同时,它提供 life_react 工具,让 Agent 能够把感受、思考与行动回填到自己的生活日志里。这使得 Agent 能够“生活在”一个持续演化的世界中。

核心功能与行为

  • 自动注入:每轮对话的第一个 step(step === 1)会注入一次事件。如果该轮没有新事件或无变化,则静默跳过。
  • 时间窗口:只读取时间落在 [now − 24h, now + 5min] 内的事件,并按时间升序排列。
  • 智能去重:插件会对事件内容(含反应)计算 SHA-256 指纹。已注入的事件若内容未变化,不会重复注入。去重状态保存在内存中(LRU,上限 200 个会话)。
  • 零侵入:如果工作区没有 .life/ 目录,插件完全静默,不占用资源。读取失败或 JSON 损坏时,会逐个跳过,不影响其他文件。
  • 世界近况:会读取日期最新的 world_summary 一并注入。

安装与启用

通过官方命令安装:

dsh plugin --profile web add dsh-simulated-life

安装后,插件会自动挂载自带的 cordis.patch.yml 配置文件,无需手动修改配置。只要工作区存在 .life/ 数据,插件就会在每次对话中生效。

配置

在 DSH 的配置中启用插件并设置窗口时长:

- id: simulated-life
  name: dsh-simulated-life
  config:
    windowHours: 24   # 可选:事件回溯滑动窗口时长(小时,默认 24)
    enabled: true     # 可选:false 时完全停用

数据协议与用法

数据存储在 .life/<yymmdd>/events.json 文件中。

数据结构

每个日期目录下有一个 JSON 文件,包含 date、timezone、world_summary 和 events 列表。

{
  "date": "260915",
  "timezone": "Asia/Shanghai",
  "world_summary": "初秋微雨,市中心图书馆举办旧书市集,整座城市笼罩在湿漉漉的宁静中。",
  "events": [
    {
      "id": "evt-260915-001",
      "time": "2026-09-15T08:30:00+08:00",
      "type": "encounter",
      "title": "晨间雨中散步与偶遇",
      "description": "清晨去面包店买羊角面包时,在拐角处避雨遇到了老书店老板陈伯……",
      "actors": ["陈伯"],
      "location": "转角面包店外檐下",
      "impact": "获得了一把格子伞,得知了旧诗集情报",
      "react": {
        "feeling": "感到意外而温暖",
        "thought": "旧诗集很可能是绝版初版,下午有空去看看",
        "action": "向陈伯道谢并借了伞,决定下午前往集市",
        "updated_at": "2026-09-15T14:20:00+08:00"
      }
    }
  ]
}

工具调用

Agent 可以调用 life_react 工具来记录对某事件的反应。该工具会将反应写入对应事件的 react 字段(通过临时文件 + 原子重命名实现)。

配套工作流与注意事项

  • 世界演化:本插件本身不生成事件数据,而是作为读取端。世界演化需要外部 Skill(例如 create-simulated-events)来驱动。该 Skill 会读取昨日的反应做因果结算,生成今日事件并写入文件。
  • 权限:插件需要读写工作区权限。它只写入 .life/ 目录下的文件,不发起任何网络请求。
  • 依赖版本:插件依赖 @deepseek-ai/cordis 和 dsh-tools。根据 README,其版本号存在冲突(4.0.2 vs 4.0.4,0.1.2-rc.1 vs 0.1.7-rc.2),安装前需确认环境兼容性。
  • 适用场景:适合需要构建长期角色扮演、模拟数字生命或需要持久化生活日志的 Agent 应用。

总结

dsh-simulated-life 作为一个轻量级插件,解决了 Agent 缺乏长期生活背景的问题。它通过文件系统作为记忆层,实现了事件注入与反应回填的闭环。配合外部 Skill 使用,可以构建出具有持续演化能力的 Agent 世界。

目录:DeepSeek Harness 插件目录
仓库:GitHub

羽毛球分组比赛记分
小程序二维码

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

小夜