DeepSeek Harness 会话与记忆:持久化与会话恢复
2026-08-16 12:57:28阅读 2
"关掉页面,agent 做了一半的活会丢吗?"——不会。DSH 的会话是持久化的:每一步都被记录下来,随时可以恢复继续。这一篇讲清楚它怎么存、存哪、怎么恢复,以及"记忆"到底指什么。
会话落盘在哪
默认在 $DSH_HOME/sessions($DSH_HOME 默认 ~/.dsh,目录全貌见 安装详解:目录结构、升级与卸载)。
每个会话一份日志,记录完整过程:你发的每句话、agent 的每一步动作、每次工具调用的输入输出。所以备份 ~/.dsh 就等于备份了所有对话历史。
记录方式:事件溯源(日志是唯一真源)
DSH 不存"当前状态快照",而是存事件序列——像会计记账,只追加、不改写:
[用户发消息] → [agent 读文件] → [agent 跑命令] → [agent 回复] → ...好处很实在:
- 完整可追溯:任何时候都能回放"agent 到底干了什么"
- 崩溃不丢:已经记下的事件都在,最多丢最后没写完的一步
- 可审计:对要求"每一步有记录"的团队场景很友好
你在 Python SDK 快速上手 里见过的 JSONL 日志就是这个机制:组装后的模型请求和每次工具调用,都写在会话日志里。
恢复会话:接着上次继续
Web UI 里打开历史会话就是恢复。底层机制是按会话 ID 重新加载日志、重建上下文,agent 从上次断点接着干。
恢复的两个关键行为:
- 轮次编号、对话历史从日志继续——不是开新对话
- 中途被打断的最后一轮,系统会用合成事件把它干净地收尾(标记为"被打断"),不会留一个"半截轮次"污染后续
"记忆"到底是什么:别被这个词骗了
很多工具宣传"AI 有记忆",DSH 里的"记忆"要分清三种东西:
| 概念 | 是什么 | 在哪 |
|---|---|---|
| 会话历史 | 本次对话的完整记录 | 会话日志 |
| 工作区指令 | 你写给 agent 的长期规则 | AGENTS.md(见下一篇) |
| 对话压缩(compaction) | 上下文太长时的自动摘要 | 会话内部机制 |
DSH 的"记忆"核心是前两者。对话太长超出模型上下文窗口时,压缩机制会把早期内容摘要化,腾出空间——这意味着极长会话里,最早期细节可能变成摘要而非原文,排查问题时要留意这一点。
常见问题
| 问题 | 解答 |
|---|---|
| 会话能保存多久? | 只要~/.dsh 不被删,一直在 |
| 恢复后 agent 记得之前的文件改动吗? | 记得。改动真实发生在工作区,会话记录完整过程 |
| 两个会话能"共享记忆"吗? | 会话之间相互独立;跨会话规则用 AGENTS.md 实现(见下一篇) |
| 上下文爆了怎么办? | 压缩机制自动摘要早期内容;也可以主动开新会话 |
接下来读什么
- 跨会话的长期规则 → AGENTS.md:项目指令文件怎么写
- 会话压缩与上下文管理 → 工具清单:内置工具与执行流水线
- agent 的"上岗手册" → 系统提示词:Persona 与变量机制
---
← 上一篇:3.1 Agent 循环:会话、轮次与步骤 | 下一篇:3.3 系统提示词:Persona 与变量机制 →
↑ 返回 教程总目录



.jpg)