必须使用支持json schema的模型(如deepseek-chat-v2、qwen-plus-202608),并在控制台启用结构化响应或api中声明response_format为json_schema,才能确保大模型严格按预设字段输出合法json。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在火山引擎智能体中让大模型回复严格按预设字段输出结构化数据,避免自由发挥导致下游解析失败,必须绕过默认文本生成路径,使用官方支持的结构化输出机制。
确认模型与平台是否支持结构化输出
进入火山引擎「智能分析Agent」控制台→点击目标智能体→查看「模型配置」区域。只有标注“支持JSON Schema”或“支持结构化响应”的模型(如 deepseek-chat-v2、qwen-plus-202608)才具备该能力。【不满足此前提时,后续所有配置均无效】
若当前模型未列出支持项,需切换至支持结构化输出的模型版本,否则无法强制字段对齐。
在控制台配置结构化Schema(无代码方式)
方法一:使用内置JSON Schema编辑器
① 在智能体编辑页→左侧导航栏点击「高级设置」→展开「结构化响应」开关;
② 点击「编辑Schema」,粘贴合法JSON Schema,例如:
{"type":"object","properties":{"product_name":{"type":"string"},"price_cny":{"type":"number","multipleOf":0.01},"in_stock":{"type":"boolean"}},"required":["product_name","price_cny"]}
③ 保存后,该智能体所有调用将自动约束LLM输出为符合该Schema的JSON对象,字段名、类型、必填性全部校验;
注意:Schema中不能含注释、尾逗号或$ref引用,否则控制台校验失败且不提示具体错误位置。
通过API调用时注入结构化约束
方法一:在Requests API请求体中显式声明response_format
向 https://open.feedcoopapi.com/agent_api/chat/completions 发起POST请求,请求体中必须包含:
"response_format": {"type": "json_schema","json_schema": {"name": "product_info","schema": {"type": "object","properties": {"sku_id": {"type": "string"},"tags": {"type": "array","items": {"type": "string"}}},"required": ["sku_id"]}}}
方法二:使用Function Calling方式间接达成(兼容老版本)
定义一个仅用于格式包装的function,例如function_name = "return_structured_data",其parameters字段直接写死为所需结构,再在system prompt中强调“你必须只调用该function且不得输出任何其他内容”。【此方式实际返回的是function call对象,需客户端自行提取arguments字段】
验证结构化输出是否生效
在控制台「调试对话」窗口输入测试问题,例如:“查一下iPhone 16 Pro的售价和库存”,观察返回结果是否为纯JSON字符串,且字段名与Schema完全一致;
若返回中混有解释性文字(如“根据查询,结果如下:{...}”),说明结构化未启用成功,需回头检查模型支持状态和Schema语法;
成功响应示例(HTTP 200,Content-Type: application/json):
{"product_name":"iPhone 16 Pro","price_cny":7999.0,"in_stock":true}











