Context Handoff
把“账号切换 / session 清理”和“项目上下文延续”拆开处理。
不要依赖聊天窗口历史天然保留;需要延续的内容必须落盘到本地文件。
使用目标
支持两类本地文件:
- 1. 会话级上下文:绑定某个具体聊天窗口/对话用途
- 项目级摘要:绑定某个项目本身,与具体聊天窗口解耦
推荐目录:
- - 会话级: INLINECODE0
- 项目级: INLINECODE1
何时使用哪一种
会话级上下文
当用户表达下面这些意思时,保存到:
- - “保存当前对话摘要”
- “把这个会话记下来”
- “切号前保存一下上下文”
- “下次回这个聊天框继续”
会话级文件建议命名:
如果拿不到系统级 session id,不要假装知道“当前聊天窗口是谁”。
让用户自己给一个 上下文槽位名,例如:
- - INLINECODE3
- INLINECODE4
- INLINECODE5
项目级摘要
当用户表达下面这些意思时,保存到:
- - “保存这个项目的进展”
- “记一下这个项目目前做到哪了”
- “以后恢复这个项目”
- “做个项目摘要”
项目级文件建议命名:
项目名由用户指定;如果没有指定,先问。
执行动作
A. 列出会话级上下文槽位
当用户要求列出已有会话级上下文时:
- 1. 查看目录:
-
/root/.openclaw/workspace/handoffs/sessions/
- 2. 列出其中所有
.md 文件 - 按文件最后修改时间倒序排序(最近更新的放前面)
- 返回时优先给出:
- 槽位名
- 最后更新时间
- 文件路径
- 5. 如果目录不存在或为空,明确告诉用户还没有已保存的会话级上下文
实现时优先使用能直接读到文件 mtime 的方式;不要按文件名排序来冒充“最近更新”。
B. 保存会话级上下文
当用户要求保存会话级上下文时:
- 1. 如果用户没有给
slot 名,先问一个简短问题:
- “要保存到哪个上下文槽位名?例如
main-chat /
oauth-switch-chat”
- 2. 生成结构化摘要,不要直接整段复制聊天记录
- 写入:
-
/root/.openclaw/workspace/handoffs/sessions/<slot>.md
- 4. 如果目录不存在,先创建
- 覆盖写入为最新版本(默认不做历史堆叠,除非用户明确要求追加)
推荐内容结构:
CODEBLOCK0
C. 恢复会话级上下文
当用户要求恢复会话级上下文时:
- 1. 如果没有给
slot 名,先问 - 读取:
-
/root/.openclaw/workspace/handoffs/sessions/<slot>.md
- 3. 用简洁方式把内容总结给用户
- 不要把整份 markdown 原样全贴,除非用户要求“完整显示”
D. 列出项目级摘要
当用户要求列出已有项目摘要时:
- 1. 查看目录:
-
/root/.openclaw/workspace/projects/
- 2. 列出其中
.md 文件 - 排除明显不是项目摘要的全局说明文件(例如通用 README,可按上下文判断)
- 按文件最后修改时间倒序排序(最近更新的放前面)
- 返回时优先给出:
- 项目名
- 最后更新时间
- 文件路径
- 6. 如果没有合适结果,明确告诉用户还没有已保存的项目摘要
实现时优先使用能直接读到文件 mtime 的方式;不要按文件名排序来冒充“最近更新”。
E. 保存项目级摘要
当用户要求保存项目级摘要时:
- 1. 如果没有给项目名,先问
- 生成结构化项目摘要
- 写入:
-
/root/.openclaw/workspace/projects/<project-name>.md
- 4. 默认覆盖更新为“当前项目最新状态”
推荐内容结构:
CODEBLOCK1
F. 恢复项目级摘要
当用户要求恢复项目级摘要时:
- 1. 如果没有给项目名,先问
- 读取:
-
/root/.openclaw/workspace/projects/<project-name>.md
- 3. 优先返回:
- 当前进展
- 已完成
- 下一步
- 风险 / 注意事项
写作要求
- - 用中文写摘要
- 以“恢复工作状态”为目标,不要写成长篇会议纪要
- 重点保留决定、文件、命令、下一步
- 不要把敏感 token、密钥、cookie、完整账号凭据写进去
回答风格
保存成功时
告诉用户:
- - 已保存什么类型(会话级 / 项目级)
- 保存到哪个文件
- 后续恢复该用什么关键词
例如:
- - “已把当前会话上下文保存到
handoffs/sessions/main-chat.md。下次你说‘恢复 main-chat 上下文’就行。” - “已把项目摘要保存到
projects/oauth-switch.md。下次你说‘恢复 oauth-switch 项目摘要’即可。”
恢复时
优先给用户一个压缩版恢复结果,例如:
必要时再补充文件路径和命令。
重要约束
- - 不要假设终端脚本知道“当前聊天窗口”是谁
- 如果用户没有提供槽位名或项目名,先问
- 默认覆盖更新,不要无限追加导致文件越来越乱
- 如果文件不存在,明确告诉用户“还没有保存过这份上下文”
上下文交接
将“账号切换 / session 清理”与“项目上下文延续”分开处理。
不要依赖聊天窗口历史天然保留;需要延续的内容必须落盘到本地文件。
使用目标
支持两类本地文件:
- 1. 会话级上下文:绑定某个具体聊天窗口/对话用途
- 项目级摘要:绑定某个项目本身,与具体聊天窗口解耦
推荐目录:
- - 会话级:/root/.openclaw/workspace/handoffs/sessions/
- 项目级:/root/.openclaw/workspace/projects/
何时使用哪一种
会话级上下文
当用户表达下面这些意思时,保存到:
- - “保存当前对话摘要”
- “把这个会话记下来”
- “切号前保存一下上下文”
- “下次回这个聊天框继续”
会话级文件建议命名:
如果拿不到系统级 session id,不要假装知道“当前聊天窗口是谁”。
让用户自己给一个 上下文槽位名,例如:
- - main-chat
- oauth-switch-chat
- project-a-thread
项目级摘要
当用户表达下面这些意思时,保存到:
- - “保存这个项目的进展”
- “记一下这个项目目前做到哪了”
- “以后恢复这个项目”
- “做个项目摘要”
项目级文件建议命名:
项目名由用户指定;如果没有指定,先问。
执行动作
A. 列出会话级上下文槽位
当用户要求列出已有会话级上下文时:
- 1. 查看目录:
- /root/.openclaw/workspace/handoffs/sessions/
- 2. 列出其中所有 .md 文件
- 按文件最后修改时间倒序排序(最近更新的放前面)
- 返回时优先给出:
- 槽位名
- 最后更新时间
- 文件路径
- 5. 如果目录不存在或为空,明确告诉用户还没有已保存的会话级上下文
实现时优先使用能直接读到文件 mtime 的方式;不要按文件名排序来冒充“最近更新”。
B. 保存会话级上下文
当用户要求保存会话级上下文时:
- 1. 如果用户没有给 slot 名,先问一个简短问题:
- “要保存到哪个上下文槽位名?例如 main-chat / oauth-switch-chat”
- 2. 生成结构化摘要,不要直接整段复制聊天记录
- 写入:
- /root/.openclaw/workspace/handoffs/sessions/
.md
- 4. 如果目录不存在,先创建
- 覆盖写入为最新版本(默认不做历史堆叠,除非用户明确要求追加)
推荐内容结构:
md
会话级上下文
- - 槽位名:
- 保存时间:
- 当前讨论主题:
- 已完成:
- 当前决定:
- 未完成 / 下一步:
- 关键文件:
- 关键命令:
- 备注:
C. 恢复会话级上下文
当用户要求恢复会话级上下文时:
- 1. 如果没有给 slot 名,先问
- 读取:
- /root/.openclaw/workspace/handoffs/sessions/.md
- 3. 用简洁方式把内容总结给用户
- 不要把整份 markdown 原样全贴,除非用户要求“完整显示”
D. 列出项目级摘要
当用户要求列出已有项目摘要时:
- 1. 查看目录:
- /root/.openclaw/workspace/projects/
- 2. 列出其中 .md 文件
- 排除明显不是项目摘要的全局说明文件(例如通用 README,可按上下文判断)
- 按文件最后修改时间倒序排序(最近更新的放前面)
- 返回时优先给出:
- 项目名
- 最后更新时间
- 文件路径
- 6. 如果没有合适结果,明确告诉用户还没有已保存的项目摘要
实现时优先使用能直接读到文件 mtime 的方式;不要按文件名排序来冒充“最近更新”。
E. 保存项目级摘要
当用户要求保存项目级摘要时:
- 1. 如果没有给项目名,先问
- 生成结构化项目摘要
- 写入:
- /root/.openclaw/workspace/projects/.md
- 4. 默认覆盖更新为“当前项目最新状态”
推荐内容结构:
md
<项目名>
- - 更新时间:
- 项目目标:
- 当前进展:
- 已完成:
- 关键决定:
- 风险 / 注意事项:
- 关键文件:
- 关键命令:
- 下一步:
F. 恢复项目级摘要
当用户要求恢复项目级摘要时:
- 1. 如果没有给项目名,先问
- 读取:
- /root/.openclaw/workspace/projects/.md
- 3. 优先返回:
- 当前进展
- 已完成
- 下一步
- 风险 / 注意事项
写作要求
- - 用中文写摘要
- 以“恢复工作状态”为目标,不要写成长篇会议纪要
- 重点保留决定、文件、命令、下一步
- 不要把敏感 token、密钥、cookie、完整账号凭据写进去
回答风格
保存成功时
告诉用户:
- - 已保存什么类型(会话级 / 项目级)
- 保存到哪个文件
- 后续恢复该用什么关键词
例如:
- - “已把当前会话上下文保存到 handoffs/sessions/main-chat.md。下次你说‘恢复 main-chat 上下文’就行。”
- “已把项目摘要保存到 projects/oauth-switch.md。下次你说‘恢复 oauth-switch 项目摘要’即可。”
恢复时
优先给用户一个压缩版恢复结果,例如:
必要时再补充文件路径和命令。
重要约束
- - 不要假设终端脚本知道“当前聊天窗口”是谁
- 如果用户没有提供槽位名或项目名,先问
- 默认覆盖更新,不要无限追加导致文件越来越乱
- 如果文件不存在,明确告诉用户“还没有保存过这份上下文”