diff --git a/renderer/src/components/main-panel/chat/core/task-loop.ts b/renderer/src/components/main-panel/chat/core/task-loop.ts index 03e4506..58c2f03 100644 --- a/renderer/src/components/main-panel/chat/core/task-loop.ts +++ b/renderer/src/components/main-panel/chat/core/task-loop.ts @@ -359,11 +359,11 @@ export class TaskLoop { pinkLog('调用工具数量:' + this.streamingToolCalls.value.length); - for (const toolCall of this.streamingToolCalls.value || []) { + for (let toolCall of this.streamingToolCalls.value || []) { - - const toolCallResult = await handleToolCalls(toolCall); - this.onToolCalled(toolCallResult); + toolCall = this.onToolCall(toolCall); + let toolCallResult = await handleToolCalls(toolCall); + toolCallResult = this.onToolCalled(toolCallResult); if (toolCallResult.state === MessageState.ParseJsonError) { // 如果是因为解析 JSON 错误,则重新开始 diff --git a/resources/openmcp-sdk-release/package.json b/resources/openmcp-sdk-release/package.json index 94d6fc7..139afcb 100644 --- a/resources/openmcp-sdk-release/package.json +++ b/resources/openmcp-sdk-release/package.json @@ -1,6 +1,6 @@ { "name": "openmcp-sdk", - "version": "0.0.3", + "version": "0.0.4", "description": "openmcp-sdk", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" diff --git a/resources/openmcp-sdk-release/task-loop.d.ts b/resources/openmcp-sdk-release/task-loop.d.ts index e92a2e7..eb71a3a 100644 --- a/resources/openmcp-sdk-release/task-loop.d.ts +++ b/resources/openmcp-sdk-release/task-loop.d.ts @@ -104,8 +104,8 @@ export class TaskLoop { * @description 注册当工具调用完成时的回调函数,会调用这个方法,可以拦截并修改 toolcall 的输出 * @param handler */ - registerOnToolCalled(handler: (toolCallResult: ToolCallResult) => void): void; - + registerOnToolCalled(handler: (toolCallResult: ToolCallResult) => ToolCallResult): void; + /** * @description 注册当工具调用前的回调函数,可以拦截并修改 toolcall 的输入 * @param handler