跳转到内容

分支对话

本指南介绍如何回到对话中较早的位置,并把它引向另一个方向——同时保留你离开的那条路径。

建立分支不写入任何内容。 对话是一棵消息树,末端有一个指针,回退只是移动这个指针。没有任何内容被删除,也没有任何内容被隐藏,切回去不过是再移动一次指针。

正因如此,在这里修改提示词并重新运行是安全的:你用来对比的那个答案仍然还在。

/tree

导航器会列出每条消息,并在每个分叉点缩进,当前路径标记为当前分支。从未分叉过的对话仍会像以往一样呈现为平铺列表——在有内容可导航之前,查看导航器没有任何代价。

每一行提供两个操作。

操作 效果
从此处继续 移动指针。你的下一条消息从该消息继续。
分叉为新对话 把通往该消息的路径复制到一个新对话中。
  1. /tree
  2. 找到你想重新开始的那条消息——通常是你最后满意的那条。
  3. 从此处继续。
  4. 输入新的提示词。

原来的后续内容仍在树中;/tree 现在会从那个位置显示两条路径,你可以在它们之间自由切换。

分叉会把该路径复制到同一个空间中的一个新对话里。当两个方向会持续分化,而你希望它们并排存在、而不是来回切换时,就用它。

副本拥有全新的消息 id。两个共享数据行的对话会互相显示对方后来的消息,而这恰恰是分叉要避免的情况。

它们是两种不同的工具,区别很重要。

还原 分支
后续消息 从转录中隐藏 在 /tree 中仍然可见
工作树 回滚到该回合的快照 不受影响
撤销 撤销还原会恢复该批次 把指针移回去

当智能体改动了你想要恢复的文件时,你要用的是还原。当对话走错了方向、而文件没有问题的时候,你要用的是分支。

还原同样会移动分支末端,因此你的下一条消息会从正确的位置继续,而不是从一个已经没人能看到的尾部继续。

写出一个自包含的 HTML 文件:包含整个对话,其中有可折叠的工具卡片,展示每次调用传入的内容和返回的结果。没有样式表、没有脚本、没有图床——它能从 U 盘里直接打开,五年后依然可用。

  • 桌面端: Documents/ControlCenter/exports/,带时间戳,因此第二次导出不会覆盖第一次。
  • 网页端: 由浏览器下载。

把转录以 markdown 形式复制到剪贴板,工具调用放在可折叠的块中。要粘贴到 issue 里的就是这个。

推理内容被有意排除在外:它是模型的草稿空间,而 bug 报告是由人来阅读的。

  • 对话历史 — 为什么树只是一次指针移动,以及“恢复”到底恢复了什么
  • 斜杠命令 — /tree、/export、/dump