尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

oh-my-pi /tree 会话树:跳转到历史对话点并从该处重新执行

发布时间:2026/9/12 3:00:47

资讯中心
01
ARTICLE

oh-my-pi /tree 会话树:跳转到历史对话点并从该处重新执行

oh-my-pi /tree 会话树:跳转到历史对话点并从该处重新执行
oh-my-pi /tree 会话树跳转到历史对话点并从该处重新执行【免费下载链接】oh-my-pi⌥ Coding agent with the IDE wired in项目地址: https://gitcode.com/GitHub_Trending/oh/oh-my-pi在 oh-my-piomp交互会话里对话一旦走了弯路——试错了方案、跑偏了几轮——往往不想丢弃整个会话重开而是回到某一条历史消息处重新执行。/tree命令就是干这个的它打开当前会话文件内的Session Tree会话树导航器让你跳到任意一条历史条目从那个点继续对话。参考文档见 docs/tree.md架构说明见 docs/session-tree-plan.md。需要明确一点/tree是同文件内的叶子移动in-file leaf move不是导出新会话。它把活动位置leaf指到选中的历史点后续追加的条目就从那里长出来旧分支的条目仍留在会话日志里只是离开了当前活动路径。/tree与相邻命令的边界选错入口会直接改变结果先分清这四个操作来自 docs/tree.md 的对照表操作作用范围结果/tree当前会话文件把 leaf 移到选中点同一文件/branch当前会话文件 → 新会话文件打开 transcript rewind 选择器目标是user消息时分支到新的会话文件其他目标则原地重定位 leaf/fork整个当前会话把会话复制成一个新的持久化会话文件/resume会话列表切换到另一个会话文件核心区别/tree是单个会话文件内部的导航/重定位工具/branch、/fork、/resume都会改变会话文件上下文。如果你的目标只是回到第 N 条消息换个问法再跑一次用/tree即可不需要动会话文件。打开会话树三种方式打开同一个选择器直接输入/tree。触发为app.session.tree动作配置的 keybinding。oh-my-pi 的用户键位映射存放在~/.omp/agent/keybindings.yml格式是动作 ID: 和弦的 YAML 映射见 docs/keybindings.md。例如要给app.session.tree绑定一个键就写入app.session.tree: CtrlT在空编辑器上按两次 Escdouble-escape。注意这个入口的行为由doubleEscapeAction设置控制取值rewind/none默认rewind见 docs/settings.md它打开的是全屏 transcript rewind 选择器会重放 transcript、框出 rewind 会落到的块user prompt 走branch()、其他条目走navigateTree()。它和/tree是相关但不完全相同的入口本文主路径以/tree为准。打开后可用/hotkeys查看当前构建实际生效的键位确认映射是否加载成功。在树选择器中导航、筛选与搜索选择器从会话条目的id/parentId指针构建树子节点按时间戳升序排列包含活动 leaf 的分支排在最前从根到 leaf 的活动路径用•圆点标出标签以[label]形式显示在节点文字之前。selector 以当前选中项为中心滚动显示行数为max(5, floor(terminalHeight / 2))。选择器内键位Up/Down移动选中项回绕AltUp/AltDown跳到上/下一个 user 或 assistant 轮次Page Up/Page Down或Left/Right翻页Home/End到可见列表首/尾Enter选中节点ShiftEnter直接请求总结并切换跳过总结选项提示Esc有搜索时先清空搜索否则关闭选择器CtrlC关闭选择器直接键入字符追加到搜索串Backspace删除搜索字符ShiftL搜索为空时编辑/清除当前节点的 labelCtrlO/ShiftCtrlO正向/反向切换筛选模式AltD/T/U/L/A直接跳到指定筛选模式筛选模式初始模式来自treeFilterMode设置默认default循环顺序为default→no-tools→user-only→labeled-only→alldefault显示对话节点隐藏label、custom、model_change、thinking_level_change等内部记账条目其他无专门渲染的条目类型如 service-tier、title、reset、mode 条目在现有代码中可能显示为空白行。no-tools同default另外隐藏toolResult消息。user-only只显示 role 为user的message条目——想快速定位我上次问了什么时用这个最省事。labeled-only只显示当前解析出 label 的条目适合配合书签使用。all完整时间线含所有内部记账/自定义条目。注意一个例外只含工具调用没有正文字的 assistant 消息在所有筛选模式下都隐藏包括all除非它是 error/aborted 消息或就是当前 leaf。搜索语义搜索串按空格分词匹配是模糊子序列且大小写不敏感的所有词必须同时匹配AND 语义。可搜索的文本包括 label、role 和类型相关内容消息文本、branch summary 文本、custom 类型、工具命令片段等。选中之后 leaf 落在哪里这一步直接决定从该处重新执行的效果。navigateTree按选中条目的类型计算新 leaf选中user消息新 leaf 移到该消息的parentId根级 user 消息则重置到根消息文本和图片附件会被重建为可编辑草稿并且只在编辑器当前为空时选择器才会写入该草稿。这就是重新执行的关键机制leaf 停在你发出那条消息之前的位置消息内容回到编辑器等你改完再发。选中custom_message普通自定义消息与 user 消息同样的父节点规则 文本预填skill-prompt类型的自定义消息不可编辑选中后和其他非 user 条目一样落在那条节点上。选中历史ask工具结果交互式/tree会重新打开原始问题 UI而不是复用旧答案取消则树不变新答案作为兄弟工具结果追加保留旧答案分支然后 agent 从新答案继续。若旧数据无法恢复原始问题退化为普通 leaf 移动。选中其他节点新 leaf 就是选中节点本身编辑器不预填。选中当前 leaf正常情况直接关闭并提示Already at this point——这条提示也是核对我选中的是不是当前点的可靠依据当前 leaf 若是ask结果仍允许重新作答流程。主路径从更早的 user prompt 重新执行这是 docs/tree.md 给出的标准操作流适用于保留当前分支不动从某条旧提问长出新分支输入/tree打开选择器。搜索或选中更早的那条 user 消息user-only筛选 搜索通常最快。按Enter在提示中选择No summary或按需选择总结见下节。此时若编辑器为空选中的消息文本及图片附件已作为草稿预填进编辑器——修改措辞。提交。效果新分支从选中点在同一会话文件内长出原分支完整保留。核对结果的方式切换完成后可见聊天会从新 leaf 路径重建再次打开/tree活动路径的•标记应该落在你刚选择的分支上而不是旧分支上。可选分支切换时附带分支摘要离开当前分支时若想让旧分支的关键信息以摘要形式留在上下文里先启用branchSummary.enabled默认false然后/tree选中目标节点选择Summarize或Summarize with custom prompt。效果在目标位置追加一条branch_summary条目后再继续。几个必须知道的约束ShiftEnter不受该设置控制直接请求总结并切换但无论哪种方式总结都要求有可用的模型和 provider 凭据缺失会在导航前失败。branchSummary.enabled开启后普通Enter会提供No summary/Summarize/Summarize with custom prompt三个选项总结提示里按 Esc 会重新打开树选择器。总结过程中 UI 显示 loaderEsc 绑定abortBranchSummary()总结被中止则导航取消、leaf 不变——这是安全的取消语义不会留下半移动的状态。请求了总结但没有可总结内容时导航照常进行只是不写 summary 条目。可选分支给关键节点打标签做书签适合经常在少数几个枢纽点之间跳转的长会话docs/tree.md 的 Bookmark workflow/tree打开选择器移动到目标条目按ShiftL设置 label留空则清除之后随时用AltL切到labeled-only筛选只在打了标签的节点间跳转。标签在树中以[label]前缀显示节点展示的是解析后的当前标签状态而不是原始 label 条目历史。另外若要检查default模式隐藏的内部条目按AltA切到all模式再用model、thinking、custom或标签搜索可以看到完整内部时间线。限制与核对要点/tree只在当前会话文件内移动 leaf不产生新会话文件需要新文件时用/branchuser 消息目标或/fork整会话复制。预填草稿的前提是编辑器为空编辑器里已有未提交文本时选中 user 消息不会覆盖它。总结流程依赖活跃的模型与 API key中止总结等价于取消本次导航。底层语义上分支不重写历史只改变下一次追加时 leaf 的指向docs/session-tree-plan.mdbranchWithSummary把 summary 条目挂在新导航位置而不是被放弃分支的末端。相关设置可在 docs/settings.md 中查treeFilterMode未分组键与doubleEscapeActionInteraction 组默认rewind的取值。【免费下载链接】oh-my-pi⌥ Coding agent with the IDE wired in项目地址: https://gitcode.com/GitHub_Trending/oh/oh-my-pi创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。