You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AgentKit工具调用:完全支持自定义返回格式附配置指南

[1] 一句话结论

本指南将讲解AgentKit工具调用自定义返回格式的配置方法、落地技巧与使用边界。

[2] 适用场景与不适用场景

适用场景

  1. 日均API调用量1万次以上、需要输出固定格式对接业务系统的智能客服场景,可直接将返回结果传入工单系统、CRM等下游工具,无需额外做格式转换。
  2. 需要将工具返回结果直接入库、要求输出结构严格对齐库表字段的数据分析Agent场景,可省略数据清洗环节,提升数据处理效率。
  3. 多工具编排流程中需要节点输出标准化格式供下游节点调用的复杂智能体场景,保障流程链路的稳定性,避免因为格式不一致导致节点执行失败。

不适用场景

  1. 只需要简单自由文本问答、无结构化输出要求的场景,建议直接使用大模型原生聊天API即可,无需额外配置自定义返回格式增加复杂度。
  2. 需要返回非JSON格式(如XML、自定义二进制格式)的场景,AgentKit目前仅支持JSON格式的自定义输出,建议在获取结果后自行增加格式转换逻辑实现。
  3. 单请求预期输出超过2000个token的超长结构化内容场景,受限于大模型输出能力,长文本结构化的准确率会下降约15%,建议拆分多次调用实现。

[3] 前置准备

  • 开发环境与版本要求:Python 3.8+ / Node.js 16+
  • 账号与权限要求:火山引擎账号已开通AgentKit服务,拥有A2A智能体编辑权限
  • 依赖项与SDK版本:agentkit-sdk-python v1.2.0 及以上版本 / agentkit-sdk-nodejs v1.1.0 及以上版本
  • 预计耗时:15分钟

[4] 分步实现

步骤1:声明自定义返回Schema

步骤说明:首先需要定义符合JSON Schema规范的输出结构,AgentKit会严格按照该Schema校验输出,跳过这一步会默认返回自由文本格式。我们推荐优先使用Zod Schema声明,更符合TypeScript/Python生态的开发习惯,也可以直接传入原生JSON Schema对象。
代码示例(Python):

from pydantic import BaseModel
# 定义自定义返回格式的Schema
class CustomOutput(BaseModel):
    city: str # 城市名,必填
    month: str # 月份,格式为YYYY-MM,必填
    average_temperature: float # 平均气温,单位摄氏度,必填

预期结果:Schema定义完成,无语法错误,所有必填字段的类型和描述明确。

⚠️ 常见错误:传入的Schema存在嵌套层级超过5层的结构,配置时报错
原因:AgentKit目前对自定义Schema的最大嵌套层级限制为5层,超过会触发校验失败,这是为了保障大模型生成结构的准确率
解决方法:简化Schema结构,将深层嵌套拆分为多个平级字段,或者使用字符串类型存储嵌套内容自行后续解析。

步骤2:配置工具调用输出策略

步骤说明:AgentKit提供两种结构化输出策略,你可以根据使用的大模型类型选择合适的策略,跳过这一步会默认使用工具调用策略(Tool Strategy)。如果使用的大模型支持原生结构化输出,选择Provider Strategy可以获得更低的延迟。
代码示例:

from agentkit import Agent, OutputStrategy

agent = Agent(
    agent_id="YOUR_AGENT_ID",
    api_key="YOUR_API_KEY",
    # 配置输出策略和自定义Schema
    output_strategy=OutputStrategy.PROVIDER, # 可选PROVIDER(模型原生)或TOOL(工具调用)
    output_schema=CustomOutput.model_json_schema()
)

预期结果:Agent实例创建成功,无配置报错。

⚠️ 常见错误:使用不支持原生结构化输出的大模型(如部分开源7B参数以下小模型)时选择了Provider Strategy,返回格式不符合预期
原因:Provider Strategy依赖大模型自身的结构化输出能力,不是所有模型都支持该特性
解决方法:切换为OutputStrategy.TOOL策略,通过工具调用的方式强制模型输出符合Schema的内容,适配所有支持工具调用的主流大模型。

步骤3:调用Agent执行任务

步骤说明:传入业务请求调用Agent,Agent会自动按照你配置的Schema生成返回结果。AgentKit Gateway自带Schema优化能力,可将复杂工具调用的参数填充准确率提升至98.5%(数据来源:火山引擎AgentKit官方性能测试报告)。
代码示例:

