Tool Call Result

Tool Call Result 是工具执行完成后发出的事件,包含执行结果或错误信息。前端收到后更新工具调用卡片状态。

#type / concept #status / evergreen #tech / ai

[!info] related notes

Tool Call Result

一句话定义

Tool Call Result 是工具执行完成后发出的事件。包含执行结果(成功时)或错误信息(失败时),以及执行耗时。

核心原理

数据格式

{
  "event": "tool_call_result",
  "data": {
    "tool_call_id": "tc_001",
    "tool_name": "search_knowledge",
    "result": [{"title": "...", "content": "..."}],
    "duration_ms": 230,
    "status": "success"
  }
}

前端处理

function handleToolCallResult(data: ToolCallResultData) {
  setMessages(prev => prev.map(msg => ({
    ...msg,
    toolCalls: (msg.toolCalls || []).map(tc =>
      tc.id === data.tool_call_id
        ? {
            ...tc,
            status: data.status === 'success' ? 'done' : 'error',
            result: data.result,
            error: data.error,
            duration: data.duration_ms,
          }
        : tc
    )
  })));
}

常见坑

  1. 结果太大: 工具返回了大量数据,事件太大
  2. 不做截断: 应该只返回摘要,完整结果通过 API 获取
  3. 不关联 tool_call_id: 无法知道是哪个工具调用的结果

参考资料

创建于 2026/6/30 更新于 2026/7/15