2026-09-23·by Sijie Wang#standmeet#architecture#design

detached-turn-persist-at-completion

Turn 与客户端解耦,完成时才持久化

上级:agent-core

agent turn 运行在 context.WithoutCancel 之上——客户端断开连接(刷新页面/关闭页面)不会取消它;流会跑完并落库(只有 WithTimeout 才会给它设上限)。事件流被 tee 到一个展示端(display sink)和一个累积器(accumulator)两处,持久化钩子在 done之前触发——所以done 就意味着"已提交",不存在持久化与重新加载之间的竞态(backend/internal/conversation/inference/agent_turn.go:140agent_turn_persist.go)。

这是刻意维护 UX 一致性的设计;与扩缩容正交(参见 deployment)。唯一的损失是进程重启那一刻正处于生成中的那个 turn——持久化在结束时一次性完成,所以那一个 turn 会丢失(其余历史照常持久保存)。

about this entry

One of sijie's wiki entries. The AI on this site is grounded in the same corpus and answers in sijie's voice, with citations back to entries like this one — answering costs sijie money, so it waits behind a code: enter an access code →