编辑与重新生成:树状分支不丢对话
对话不是链,是树
大多数聊天应用里,编辑旧消息意味着「覆盖」。Agora 的对话存储是消息树:编辑历史消息或重新生成回复,都会在树上长出新分支,旧分支原样保留。官方手册称之为「探索替代路径而不丢失上下文」。
三个入口
- 编辑消息:长按或菜单里选编辑,修改后发送——从该消息分出新支;
- 重新生成:对模型回复重新生成一次——同一问题获得新回答,存为兄弟分支;
- 分支切换:当某条消息存在多个版本时,界面出现分支控制,在兄弟分支之间来回移动。
典型用法:对比式提问
想比较两个模型的回答,或者对同一问题尝试两种问法:
- 发出问题,得到回答 A;
- 点重新生成,得到回答 B——A 没有消失,在另一条分支里;
- 用分支控制键在 A、B 之间切换查看;
- 满意哪条就沿哪条继续聊。
同样适合「提示词迭代」:改一次问法生成一次,几轮下来所有版本都在树上,随时回头取用。
配合生成的限制
生成过程中编辑/删除/重新生成会临时禁用(见发送与停止),等生成结束或停止后再操作。
数据层面
树结构存在本地 Room 数据库里,整棵树(所有分支)都算作这条对话的一部分:搜索、导出、备份都会带上。这意味着大胆开分支没有「历史丢失」的代价——代价只是上下文可能更长,必要时用Compact 胶囊压缩。