什么是工具调用?
工具调用允许 AI 模型执行外部功能,如运行代码、查询数据库、生成特定格式的内容等。重要:花卷智能体 API 采用服务端自动执行模式,一次请求即可完成工具调用和结果处理,无需客户端多轮交互。
工具调用流程
花卷智能体 API 在服务端自动完成工具调用的完整流程:1
1. 用户发起请求
用户发送单次请求,包含
allowedTools 参数和必要的上下文:用户请求
2
2. 服务端自动处理
服务端在一次请求中完成以下步骤:
- AI 决定需要调用工具
- 服务端执行工具(zhipin_reply_generator 等)
- AI 理解执行结果
- 生成最终回复
所有工具调用都在服务端自动完成,最多可执行 30 步(包括多次工具调用)。
3
3. 返回完整对话历史
API 返回包含所有中间步骤的完整对话历史:
API 响应
dynamic-tool 结构说明
工具调用使用dynamic-tool 类型的 part,包含以下字段:
所有工具输入参数使用 snake_case 命名约定(如
candidate_message),而非 camelCase。流程对比
- 服务端自动执行(花卷智能体 API)
- 客户端执行(其他 API 常见模式)
当前采用的模式:优点:
- ✅ 单次请求完成
- ✅ 无需客户端处理工具执行
- ✅ 自动重试和错误处理
- ✅ 完整的执行历史
- 服务端可以安全执行的工具(bash、数据库查询等)
- 不需要用户交互的自动化任务
基础用法
简单示例
通过allowedTools 数组启用工具:
基础工具调用
响应包含完整的执行过程,包括工具调用和智能生成的回复。
多轮对话场景
AI 可以在一次请求中理解上下文并调用工具:多轮对话示例
可用工具
使用GET /api/v1/tools 查看所有可用工具及其配置要求。
Bash 工具
执行 Bash 命令,需要 E2B 沙盒环境:Bash 工具示例(需要沙盒)
推荐:对于一般的业务场景,建议使用
zhipin_reply_generator 等业务工具,而非 bash 工具。zhipin_reply_generator 工具
生成 BOSS 直聘招聘回复,需要configData 和 replyPrompts 上下文:
招聘回复生成工具
工具上下文
某些工具需要额外的上下文信息:全局上下文 - context
全局上下文 - context
使用
context 提供所有工具共享的上下文:全局上下文
工具级上下文 - toolContext
工具级上下文 - toolContext
使用
toolContext 为特定工具提供上下文,会覆盖全局 context:工具级上下文
上下文策略
控制工具上下文缺失时的行为:- error(默认)
- skip
- report
缺少必需上下文时返回 400 错误:适用场景:确保工具配置正确,避免运行时错误
错误响应
流式输出中的工具事件
使用stream: true 时,可以实时监控工具调用过程:
工具事件示例
流式模式允许你实时看到 AI 的思考过程和工具执行进度,特别适合需要实时反馈的招聘场景。
执行限制
为了防止无限循环,工具调用有以下限制:完整示例
- JavaScript
- Python
- cURL
JavaScript 完整示例
常见问题
工具调用需要多次请求吗?
工具调用需要多次请求吗?
不需要。花卷智能体 API 在服务端自动完成所有工具调用,单次请求即可获得最终结果。错误理解:正确流程:
如何查看工具执行的中间过程?
如何查看工具执行的中间过程?
使用 或者在非流式模式下,检查响应中的
stream: true 可以实时监控工具调用:流式监控
messages 数组,包含所有中间步骤。如何限制工具的执行次数?
如何限制工具的执行次数?
当前默认限制为 30 步。如果需要更严格的控制,可以:
- 使用更明确的提示词,减少不必要的工具调用
- 联系技术支持调整限制
- 在
context中提供更完整的信息,减少探索性调用
为什么我的工具没有被调用?
为什么我的工具没有被调用?
可能的原因:
-
工具未在 allowedTools 中
正确配置
-
缺少必需的上下文
完整配置示例
- 使用
validateOnly: true预检配置 - 检查
GET /api/v1/tools的requiredContext
- 使用
-
AI 判断不需要调用
- 尝试更明确的提示词
- 确认任务确实需要该工具
-
bash 工具缺少沙盒环境
- bash 工具需要
context.sandboxId - 建议使用业务工具而非 bash
- bash 工具需要
如何查看工具需要哪些上下文?
如何查看工具需要哪些上下文?
使用 或使用
GET /api/v1/tools 端点查看每个工具的 requiredContext:查看工具要求
validateOnly: true 预检配置。下一步
消息格式
了解 tool-call 和 tool-result 的消息结构
工具系统
深入了解工具系统和工具定义
上下文管理
理解工具上下文配置和验证
流式输出
学习如何使用流式输出监控工具执行

