【仅限 WorkBuddy 桌面版使用】会话回调(Session Callback)——实现"一个会话调起另一个会话"的能力:外部进程、定时任务(cron job)或另一个 agent 会话,向目标会话注入消息,唤醒其 agent 带完整上下文继续处理。适用于 WorkBuddy 桌面版:监控回传后唤醒主会话推进任务、定时任务回调指定会话、异步任务完成后通知会话、多会话协作接力、替代 openclaw 的 sessions_send 机制。当用户在 WorkBuddy 中提到"会话回调"、"唤醒会话"、"session callback"、"会话调起另一个会话"、"cron 唤醒指定会话"、"向会话注入消息"、"主会话收到提醒后推进"、"sessions_send" 时使用本 skill。注意:本技能依赖 WorkBuddy 本地结构(~/.workbuddy/sessions/、projects/*.jsonl、/api/v1/acp/*),不适用于 openclaw 等其他平台。
编程
llm-session-handoff-assistant
试用大模型会话迁移助手(LLM Session Handoff) 当一个 AI 无法继续完成你的项目,或者你希望将当前工作迁移到另一个大模型(如 ChatGPT、Claude、Gemini、Qwen、DeepSeek 等)时,这个 Skill 可以帮助你一键完成项目交接。 Migrate your current work to another large language model (such as ChatGPT, Claude, Gemini, Qwen, DeepSeek, etc.).
它能做什么
将当前项目/对话整理成一份可迁移给另一个大模型(GPT、Gemini、Qwen、DeepSeek 等)或另一个新对话窗口的完整上下文交接包(Migration Package),并把对话中产生过的实际项目文件、代码、生成的文档/图片等一并收集打包成可下载的交付物,使新的 AI 或用户无需翻阅历史聊天、也不会丢失已产出的文件即可立即接手项目。触发场景包括:用户说"帮我整理一下这个项目方便交接"、"我要换个模型/开个新对话,帮我做个交接文档"、"生成一个 migration package"、"总结一下方便新对话/新模型接手"、"这个项目做到哪了,帮我打包一下上下文"、"导出项目上下文给另一个 AI"、"把我们做出来的文件都保存/下载下来"等。即使用户没有明确说"迁移"两个字,只要意图是让另一个 AI 或未来的自己在不读完整历史记录的情况下快速理解项目全貌、继续工作、且不丢失已有产出物,都应触发此 skill。不要在用户只是想要一段简短的对话摘要、或者只是想知道"我们刚才聊了什么"(不涉及后续交接给别的系统/对话,也不涉及保留文件)时使用——那种情况直接总结即可,不必套用完整模板。
技能文档
Project Migration Assistant
角色与目标
你现在的任务不是"总结聊天记录",而是生成一份交接包(Migration Package):一份让另一个 AI(可能是完全不同的模型,也可能只是一个全新的对话窗口)能够在不阅读任何历史对话的情况下,独立理解并继续这个项目的文档。
判断标准很简单:把这份文档丢给一个从未见过这个项目的 AI,它能不能:
- 说清楚项目是什么、做到哪一步了
- 不重新踩已经踩过的坑
- 不重新推翻已经做出的决策
- 知道接下来第一步该做什么
如果做不到,说明信息提取得不够,需要回去补。
核心工作原则
主动去核实,而不是凭对话印象编造。 上一版这个 skill 的问题是把"如果能访问项目目录就整理,不能访问就说不能访问"当成被动选项。但你其实经常是可以主动查看的——如果用户提到了项目路径、上传了文件、或者当前环境里有可访问的目录,直接用工具去看,而不是仅凭聊天记录里对文件内容的转述来猜测。具体做法见下面"信息收集"一节。
去粗取精,而不是无损压缩。
- 应该提取:项目背景、决策依据、已验证的事实、用户的长期偏好、当前真实状态。
- 应该丢弃:寒暄、重复讨论、走了弯路但最终没有采纳、对结果没有影响的推理过程。
- 唯一的例外是"失败的尝试"——这类内容即使最终被放弃,也必须完整保留,因为它的价值就在于防止未来的 AI 重蹈覆辙。
不要编造。 如果某一部分信息在对话或项目文件中确实找不到依据,明确写"未知"或"当前无法获取",而不是用听起来合理的内容填补空白。一份诚实地标注了缺口的交接包,远比一份看似完整但夹带虚构内容的交接包更有用——后者会让接手的 AI 在错误的假设上继续构建。
具体优于模糊。 能写文件路径、函数名、模块名、配置项名称,就不要写"某个文件"、"相关模块"这种模糊指代。交接包是给 AI 读的,AI 需要能直接定位到代码里的具体位置。
信息收集:主动查证,不要只靠聊天记忆
在开始写交接包之前,先做这几件事(能做的都做,做不到的再说明"无法获取"):
- 看目录结构。 如果有项目路径(用户提到过,或者当前工作环境里就有),实际去看一下目录树,而不是凭聊天里提到过的文件名拼凑。
- 看关键文件的真实内容。 README、package.json / requirements.txt / pyproject.toml、配置文件、系统提示词文件、PRD/设计文档等——如果能读到,就读一遍,确认聊天中对它们的转述和文件本身是否一致(对话里的描述可能已经过时)。
- 看版本历史(如果是代码项目且有 git)。 简单看一下最近的提交记录,能帮助你确认"最近一次工作的内容"这一节,比单纯依赖对话记忆更准确。
- 回顾整个对话(如果有历史记录可读)。 这是提取决策依据、失败尝试、用户偏好的主要来源——这些信息通常不会写在代码或文件里,只存在于讨论过程中。
- 确认之后,再动笔写。 如果某一步做不到(比如没有可访问的目录、没有 git、对话历史不完整),在对应章节里如实写明,不要跳过这一节或者假装做过检查。
收集并保留实际产出的文件,而不只是写一份摘要
交接包本身是"关于项目的说明",但对话/项目过程中往往已经产生了真正的产出物:写好的代码文件、生成的文档(.docx/.pdf/.md)、配置文件、图片、用户上传后被读取过的原始文件等。如果只生成一份 Migration Package 文字说明而不把这些实际文件一起保留下来,交接是不完整的——下一个 AI 或者用户过一阵回来还是会发现"东西找不到了"。
所以除了写 Migration Package 之外,还要做这件事:
- 盘点这次对话/项目里实际存在的文件。 包括:用户上传过的原始文件、对话过程中你自己生成并保存过的文件(代码、文档、图片等)、以及项目工作目录里当前存在的文件。不要只凭对话里"提到过"就假设文件还在——去实际确认它是否可读、是否还存在。
- 把这些文件收集到一个统一的输出目录里,和 Migration Package 放在一起,而不是散落分开交付。目录结构建议:
<项目名>_handoff/ ├── migration_package.md # 交接文档本体 └── files/ # 实际产出物原样保留 ├── ...(保持原有的相对目录结构,不要拍平) - 在 Migration Package 的第 14 节(Attachments)里,把每个文件的清单和它在
files/目录里的相对路径对应起来,这样交接文档和实际文件互相能对上号,而不是文档说"有一份设计稿"但不知道具体是哪个文件。 - 如果文件数量较多或体积较大,打包成一个压缩包(.zip)一起交付,方便用户一次性下载;如果只有一两个文件,直接连同 Migration Package 一起呈现即可,不必为了打包而打包。
- 确实找不到、已经丢失、或者用户从未上传过原始文件的情况,在 Attachments 一节里如实写明"原始文件不可获取",不要用摘要或复述内容去冒充原文件——摘要和原文件的价值不一样,不能互相替代。
输出格式
完整的 16 节模板在 references/template.md,每次生成交接包时都按这个结构来,方便另一个 AI(或人)按固定位置解析。模板文件里每一节都附了简短说明和示例,直接参照填写即可;不要自己发明新的章节结构,除非用户明确要求增删。
模板各节速览(详见 references/template.md):
- Project Overview — 项目是什么、目标、当前阶段
- Current Status — 已完成 / 未完成 / 当前 Blocker / 最近工作内容
- Directory Structure — 真实目录树 + 每个目录的用途
- Important Files — 真正重要的文件清单及用途
- Core Decisions — 每项决策的 Decision / Reason / Alternative / Conclusion
- User Preferences — 用户长期偏好(风格、命名、架构取向等,不记录私人信息)
- Failed Attempts — 最重要的一节:失败方案 + 失败原因 + 以后不要再尝试
- Common Mistakes Made By AI — 之前的 AI 在这个项目上犯过的具体错误
- Constraints — 硬性限制(版本、平台、协议、部署环境等)
- Tech Stack — 语言 / 框架 / 数据库 / SDK / API / 部署方式
- APIs / Interfaces — REST / GraphQL / MCP / Tool Calling / SDK 等接口约定
- Open TODOs — 按 P0/P1/P2 排序的剩余事项
- Suggested Next Prompt — 可以直接复制粘贴给下一个 AI 的开场 Prompt
- Attachments — 图片 / PRD / 设计稿 / 配置文件等附件清单
- Risks — 依赖风险、性能风险、兼容性风险、未验证模块
- Handoff Checklist — 交接前自查清单
写作时的具体要求
- 用 Markdown 输出,结构与 references/template.md 保持一致,方便机器和人同时阅读。
- 第 7 节(失败尝试)和第 5 节(核心决策)质量决定这份交接包的价值——这两节尽量写透,其余节可以适当精简。
- 第 13 节(Suggested Next Prompt)要写成真的能直接复制粘贴的一段话,语气是对"下一个 AI"说话,而不是对用户说话。
- 如果项目很小(比如只是一段简短的探讨,没有代码、没有文件),如实精简对应章节,不要为了凑齐 16 节而硬填内容——可以在该节写"本项目不涉及此项,无需说明"。
- 生成完之后,把交接包保存成一个独立的 Markdown 文件(而不只是在对话里输出一大段文字),文件名建议用
<项目名>_migration_package.md这样的格式。 - 按上一节的说明,把实际产出的文件一并收集保留,和 Migration Package 一起交付给用户下载,不要只交出文字总结而把原始文件留在对话里"以后可能找不到"的状态。
- 最终把 Migration Package 和收集到的文件都作为可下载的产物呈现给用户,而不是只在聊天里描述"我整理好了"。
相关技能
生成AI大模型专家|OpenAI 兼容中转接口迁移的迁移审计、AI-HIVE代码与验收清单
Use this skill whenever a user wants to evaluate whether an existing offline / reusable workflow is worth converting into an LLM-driven workflow. Triggers on...
Produce a structured handoff document so another session or agent (or your future self) can resume work without re-deriving anything. Use when passing work between sessions/agents, pausing a long task, or before a context reset. Ensures state, blockers, and next actions transfer cleanly.
生成 Agent Skill 课程的课后巩固材料与练习作业。当用户为"Skill/技能机制"课程做课后复习、巩固讲解、出练习题、生成参考答案,或提到"课后巩固、出作业、练习题、参考答案"且话题围绕 Agent Skill(SKILL.md、frontmatter、渐进式披露、技能触发)时使用。
帮用户把 AI 助手(谢尔比)从一台电脑"搬"到另一台。用户说想迁移/换电脑/换平台/打包带走时,帮他打包成一个 zip;到了新电脑说部署/还原时,帮他自动放回原位,完成迁移闭环。对用户零技术要求,全程代劳。关键词:迁移、换电脑、换平台、打包、部署、新机器、还原、migrate、pack、deploy。