本页还没有译文
本页 71 段还没译成Português (BR),下面显示的是英文原文。ToolCallManager
还没翻译译自英文(tanstack.com)本页 71 段都还没译
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
executefunctions with parsed arguments - Emits
TOOL_CALL_ENDevents 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