教程 3:结构化输出代理 欢迎来到结构化输出!本教程将教你如何创建能够返回类型安全、结构化数据的代理,而不是简单的文本。这对于构建需要可预测数据格式的可靠应用至关重要。 你将学到的内容 Pydantic 模式:定义带有验证的数据结构 类型安全:确保你的代理返回预期的数据格式 业务逻辑:可靠地处理结构化数据 错误处理:优雅地处理验证错误 实际应用:客户支持与邮件生成 核心概念:结构化输出 结构化输出意味着你的代理返回的是经过验证的数据对象,而非原始文本: ✅ 类型安全:确切知道你会收到什么数据格式 ✅ 验证:自动检查必填字段和数据类型 ✅ 可靠性:不再需要手动解析文本响应 ✅ 集成:易于在应用和数据库中使用 为什么选择结构化输出?
欢迎来到结构化输出!本教程将教你如何创建能够返回类型安全、结构化数据的代理,而不是简单的文本。这对于构建需要可预测数据格式的可靠应用至关重要。
结构化输出意味着你的代理返回的是经过验证的数据对象,而非原始文本:
本教程包含两个完整示例:
位置:./3_1_customer_support_ticket_agent/
位置:./3_2_email_agent/
3_structured_output_agent/ ├── README.md # This tutorial overview ├── 3_1_customer_support_ticket_agent/ # Customer support example └── 3_2_email_agent/ # Email generation example
每个示例目录都遵循标准结构:
完成本教程后,你将掌握:
from pydantic import BaseModel from google.adk.agents import Agent class TicketInfo(BaseModel): title: str priority: str category: str urgency_level: int agent = Agent( name="support_agent", model="gemini-3-flash-preview", instruction="Extract ticket information...", response_format=TicketInfo, # This ensures structured output! )
from pydantic import BaseModel, Field, validator from typing import List, Optional class EmailData(BaseModel): subject: str = Field(..., min_length=5, max_length=100) recipients: List[str] = Field(..., min_items=1) priority: str = Field(..., regex="^(low|medium|high)$") @validator('recipients') def validate_emails(cls, v): # Custom email validation logic return v
结构化输出代理非常适合以下场景:
Optional免责声明:
本文档采用基于机器的 AI 翻译服务进行翻译。尽管我们力求准确,但请注意,自动翻译可能存在错误或不准确之处。应以原文语言版本的文档作为权威依据。如需获取关键信息,建议使用专业的人工翻译。对于因使用本翻译而产生的任何误解或误读,我们概不负责。