perf: 优化 Agent 流式会话处理

- 合并流式通知与持久化写入,限制浏览器会话缓存

- 增量投影轮次事件并稳定关联异步工具任务
This commit is contained in:
2026-07-27 19:41:11 +08:00
parent 5497931abd
commit b08eb009bb
10 changed files with 539 additions and 47 deletions

View File

@@ -114,6 +114,7 @@ export function useAgentTryoutStream() {
const sessionChanged = activeSessionId !== sessionId;
activeSessionId = sessionId;
if (!rawRounds || sessionChanged) {
rawRounds?.flush();
rawRounds = useAgentTryoutRawRounds({
mode: 'draft',
sessionId,
@@ -174,12 +175,18 @@ export function useAgentTryoutStream() {
const payload = envelope.payload || {};
if (activeRoundId) {
rawRounds?.recordEvent(activeRoundId, {
const runtimeEvent = rawRounds?.recordEvent(activeRoundId, {
domain,
payload,
type,
});
rebuildTimeline();
if (runtimeEvent) {
rawRounds?.projectEvent(
timelineItems.value,
activeRoundId,
runtimeEvent,
);
}
}
if (domain === 'LLM' && type === 'MESSAGE') {
@@ -340,12 +347,23 @@ export function useAgentTryoutStream() {
finishStoppedRun();
}
function dispose() {
if (loading.value) {
userStopped = true;
sseClient.abort();
finishStoppedRun();
return;
}
rawRounds?.flush();
}
return {
loading,
clearDraftSession,
markToolApproving,
markToolRejected,
copyMessageText,
dispose,
regenerateDraft,
selectVariant,
syncDraftContext,