建筑:引擎室

The Heart: tt Control Loop

核心:tt 控制循环

The entire Claude Code system revolves around a single async generator function called tt. This function orchestrates every interaction, from user input to LLM communication to tool execution. Let's dissect this remarkable piece of engineering:

整个Claude Code系统围绕一个名为tt的异步生成器函数展开。这个函数协调了每一个交互,从用户输入到LLM通信再到工具执行。让我们来剖析这一杰出的工程作品:

async function* tt( currentMessages: CliMessage[], baseSystemPromptString: string, currentGitContext: GitContext, currentClaudeMdContents: ClaudeMdContent[], permissionGranterFn: PermissionGranter, toolUseContext: ToolUseContext, activeStreamingToolUse?: ToolUseBlock, loopState: { turnId: string, turnCounter: number, compacted?: boolean, isResuming?: boolean } ): AsyncGenerator<CliMessage, void, void>

async function* tt( currentMessages: CliMessage[], baseSystemPromptString: string, currentGitContext: GitContext, currentClaudeMdContents: ClaudeMdContent[], permissionGranterFn: PermissionGranter, toolUseContext: ToolUseContext, activeStreamingToolUse?: ToolUseBlock, loopState: { turnId: string, turnCounter: number, compacted?: boolean, isResuming?: boolean } ): AsyncGenerator<CliMessage, void, void>

This signature reveals the sophisticated state management at play. The function yields CliMessage objects that drive UI updates while maintaining conversation flow. Let's examine each phase:

这个签名揭示了复杂的状态管理机制。该函数生成驱动UI更新的CliMessage对象,同时保持对话的流畅性。让我们逐步分析每个阶段:

{ yield { type: "ui_state_update", uuid: `uistate-${loopState.turnId}-${Date.now()}`, timestamp: new Date().toISOString(), data: { status: "thinking", turnId: loopState.turnId } }; let messagesForLlm = currentMessages; let wasCompactedThisIteration = false; if (await shouldAutoCompact(currentMessages)) { yield { type: "ui_notification", data: { message: "Context is large, attempting to compact..." } }; try { const compactionResult = await compactAndStoreConversation( currentMessages, toolUseContext, true ); messagesForLlm = compactionResult.messagesAfterCompacting; wasCompactedThisIteration = true; loopS...

开通本站会员,查看完整译文。

trang chủ - Wiki
Copyright © 2011-2025 iteam. Current version is 2.144.0. UTC+08:00, 2025-06-06 19:07
浙ICP备14020137号-1 $bản đồ khách truy cập$