diff --git a/main/manager-api/src/main/resources/db/changelog/202604011035.sql b/main/manager-api/src/main/resources/db/changelog/202604011035.sql new file mode 100644 index 00000000..7bf3f6bd --- /dev/null +++ b/main/manager-api/src/main/resources/db/changelog/202604011035.sql @@ -0,0 +1 @@ +INSERT INTO `sys_params` (id, param_code, param_value, value_type, param_type, remark) VALUES (312, 'tool_call_timeout', '30', 'number', 1, '工具调用超时时间(秒)'); diff --git a/main/manager-api/src/main/resources/db/changelog/db.changelog-master.yaml b/main/manager-api/src/main/resources/db/changelog/db.changelog-master.yaml index 77c5bfd3..caf089e3 100755 --- a/main/manager-api/src/main/resources/db/changelog/db.changelog-master.yaml +++ b/main/manager-api/src/main/resources/db/changelog/db.changelog-master.yaml @@ -585,4 +585,10 @@ databaseChangeLog: - sqlFile: encoding: utf8 path: classpath:db/changelog/202603311200.sql - + - changeSet: + id: 202604011035 + author: RanChen + changes: + - sqlFile: + encoding: utf8 + path: classpath:db/changelog/202604011035.sql diff --git a/main/xiaozhi-server/core/connection.py b/main/xiaozhi-server/core/connection.py index 49b51e75..d167bf1b 100644 --- a/main/xiaozhi-server/core/connection.py +++ b/main/xiaozhi-server/core/connection.py @@ -1117,6 +1117,9 @@ class ConnectionHandler: try: result = future.result(timeout=tool_call_timeout) tool_results.append((result, tool_call_data)) + # 使用公共方法上报工具调用结果 + enqueue_tool_report(self, tool_call_data['name'], tool_input, str(result.result) if result.result else None, report_tool_call=False) + except Exception as e: self.logger.bind(tag=TAG).error( f"工具调用超时或异常: {tool_call_data['name']}, 错误: {e}" @@ -1126,9 +1129,8 @@ class ConnectionHandler: ActionResponse(action=Action.ERROR, result="哎呀,网络遇到点问题,请稍后再试下!"), tool_call_data )) - - # 使用公共方法上报工具调用结果 - enqueue_tool_report(self, tool_call_data['name'], tool_input, str(result.result) if result.result else None, report_tool_call=False) + # 上报工具调用错误 + enqueue_tool_report(self, tool_call_data['name'], tool_input, str(e), report_tool_call=False) # 统一处理工具调用结果 if tool_results: