Class References
Function References
- text
- textOptions
- combineStrategies
- convertMessagesToModelMessages
- convertZodToJsonSchema
- createReplayStream
- embedding
- generateMessageId
- maxIterations
- messages
- modelMessageToUIMessage
- modelMessagesToUIMessages
- normalizeToUIMessage
- parsePartialJSON
- summarize
- toServerSentEventsStream
- toServerSentEventsResponse
- toolDefinition
- uiMessageToModelMessages
- realtimeToken
- untilFinishReason
Interface References
- AIAdapter
- AIAdapterConfig
- AgentLoopState
- ApprovalRequestedStreamChunk
- AudioPart
- AudioVisualization
- BaseStreamChunk
- TextCompletionChunk
- TextOptions
- ChunkRecording
- ChunkStrategy
- ClientTool
- ContentPartSource
- ContentStreamChunk
- DefaultMessageMetadataByModality
- DocumentPart
- DoneStreamChunk
- EmbeddingOptions
- EmbeddingResult
- ErrorStreamChunk
- ImagePart
- InternalToolCallState
- JSONParser
- ModelMessage
- ProcessorResult
- ProcessorState
- RealtimeAdapter
- RealtimeClientOptions
- RealtimeConnection
- RealtimeMessage
- RealtimeSessionConfig
- RealtimeToken
- RealtimeTokenAdapter
- RealtimeTokenOptions
- ResponseFormat
- ServerTool
- StreamProcessorEvents
- StreamProcessorHandlers
- StreamProcessorOptions
- SummarizationOptions
- SummarizationResult
- TextPart
- ThinkingPart
- ThinkingStreamChunk
- Tool
- ToolCall
- ToolCallPart
- ToolCallStreamChunk
- ToolConfig
- ToolDefinition
- ToolDefinitionConfig
- ToolDefinitionInstance
- ToolInputAvailableStreamChunk
- ToolResultPart
- ToolResultStreamChunk
- UIMessage
- VideoPart
Type Alias References
- AgentLoopStrategy
- AnyClientTool
- TextStreamOptionsForModel
- TextStreamOptionsUnion
- ConstrainedContent
- ConstrainedModelMessage
- ContentPart
- ContentPartForModalities
- ExtractModalitiesForModel
- ExtractModelsFromAdapter
- InferToolInput
- InferToolName
- InferToolOutput
- MessagePart
- RealtimeEvent
- RealtimeMessagePart
- RealtimeMode
- RealtimeStatus
- ModalitiesArrayToUnion
- Modality
- StreamChunk
- StreamChunkType
- ToolCallState
- ToolResultState
Variable References
ToolCallManager
Defined in: packages/ai/src/activities/chat/tools/tool-calls.ts:246
Manages tool call accumulation and execution for the chat() method's automatic tool execution loop.
Responsibilities:
- Accumulates streaming tool call events (ID, name, arguments)
- Validates tool calls (filters out incomplete ones)
- Executes tool execute functions with parsed arguments
- Emits TOOL_CALL_END events for client visibility
- Returns tool result messages for conversation history
This class is used internally by the AI.chat() method to handle the automatic tool execution loop. It can also be used independently for custom tool execution logic.
Example#
const manager = new ToolCallManager(tools);
// During streaming, accumulate tool calls
for await (const chunk of stream) {
if (chunk.type === 'TOOL_CALL_START') {
manager.addToolCallStartEvent(chunk);
} else if (chunk.type === 'TOOL_CALL_ARGS') {
manager.addToolCallArgsEvent(chunk);
}
}
// After stream completes, execute tools
if (manager.hasToolCalls()) {
const toolResults = yield* manager.executeTools(finishEvent);
messages = [...messages, ...toolResults];
manager.clear();
}Type Parameters#
TToolsOrContext#
TToolsOrContext = ReadonlyArray<AnyTool>
TContext#
TContext = TToolsOrContext extends ReadonlyArray<AnyTool> ? ContextFromTools<TToolsOrContext> : TToolsOrContext
Constructors#
Constructor#
new ToolCallManager<TToolsOrContext, TContext>(tools): ToolCallManager<TToolsOrContext, TContext>;Defined in: packages/ai/src/activities/chat/tools/tool-calls.ts:257
Parameters#
tools#
TToolsOrContext extends readonly AnyTool[] ? TToolsOrContext : readonly AnyTool[]
Returns#
ToolCallManager<TToolsOrContext, TContext>
Methods#
addToolCallArgsEvent()#
addToolCallArgsEvent(event): void;Defined in: packages/ai/src/activities/chat/tools/tool-calls.ts:294
Add a TOOL_CALL_ARGS event to accumulate arguments (AG-UI)
Parameters#
event#
Returns#
void
addToolCallStartEvent()#
addToolCallStartEvent(event): void;Defined in: packages/ai/src/activities/chat/tools/tool-calls.ts:268
Add a TOOL_CALL_START event to begin tracking a tool call (AG-UI)
Parameters#
event#
Returns#
void
clear()#
clear(): void;Defined in: packages/ai/src/activities/chat/tools/tool-calls.ts:465
Clear the tool calls map for the next iteration
Returns#
void
completeToolCall()#
completeToolCall(event): void;Defined in: packages/ai/src/activities/chat/tools/tool-calls.ts:312
Complete a tool call with its final input Called when TOOL_CALL_END is received
Parameters#
event#
Returns#
void
executeTools()#
executeTools(finishEvent, ...contextArgs): AsyncGenerator<AdapterYieldChunk, ModelMessage<
| string
| ContentPart<unknown, unknown, unknown, unknown, unknown>[]
| null>[], void>;Defined in: packages/ai/src/activities/chat/tools/tool-calls.ts:344
Execute all tool calls and return tool result messages Yields TOOL_CALL_END events for streaming
Parameters#
finishEvent#
RUN_FINISHED event from the stream
contextArgs#
...ExecuteToolsContextArgs<TContext>
Returns#
AsyncGenerator<AdapterYieldChunk, ModelMessage< | string | ContentPart<unknown, unknown, unknown, unknown, unknown>[] | null>[], void>
getToolCalls()#
getToolCalls(): ToolCall<unknown>[];Defined in: packages/ai/src/activities/chat/tools/tool-calls.ts:333
Get all complete tool calls (filtered for valid ID and name)
Returns#
ToolCall<unknown>[]
hasToolCalls()#
hasToolCalls(): boolean;Defined in: packages/ai/src/activities/chat/tools/tool-calls.ts:326
Check if there are any complete tool calls to execute
Returns#
boolean