定义于: activities/chat/tools/tool-calls.ts:46
管理 chat() 方法的自动工具执行循环中的工具调用累积和执行。
职责
该类由 AI.chat() 方法内部使用,以处理自动工具执行循环。它也可以独立使用于自定义工具执行逻辑。
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();
}
new ToolCallManager(tools): ToolCallManager;
定义于: activities/chat/tools/tool-calls.ts:50
只读 Tool<SchemaInput, SchemaInput, string>[]
ToolCallManager
addToolCallArgsEvent(event): void;
定义于: activities/chat/tools/tool-calls.ts:72
添加 TOOL_CALL_ARGS 事件以累积参数 (AG-UI)
void
addToolCallStartEvent(event): void;
定义于: activities/chat/tools/tool-calls.ts:57
添加 TOOL_CALL_START 事件以开始跟踪工具调用 (AG-UI)
void
clear(): void;
定义于: activities/chat/tools/tool-calls.ts:216
清除工具调用映射,为下一次迭代做准备
void
completeToolCall(event): void;
定义于: activities/chat/tools/tool-calls.ts:86
完成工具调用,并传入最终输入。在收到 TOOL_CALL_END 时调用
void
executeTools(finishEvent): AsyncGenerator<ToolCallEndEvent, ModelMessage<
| string
| ContentPart<unknown, unknown, unknown, unknown, unknown>[]
| null>[], void>;
定义于: activities/chat/tools/tool-calls.ts:118
执行所有工具调用并返回工具结果消息。产生 TOOL_CALL_END 事件以进行流式传输
来自流的 RUN_FINISHED 事件
AsyncGenerator<ToolCallEndEvent, ModelMessage< | string | ContentPart<unknown, unknown, unknown, unknown, unknown>[] | null>[], void>
getToolCalls(): ToolCall[];
定义于: activities/chat/tools/tool-calls.ts:107
获取所有完成的工具调用(过滤掉无效的 ID 和名称)
ToolCall[]
hasToolCalls(): boolean;
定义于: activities/chat/tools/tool-calls.ts:100
检查是否有任何完成的工具调用可以执行
boolean