Tool Call Result
Tool Call Result 是工具执行完成后发出的事件,包含执行结果或错误信息。前端收到后更新工具调用卡片状态。
#type / concept
#status / evergreen
#tech / ai
[!info] related notes
- 所属 MOC: AI Agent Application MOC
- 相关: Event Type, Tool Call Start
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
)
})));
}
常见坑
- 结果太大: 工具返回了大量数据,事件太大
- 不做截断: 应该只返回摘要,完整结果通过 API 获取
- 不关联 tool_call_id: 无法知道是哪个工具调用的结果