agent-hop 跨工具续接会话

agent-hop 在本机搜 Claude Code、Codex 等会话,可 resume 或转到另一 Agent,保留 tool calls,本地运行。

agent-hop 跨工具续接会话

Claude Code 里讨论半天的重构方案,你想换 Codex 继续改,默认只能复制粘贴摘要。agent-hop 跨工具续会话怎么用?装 agent-hop 后在本机索引各 Agent 的会话存储,要么原样 resume,要么把上下文转换到另一个运行时。

作者CodePass 技术编辑

问题从哪来

Coding agent 越来越多:Claude Code、OpenAI Codex CLI、OpenCode、Pi、Grok Build 等各自把会话存在本机不同路径。工具之间没有统一的「导出会话 ID」协议,换工具等于开新线程,tool calls 历史、附件引用、中间结论全丢。

agent-hop(命令行短名 ah)做的是本地索引加转换层。100% 本地运行,不上传会话到第三方服务器。它读各 Agent 的本地存储,提供搜索、resume、跨 agent 迁移三种能力。安装后不必配置 API Key,hop 本身不调模型,只搬运已有会话文件。

安装与基本搜索

npm i -g agent-hop

装完后先熟悉搜索,不必立刻转换:

ah search "refactor auth module"

会在 Claude Code、Codex、OpenCode、Pi、Grok Build 等已支持的存储里模糊匹配会话标题或内容片段。输出包含 agent 类型、会话标识、时间线索,方便你确认要续哪一条。

支持的 agent 列表随版本增加,装前看 README 的 compatibility 表。未列出的 CLI 即使也用本地 json 存会话,agent-hop 也读不到,除非社区加了 adapter。Windows 与 macOS 路径不同,adapter 负责定位 %APPDATA%~/Library 下的各自布局。

原生 resume 与跨 agent 转换

同一 agent 内续聊最简单:

ah --agent claude --resume <session-id>

等价于在该 agent 自己的 UI/CLI 里打开旧会话,但你可以从统一入口搜索后再跳。

跨工具转换是核心卖点。下面示例来自 README,实际会话 ID 以 ah search 输出为准:

ah "continue implementing the JWT middleware" --agent claude --resume-in codex

含义:从 Codex 的某会话(或最近匹配)取上下文,在 Claude Code 里开续接。工具调用记录与附件引用会尽量保留,但不同 agent 的 tool schema 不完全一致,转换后第一轮仍可能要你确认文件路径或权限。OpenCode 与 Claude Code 互转时,还要核对 @ 文件引用在目标侧是否仍有效。

非交互模式适合脚本或 CI 旁路:

ah "run the tests mentioned above" --agent codex --non-interactive

具体 flag 名以仓库为准,--non-interactive 是否支持所有 agent 组合要看 issue。若报错「session not found」,先确认源 agent 版本与 hop adapter 匹配,再检查会话是否被 agent 自带清理策略删掉。

和 copy-paste 摘要比差在哪

手动粘贴「上文总结」会丢 tool calls 的顺序与原始输出,模型容易 hallucinate 已执行过的命令。agent-hop 尝试保留结构化历史,让新 agent 知道「哪条 bash 跑过、退出码多少」。

代价是格式耦合:源 agent 升级存储 schema 后,hop 可能要跟着更新。社区工具没有 SLA,生产依赖前先在分支会话上试转换质量。

Claude Code CLI 入门 里「单工具单会话」模型相比,agent-hop 是 meta 层。它不替代任何一个 agent,只解决「换马不换思路」的上下文搬运。

隐私与 token 注意

本地索引意味着 hop 会读取所有已支持 agent 的会话目录。共用机器上跑搜索会暴露别人留在本机的线程标题。多用户环境慎用,或限定用户 home。

转换后的首条消息往往很长,因为要把历史压进新窗口。这和 Agent 省 token 里说的「别把整段日志重复贴进上下文」有张力:必要时先让源 agent 产出短摘要,再 hop,而不是无脑全量转换。

支持的 agent 与存储位置

agent-hop 通过 adapter 读各 CLI 的默认会话目录。Claude Code 通常在用户配置树下;Codex 与 OpenCode 各有自己的 json 布局。README 里会列「已测试版本」,升级 Claude Code 后若 hop 搜不到新会话,先更新 agent-hop 到最新 tag。

搜索支持关键词与子串,不保证语义搜索。标题改过的老会话,若正文里没留关键词,要靠时间排序翻页。建议在重要长会话里让 agent 把标题改成可搜的项目名,方便日后 hop。

Pi 与 Grok Build 等较新的 CLI 适配进度看 release note。未支持的工具只能继续用各自原生 resume,或手动 export 文本再 import。hop 更新频率低于 Claude Code 本身,大版本升级后第一周别依赖跨 agent 转换跑生产任务。

适用场景

值得用:A 工具里 plan 完了,B 工具执行更强;某个 agent 429 限流,临时换另一个;对比同一任务在不同 CLI 下的续写质量。

不值得用:会话里含大量密钥输出、或 compliance 禁止跨工具导出上下文。此时开新会话只带 redacted 摘要更安全。

命令速查

意图 示例命令
模糊搜会话 ah search "auth refactor"
同 agent 续聊 ah --agent claude --resume <id>
跨 agent 转换 ah "continue tests" --agent claude --resume-in codex
非交互执行 ah "run lint" --agent codex --non-interactive

表内命令来自 README 归纳,flag 拼写随版本可能调整。第一次用建议先 ah search 确认能扫到本机会话,再试跨 agent,避免空转一轮长上下文。

若转换后 tool 名称对不上(Codex 叫 shell,Claude 叫 Bash),第一轮让 agent 列出可用工具再重发指令,比重复 hop 更省时间。长会话转换前可在源 agent 里执行 /compact 或等价压缩,减 hop 后首包体积。团队共用机器时,给 ah search 加项目名前缀过滤,避免扫到他人会话标题。

参考资料