控制台无需使用此 API 即可满足大多数工具需求:连接
→ 应用 可通过几次 OAuth 点击连接 Slack、HubSpot、Salesforce、Google Calendar、
Google Sheets 和 Cal.com;连接 →
API 可将任何 HTTP API 转换为智能体操作(粘贴一条 cURL 命令后,AI 向导会起草工具,并提供内置的测试请求功能);连接 → MCP 可添加 MCP 服务器。请参阅
连接。本指南介绍的是 API 界面底层的原始
API。
工具的组成
包含两部分:- Schema —— OpenAI 风格的函数定义
(
{type: "function", function: {name, description, parameters}}), 用于告知 LLM 该工具的功能及其接受的参数。 - 端点 —— 当 LLM 决定使用该工具时,ThunderPhone 服务器调用的 URL。 请求为 JSON POST,正文包含 LLM 选择的参数。
1. 选择存储策略
在智能体中内联配置
将一次性工具附加到智能体的
tools 数组中。简单,但不可复用。已保存的集成
将工具存储为可复用的集成,
并从多个智能体中关联它。建议用于任何需要多次使用的工具。
2. 创建集成
id(一个 UUID)。
3. 在沙盒中测试端点
在将集成关联到智能体之前,请从 ThunderPhone 的服务器发出一个已签名请求以确认连通性:Response
400 code=url_not_allowed。
4. 将集成关联到智能体
在创建或更新智能体时,通过integration_ids 关联:
get_weather”——也可以根据架构描述隐式发现它们。
5. 实现端点
当智能体调用工具时,ThunderPhone 会向您的endpoint_url 发送已签名的 POST 请求:
6. 测试完整流程
针对该智能体运行一个麦克风会话,并提出您的工具可处理的问题(“94110 的天气怎么样?”)。通话的转录记录会显示完整的往返流程:GET /v1/calls/{call_id}/transcript 获取此记录;
原始事件流(包含每条记录的时间信息和音频偏移量)位于
GET /v1/calls/{call_id}/history。
常见问题
智能体从不调用工具
智能体从不调用工具
LLM 会根据工具描述作出决定。如果来电者的问题与描述不匹配,模型不会调用该工具。请完善描述(添加常见同义词和表达方式),或在智能体提示词中明确提及它(“当来电者询问天气时,使用
get_weather。”)。工具返回的数据过多
工具返回的数据过多
超过 6 kB 的响应会在转录预览中被截断。仅返回 LLM 所需的字段——不要返回整行数据。
超时
超时
工具端点的默认超时时间为 10 秒。如果您需要更长时间,请异步处理:返回
{"status": "pending", "request_id": "..."},然后通过单独的工具调用提供结果。版本控制
版本控制
每次集成
PATCH 都会创建一个新修订版本。检查
GET /v1/integrations/{id}/versions
以查看谁修改了什么。如果您破坏了工具的架构,可以通过将较早的快照 PATCH 回去来手动回滚。后续步骤
集成参考
CRUD、转接、版本历史。
函数工具规范
完整的 JSON 架构语法和已签名端点约定。
验证签名
将 Webhook 签名模式应用于工具端点。
通话记录 + 历史记录 API
检查一次工具调用的完整往返流程。