前言¶
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