
如何用 GitButler but agentlog skim 快速浏览分支上之前的 Agent 会话并恢复上下文【免费下载链接】gitbutlerThe GitButler version control client, backed by Git, powered by Tauri/Rust/Svelte项目地址: https://gitcode.com/GitHub_Trending/gi/gitbutler你接手一个 GitButler 分支时可能不知道之前的 Agent 会话在这个分支上讨论过什么、做过什么改动、留下什么结论。GitButler CLIbut的but agentlog skim命令可以把分支上捕获到的所有 Agent 会话按时间顺序压缩成一份目录视图帮你快速恢复上下文而不用翻完整转录。前提是你已安装 GitButler CLI在一个应用了 GitButler 分支的 Git 仓库中操作且该分支之前已有被捕获的 Agent 会话记录捕获由but agentlog hook完成它从 hook 输入读取转录并写入本地 Agentlog 元数据支持的 Agent 见--agent参数可选codex或claude。skim 输出的是什么什么时候已经够用skim是压缩版目录相关会话和会话内的每一个 turn 都会出现按时间顺序排列但每个 turn 只做缩写不是完整转录。输出包含以下部分目标行Skim for branch target-key标明本次按哪个目标发现会话覆盖统计显示了多少相关会话、多少个 turn、其中多少个与该目标直接相关每个会话的块turn 数、记录数、最后捕获时间、状态local-only或published每个 turn 一行时间、记录数、自动标签如implemented、decided、reviewed、tested、renamed、installed、next以及user: .../assistant: ...预览结尾固定提示This is a skim: all related sessions and turns, abbreviated. For exact detail, use but agentlog show session --turn turn from JSON output.官方技能文档SKILL.md给出的判断原则是如果skim的信息足以回答一个轻量状态问题直接基于它总结并停止只有当skim太薄、含糊、缺少动机why、或你需要精确证据时才继续下钻。主路径在当前分支上运行 skim不需要先跑git branch --show-current之类的命令——不带参数时skim会自动发现当前应用的 GitButler 分支内部通过but --json status解析but agentlog skim两种结果找到了会话输出以Skim for branch target-key开头随后是会话列表。这时你可以通过每个 turn 的预览和标签判断之前做过什么、结论是什么没有会话输出No related agent sessions found.说明该分支下没有可关联的捕获会话。此时如果怀疑是目标发现出了问题用but status检查 GitButler 状态。注意agentlog子命令在 CLI 帮助树中是隐藏的直接输入命令即可使用不要依赖顶层 help 去发现它。skim 不够时用 JSON 取 handle再用 show 下钻人类可读的skim输出默认不打印 session/turn 的完整标识这些 handle 只存在于 JSON 输出里。需要下钻时按文档流程操作# 重新以 JSON 运行 skim从结果中取 session_key 和 turn_key but --json agentlog skimJSON 中每个会话保留完整session_key每个 turn 保留完整turn_key同时target_kind、target_key、coverage、sessions[].turns等字段与人类输出对应。然后# 按 turn 粒度查看一个会话发生了什么 but agentlog show session-key --limit 20 # 查看某一个 turn 内部的精确记录 but agentlog show session-key --turn turn-key --limit 20show不带--turn时回答这个会话里发生了什么turn 粒度带--turn时回答这个 turn 内部精确发生了什么记录粒度包含timestamp、kind、role、text、tool_name、tool_input等字段。--limit默认 20只有当当前窗口没有覆盖到相关 turn 或 setup 时才调大。技能文档同时提醒不要对每个候选会话都 dump 记录从show session-key --limit 20开始、总结预览即可。指定其他目标branch / review / change只有当用户明确给出目标时才传目标参数否则一律先跑不带参数的skimbut agentlog skim branch branch-name-or-ref but agentlog skim review review-id-or-pull-request-key but agentlog skim change change-id-or-key三者分别对应 GitButler 的分支引用、reviewpull/merge request 形态和 change id 目标。技能文档明确要求不要用普通 Git 的gitbutler/workspace分支作为 agentlog 目标。边界与限制skim是完整但缩写包含每个相关会话和每个 turn但不包含每条记录也不是完整转录。引用时应该说以缩写形式浏览了完整 turn 历史而不是说恢复了完整上下文。裸仓库bare repo不支持默认分支发现skim不带参数时需要可解析的 workdir但显式指定branch等目标的 skim 和show可以读取裸仓库元数据。skim会读取local-only和published两种状态的会话输出中每个会话都会标注状态。匹配到的会话应视为相关证据而非归属——表述上用与分支 X 相关的会话而不是分支 X 的会话。【免费下载链接】gitbutlerThe GitButler version control client, backed by Git, powered by Tauri/Rust/Svelte项目地址: https://gitcode.com/GitHub_Trending/gi/gitbutler创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考