Skip to content

执行监控与调试

工具调用并非黑盒过程,系统提供了丰富的 UI 反馈和调试信息,帮助用户追踪执行状态。

消息组件:ToolCallMessage

工具调用的请求和结果会以特殊的“工具消息”形式展示在对话流中:

  • 状态标识:通过侧边栏颜色和图标识别状态(执行中、成功、失败、待审批、已取消)。
  • 参数折叠:默认折叠复杂的输入参数 JSON,点击可展开查看。
  • JSON 美化:系统会自动美化工具返回的 JSON 数据,并限制缩进深度(最多 4 层),确保长数据不会撑破界面。
  • 性能统计:实时显示每个工具调用的执行耗时(ms)。

异步任务集成

对于耗时较长的操作(如视频转码、大规模文件扫描),工具可能会创建一个“异步任务”:

  • 进度追踪:消息块内会直接嵌入进度条和实时状态文字。
  • 交互控制:用户可以直接在消息内点击“取消任务”或“重试任务”。
  • 轮询机制:系统会自动轮询任务状态,并在完成后自动更新消息内容。

迭代控制

为了防止模型陷入“循环调用”或“过度调用”,系统实现了以下限制:

  • 最大迭代次数 (maxIterations):单次用户请求引发的工具链式调用次数上限。
  • 并行执行 (parallelExecution):如果模型一次性请求了多个工具,系统支持并行执行以缩短等待时间。

调试建议

如果工具调用不符合预期,可以检查以下几点:

  1. 参数对齐:在消息组件中展开参数,确认模型是否传错了字段或格式。
  2. 上下文长度:检查工具返回的结果是否过大,导致后续生成的上下文被截断。
  3. 角色转换:如果模型无法理解工具返回的结果,尝试切换 convertToolRoleToUser 选项。

相关阅读

Released under the Apache-2.0 License.