执行监控与调试
工具调用并非黑盒过程,系统提供了丰富的 UI 反馈和调试信息,帮助用户追踪执行状态。
消息组件:ToolCallMessage
工具调用的请求和结果会以特殊的“工具消息”形式展示在对话流中:
- 状态标识:通过侧边栏颜色和图标识别状态(执行中、成功、失败、待审批、已取消)。
- 参数折叠:默认折叠复杂的输入参数 JSON,点击可展开查看。
- JSON 美化:系统会自动美化工具返回的 JSON 数据,并限制缩进深度(最多 4 层),确保长数据不会撑破界面。
- 性能统计:实时显示每个工具调用的执行耗时(ms)。
异步任务集成
对于耗时较长的操作(如视频转码、大规模文件扫描),工具可能会创建一个“异步任务”:
- 进度追踪:消息块内会直接嵌入进度条和实时状态文字。
- 交互控制:用户可以直接在消息内点击“取消任务”或“重试任务”。
- 轮询机制:系统会自动轮询任务状态,并在完成后自动更新消息内容。
迭代控制
为了防止模型陷入“循环调用”或“过度调用”,系统实现了以下限制:
- 最大迭代次数 (maxIterations):单次用户请求引发的工具链式调用次数上限。
- 并行执行 (parallelExecution):如果模型一次性请求了多个工具,系统支持并行执行以缩短等待时间。
调试建议
如果工具调用不符合预期,可以检查以下几点:
- 参数对齐:在消息组件中展开参数,确认模型是否传错了字段或格式。
- 上下文长度:检查工具返回的结果是否过大,导致后续生成的上下文被截断。
- 角色转换:如果模型无法理解工具返回的结果,尝试切换
convertToolRoleToUser选项。
相关阅读: