SuperAPI AI 工具集

tool-execution-loop

编程与开发

查看项目

更新于 10-15 22:19

技能介绍

用途:帮助已掌握基础 /v1/messages 调用的开发者,构建可靠的 Anthropic API 智能体工具执行循环,聚焦容易被忽略的实现细节。

主要能力与要点: 循环以 stop_reason 判断状态,tool_use 表示需注入工具结果,end_turn 表示结束,不要靠内容中是否含工具块判断。单次响应可能混合文本与多个 tool_use 块,需收集全部而非只取第一个,模型可并行发起多个调用。独立调用用 Promise.all 并行分发;仅当存在依赖时才串行,而依赖场景模型通常分轮发出。

结果注入:工具结果作为 user 轮返回,每个 tool_result 块必须原样回填 tool_use_id,content 必须字符串化,不能传对象;结果数组需包在 user 角色中,否则报错。

错误处理:工具异常应返回 is_error: true 的结果而非抛出,让模型可恢复或询问用户;直接抛出会破坏对话历史。

终止与防护:设置最大轮次(如 MAX_TURNS = 10)防止死循环;对未注册处理器的工具名应在分发时显式报错。

流式变体:stream: true 时工具参数以 input_json_delta 分片到达,需按 index 累积 partial_json,必须等 message_stop 后再解析,不可中途解析。

历史增长:每轮追加 assistant 与 user 两条消息,长循环需裁剪中间工具结果,保留首条用户消息与最近若干条。

MCP 工具:以 tool_use 块形式到达,请求时传 mcp_servers,分发逻辑相同,无需为 MCP 工具编写处理器,结果由 API 自动注入。

限制:资料未提供具体安装命令、依赖版本、收费与平台信息。