大模型应用基础
结构化输出
介绍为什么 AI 应用需要结构化输出,以及结构化输出在 RAG、工具调用和后端系统中的作用。
大模型应用基础beginnerStructured OutputJSON SchemaFunction Calling
大模型最自然的输出是文本,但应用系统最需要的往往不是一段文本,而是可以被程序继续处理的数据。
这就是结构化输出存在的原因。它把模型输出从“看起来像答案”变成“可以被系统校验和执行的结果”。
为什么不能只要自然语言
自然语言适合解释,但不适合直接驱动业务流程。
例如你让模型判断一个用户请求是否需要调用工具。如果模型只回答“需要”,后端还要猜它要调用哪个工具、参数是什么、置信度如何。如果模型输出结构化结果,系统就可以直接校验字段并进入下一步。
常见结构化输出长什么样
结构化输出通常会要求模型返回 JSON:
{
"intent": "search_document",
"query": "Agent 和工作流的区别",
"need_tool": true,
"confidence": 0.82
}
真正落地时,还要配合 Schema、Pydantic、DTO 或运行时校验。重点不是 JSON 本身,而是让输出有明确字段、类型和约束。
它在 Agent 系统里为什么重要
Agent 需要不断做选择:是否检索、调用哪个工具、下一步做什么、是否需要追问用户。
这些选择如果只用自然语言表达,就很难稳定运行。结构化输出可以把模型的中间判断转成系统可以消费的状态,让后端、工作流或 LangGraph 节点继续处理。
结构化不等于绝对可靠
结构化输出能提高可控性,但不能消除模型不确定性。
你仍然需要处理这些问题:
- JSON 格式错误。
- 字段缺失。
- 枚举值不合法。
- 参数看似合法但业务上危险。
- 模型把不确定判断包装成确定结论。
所以结构化输出后面必须接校验、重试、拒绝或人工兜底。
一句话先记住
结构化输出的价值,不是让模型更像数据库,而是让模型结果能进入后续工程流程。
继续阅读
02-llm-basic/004-llm-api-call-flow.md06-agent/002-function-calling.md09-ai-agent-engineering/006-quality-evaluation.md