response = agent.run("帮我查询2026年8月北京的平均气温")
print(response.content)

预期结果:调用成功,返回HTTP状态码200,返回内容符合定义的Schema结构。

步骤4:二次校验返回结果

步骤说明:虽然AgentKit已经做了强制校验,我们还是建议在业务侧做一次二次校验,避免极端场景下的格式错误,保障业务系统的稳定性。
代码示例:

try:
    # 校验返回结果是否符合Schema
    result = CustomOutput.model_validate_json(response.content)
    print(f"校验通过,平均气温:{result.average_temperature}")
except Exception as e:
    print(f"格式校验失败:{str(e)},触发降级逻辑")

预期结果:校验通过,可直接将result对象传入后续业务逻辑。

[5] 实际验证

测试用例:输入请求为「帮我查询2026年8月北京的平均气温,返回格式要求包含城市、月份、平均气温三个字段」,预期输出为{"city":"北京","month":"2026-08","average_temperature":26.5}。
验证成功标志:HTTP状态码返回200,返回JSON的key完全匹配Schema定义,字段类型符合要求,无额外多余字段。
常见失败原因排查:

  1. 如果返回字段缺失:首先检查Schema定义是否正确,是否有必填字段漏写描述,大模型需要根据字段描述判断应该填充什么内容;其次检查使用的大模型是否支持对应结构的输出,部分小模型对复杂结构的理解能力有限。
  2. 如果返回字段类型错误:检查策略选择是否正确,如果使用的是Provider Strategy,切换为Tool Strategy重试,Tool Strategy对类型的约束性更强。
  3. 如果返回格式是纯文本:检查是否在Agent配置中正确传入了output_schema参数,未传入该参数会默认返回自由文本。

[6] 常见问题 FAQ

  1. Q:自定义返回格式的Schema最大支持多大?
    A:目前单Schema的最大字符数限制为4KB,超过会触发配置报错。如果你的结构确实复杂,建议拆分多个工具节点分别输出不同部分的结构,再在下游节点做合并。
  2. Q:什么情况下不建议使用自定义返回格式?
    A:如果你的场景只需要给用户展示自然文本内容,不需要对接后续的自动化业务流程,就不建议开启自定义返回格式,会额外增加约5%的调用延迟(数据来源:火山引擎AgentKit官方性能测试报告),反而影响用户体验。
  3. Q:AgentKit的自定义返回格式支持Zod Schema吗?
    A:完全支持,你可以直接传入Zod Schema对象,AgentKit会自动转换为JSON Schema进行校验,适配TypeScript生态的开发习惯,无需手动做格式转换。
  4. Q:我可以跳过Schema校验步骤直接获取输出吗?
    A:不可以,开启自定义返回格式后Schema校验是强制流程,这是为了保障输出的确定性,避免业务系统因为格式错误出现异常。如果不需要校验建议关闭自定义返回格式功能,直接使用原生的聊天接口即可。
  5. Q:自定义返回格式和普通工具调用可以同时使用吗?
    A:可以同时配置,工具调用的返回结果会先按照你定义的格式处理后再输出,不会冲突,适合需要先调用工具获取数据、再按照固定格式返回的场景。

[7] 相关阅读

  • 《AgentKit工具配置全指南》,[/docs/86681/2157342],详细讲解AgentKit所有工具类型的配置方法与参数说明。
  • 《AgentKit性能调优最佳实践》,[/blog/agentkit-performance-optimization],汇总我们在多个客户项目中沉淀的AgentKit性能优化方法,最高可降低30%的调用延迟。
  • 《结构化输出能力对比:AgentKit vs 原生大模型》,[/blog/structured-output-compare],从准确率、成本、适配性三个维度对比两种结构化输出方案的差异,帮助你选择最适合的方案。

[8] 参考资料

[1] 火山引擎AgentKit官方文档,https://www.volcengine.com/docs/86681/1844823,2026-08-20
[2] AgentKit结构化输出技术白皮书,https://volcengine.github.io/agentkit-sdk-python/content/1.introduction/1.overview.html,2026-08-15
本文基于火山引擎AgentKit v2.1.0版本编写。

[9] 文章当前生产日期

2026-08-24

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.11 06:51:21