SuperAPI AI 工具集

handoff

智能体与模型

查看项目

更新于 10-16 10:10

技能介绍

用途

handoff 用于恢复当前工作目录中最近一次的智能体会话。当用户表达「where were we」「resume」等想要继续先前工作的意图时使用。它并不创建新的会话,而是把上一次会话的关键信息重新呈现出来,并优先抛出尚未回答的问题。

主要能力

  • 按工作目录定位最近会话:通过 memory_sessions 查询会话列表。
  • 召回关键概念:对会话的核心概念使用 memory_recall 获取相关信息。
  • 优先呈现未回答的问题:如果会话以一个未回答的面向用户的问题结束,会把该问题放在最前面。
  • 汇总输出:包括标题/摘要、关键文件、关键决策或错误。
  • 给出下一步:以一句具体的「next step?」结尾。

使用方式

可选参数 $ARGUMENTS 用于覆盖工作目录。

快速开始:

memory_sessions { "project": "<current-project-id>", "limit": 20 }

挑选 cwd 与当前项目匹配的最近会话,然后:

memory_recall { "query": "<session top concepts>", "project": "<current-project-id>", "limit": 10 }

当指定了 agent 时,两次调用传入相同的 agentId。

工作流:

  1. 解析项目路径:若给出 $ARGUMENTS,用 path.resolve(process.cwd(), $ARGUMENTS) 归一化为绝对路径;否则使用 cwd。
  2. 调用 memory_sessions:已知精确项目标识符时直接传入,请求时带上 agentId;否则沿 nextCursor 翻页,直到找到匹配目录或分页结束。翻页时保留过滤条件。
  3. 选择 cwd 归一化后按目录边界匹配的最近会话:相等,或 cwd.startsWith(projectPath + sep),或 projectPath.startsWith(cwd + sep)。优先选择 completed 而非 abandoned。
  4. 无匹配:直接报告该项目没有匹配的会话并停止,不要替换成其他项目的会话。
  5. 若会话以一个未回答的面向用户的问题结束,优先呈现。可在 summary 或最近对话观察中查找以 ? 结尾的叙述。
  6. 汇总:标题/摘要、关键文件、关键决策或错误;对最高概念使用 memory_recall,limit 10,并保留所选项目与 agent 范围。纳入前检查每条结果的 session 或 project 来源,单凭查询本身并不能保证范围。
  7. 以一句具体的「next step?」指引结尾。

预期输出示例:

Resuming 7f3a9c2 "Auth refresh rework".
Open question: should logout revoke all device tokens or just the current one?
Next step: decide revoke scope, then update auth/logout.ts.

适用场景

  • 用户想回到之前未完成的开发或分析任务。
  • 需要快速了解上次会话的进度、未决问题与后续动作。
  • 在多个项目目录之间切换后,需要准确恢复对应目录的会话上下文。

限制与注意事项

  • 按目录边界匹配,而非原始前缀匹配,以避免把兄弟仓库误认为当前项目。
  • 对空会话不得编造观察结果。
  • 反模式:session.cwd.startsWith(projectPath) 在项目为 /repo-a 时会错误匹配 /repo-a-staging,从而恢复错误仓库的会话。正确做法是 session.cwd === projectPath || session.cwd.startsWith(projectPath + sep)。
  • 检查清单:cwd 覆盖已解析为绝对且归一化的路径;匹配使用目录边界检查而非原始前缀;未回答的问题(如有)出现在响应最前;空会话需如实报告并提供重新开始的选项。
  • 参见:recap、session-history、recall,使用相同会话数据但视图更广。
  • 若 memory_sessions 或 memory_recall 不可用,参见 TROUBLESHOOTING.md。