AI Agent结构化输出:让Agent说人话不如让它说JSON

📘 AI教程 💬 🔥 Trending

🩺 摘要

自然语言输出程序不好解析。「帮我解析用户的意图」——让Agent返回JSON,程序直接拿来用,不用写正则。

📝 详情

每次让Agent输出自然语言,下游程序都要做一堆解析工作:正则匹配、关键词提取、异常处理。

如果Agent直接输出JSON,所有问题都解决了。

怎么让Agent输出JSON

方法1:System Prompt里指定格式

请严格按照以下JSON格式输出:
{"intent": "字符串", "entities": {"key": "value"}, "confidence": 0.0-1.0}

方法2:用Pydantic定义Schema

from pydantic import BaseModel

class UserIntent(BaseModel):
    intent: str
    entities: dict
    confidence: float

# 把schema传给Agent
schema = UserIntent.model_json_schema()

实际案例

用户说:"帮我订一张明天下午去北京的机票"

Agent输出:

{
  "intent": "book_flight",
  "entities": {
    "destination": "北京",
    "date": "2026-07-17",
    "time_period": "下午"
  },
  "confidence": 0.92
}

下游程序直接拿来调用订票API,一行解析代码都不用写。

总结

能输出JSON就别输出自然语言。 Agent的任务是理解+结构化,你的程序负责执行。JSON是两者之间的桥梁。