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