尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
第07章:智能体 (3)
7、Agent的高级用法3结构化输出结构化输出是Agent的核心功能之一它允许Agent以特定、可预测的格式返回数据而不是传统的自然 语言响应。通过结构化输出开发者可以直接获得 Pydantic模型 、 JSON对象 或 数据类 等结构化数 据这些数据能够被应用程序直接使用无需复杂的解析过程。7.1 模型 vs Agent的结构化输出对比第06章已经介绍过结构化输出当时的重点是与 模型对象 的绑定这里与Agent的结构化输出做对 比7.2 结构化输出的4种策略LangChain的create_agent()函数自动处理结构化输出的全过程。用户只需通过 “response_format”参 数 设置期望的输出模式Schema。当模型生成结构化数据时系统会自动捕获、验证并将结果存储在Agent状态的 structured_response 键中。def create_agent( ... response_format: Union[ ToolStrategy[StructuredResponseT], ProviderStrategy[StructuredResponseT], type[StructuredResponseT], None, ] )create_agent函数中的response_format参数支持四种不同的策略设置方式① ProviderStrategy使用模型提供商的 原生结构化输出功能 实现结构化输出。这里所说的“原生结构化输出”指的是大语言模型LLM提供商通过其API直接提供的、在模型响应 阶段就强制保证 输出格式符合预定规范 的能力这种能力能够在模型生成内容的源头确保结构化 准确性。适用于支持原生结构化输出的模型比如OpenAI、Anthropic Claude或xAI Grok等。from langchain.agents import create_agent from dotenv import load_dotenv from langchain.agents.structured_output import ProviderStrategy from langchain.chat_models import init_chat_model from pydantic import BaseModel, Field import os load_dotenv(overrideTrue) from rich import print as rprint AICODE_KEY os.getenv(AICODE_KEY) AICODE_URL os.getenv(AICODE_URL) #定义模型 model init_chat_model( model gpt-5.5, api_key AICODE_KEY, base_url AICODE_URL, ) class ContractInfo(BaseModel): 用户的联系方式 name:str Field(description用户的姓名) email:str Field(description用户的邮箱) phone:str Field(description用户的电话) agent create_agent( modelmodel, response_formatProviderStrategy(ContractInfo) ) responseagent.invoke({ messages:[{ role:user,content:从以下信息中提取用户信息小明的邮箱是2806242786qq.com 电话是10042115487 }] }) rprint(response)② ToolStrategy对于不支持原生结构化输出的模型LangChain采用“ToolStrategy”工具调用的方式实现结构化输出。此策略兼容绝大多数 支持工具调用 的现代模型其核心原理是动态创建一个 虚拟工具 该工具的输 入参数对应着期望的数据结构。当模型需要生成最终答案时系统会引导模型 调用这个虚拟工具 从而间接产生符合要求的结构化数 据。举例from langchain.agents import create_agent from dotenv import load_dotenv from langchain.chat_models import init_chat_model from pydantic import BaseModel, Field from langchain.agents.structured_output import ToolStrategy import os from rich import print as rprint load_dotenv(overrideTrue) AICODE_KEY os.getenv(AICODE_KEY) AICODE_URL os.getenv(AICODE_URL) #定义模型,调用的是ChatDeepseek() 必须关闭思考 modelinit_chat_model( modeldeepseek:deepseek-v4-pro, extra_body{thinking: {type: disabled}}, ) class ContractInfo(BaseModel): 用户的联系方式 name:str Field(description用户的姓名) email:str Field(description用户的邮箱) phone:str Field(description用户的电话) agent create_agent( modelmodel, response_formatToolStrategy(ContractInfo) ) responseagent.invoke({ messages:[{ role:user,content:从以下信息中提取用户信息小明的邮箱是2806242786qq.com 电话是10042115487 }] }) rprint(response)③ type / AutoStrategy官方没有在参数列表或官方文档列出这种策略但阅读源码可以看到。responseFormat ( ToolStrategy[SchemaT] | ProviderStrategy[SchemaT] | AutoStrategy[SchemaT] ) Union type for all supported response format strategies.当我们直接传入一个定义类型时LangChain会自动包装为AutoStrategy触发 自动选择策略 如果 模型支持原生结构化输出如OpenAI、Anthropic Claude或xAI Grok则优先使用 ProviderStrategy否则使用ToolStrategyfrom langchain.agents import create_agent from dotenv import load_dotenv from langchain.chat_models import init_chat_model from pydantic import BaseModel, Field from langchain.agents.structured_output import AutoStrategy import os from rich import print as rprint load_dotenv(overrideTrue) AICODE_KEY os.getenv(AICODE_KEY) AICODE_URL os.getenv(AICODE_URL) #定义模型,调用的是ChatDeepseek() 必须关闭思考 modelinit_chat_model( modeldeepseek:deepseek-v4-pro, extra_body{thinking: {type: disabled}}, ) class ContractInfo(BaseModel): 用户的联系方式 name:str Field(description用户的姓名) email:str Field(description用户的邮箱) phone:str Field(description用户的电话) agent create_agent( modelmodel, response_formatAutoStrategy(ContractInfo) ) responseagent.invoke({ messages:[{ role:user,content:从以下信息中提取用户信息小明的邮箱是2806242786qq.com 电话是10042115487 }] }) rprint(response)特别注意在LangChain 1.0及以上版本中直接传递模式如response_formatContactInfo不再支 持必须显式使用ToolStrategy或ProviderStrategy。经过测试目前LangChain 1.2版本还可使 用。④ None默认配置表示不以结构化输出以 自然语言 响应用户问题。总结在实际大模型Agent开发场景中如果使用到了结构化输出推荐使用 “ToolStrategy”策略 所以后续 重点介绍这种策略方式结构化输出。
RELATED

相关推荐

MiniMax-H3 Turbo LoRA ComfyUI精简版实测:音视频同步生成终于不用折腾了

MiniMax-H3 Turbo LoRA ComfyUI精简版实测:音视频同步生成终于不用折腾了

做AI视频的朋友应该都遇到过这个糟心事——MiniMax-H3 原生生成音视频的时候,采样步数高得离谱,等一张卡跑完一个片段,咖啡都凉了半杯。更烦的是,早期那些加速方案大多需要额外跑一段独立脚本,和 ComfyUI 的标准工作流…

📅 2026/9/2 9:33:48
Muse Glimmer:消费级硬件上跑300亿参数,本地AI代理迎来真·可用时代

Muse Glimmer:消费级硬件上跑300亿参数,本地AI代理迎来真·可用时代

大模型圈最近有个挺有意思的趋势——大家不再一味追求参数堆到天上,反而开始琢磨怎么让足够强的模型在普通用户的设备上流畅跑起来。Meta Superintelligence Lab 刚放出来的 Muse Glimmer,走的正是这条路。这个拥有近300亿参数的因果语言模型&#xff0c…

📅 2026/9/2 18:48:49
告别复杂eSIM配置!MiniLPA:3分钟轻松掌握跨平台eSIM管理终极指南 [特殊字符]

告别复杂eSIM配置!MiniLPA:3分钟轻松掌握跨平台eSIM管理终极指南 [特殊字符]

告别复杂eSIM配置!MiniLPA:3分钟轻松掌握跨平台eSIM管理终极指南 🚀 【免费下载链接】MiniLPA Professional LPA UI 项目地址: https://gitcode.com/gh_mirrors/mi/MiniLPA 还在为繁琐的eSIM配置头疼吗?还在用命令行工具管…

📅 2026/9/5 5:22:03
MORE NEWS

更多资讯

📰

YOLOv13改进策略【卷积层篇】| CVPR2024 UniRepLKNet Block,大核感受野的可重参数化卷积

本文基于 YOLOv13 官方仓库(iMoonLab/yolov13,ultralytics 8.3.63 fork) 实测整理,Windows/CPU 全程可跑。UniRepLKNet(Ding et al., CVPR 2024《UniRepLKNet: A Universal Perception Large-Kernel ConvNet》,官方源码 github.com/AILab-CVC/UniRepLKNet)给"大核卷…

📰

YOLOv13改进策略【卷积层篇】| CVPR2023 DCNv3 可变形卷积,采样点第三次进化

本文基于 YOLOv13 官方仓库(iMoonLab/yolov13,ultralytics 8.3.63 fork) 实测整理,Windows/CPU 全程可跑。DCNv3(Wang et al., CVPR 2023《InternImage: Exploring Large-Scale Vision Foundation Models with Deformable Convolutions》,官方源码 github.com/OpenGVLab/…

📰

YOLOv13改进策略【卷积层篇】| 2024 MobileNetV4 UIB 万能倒残差,一块卷积通吃轻量微结构

本文基于 YOLOv13 官方仓库(iMoonLab/yolov13,ultralytics 8.3.63 fork) 实测整理,Windows/CPU 全程可跑。MobileNetV4(Qin et al., CVPR 2024 Workshop,《MobileNetV4: Universal Models for the Mobile Ecosystem》,arXiv 2404.10518;官方实现为 TensorFlow,无官方 …

📰

使用 Rube MCP 自动化 Aero Workflow:awesome-claude-skills 中 aero-workflow-automation Skill 实战指南

AI 技能AI 插件人工智能工作流自动化 【免费下载链接】awesome-claude-skills A curated list of awesome Claude Skills, resources, and tools for customizing Claude AI workflows 项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-claude-skills 点击…

📰

DGCharts(Charts 5.x)iOS/tvOS/macOS 图表库完全指南:从安装集成到八大图表实战

数据可视化图表库移动开发 【免费下载链接】Charts Beautiful charts for iOS/tvOS/OSX! The Apple side of the crossplatform MPAndroidChart. 项目地址: https://gitcode.com/gh_mirrors/cha/Charts 点击查看 免费下载 DGCharts 是著名 Android 图表库 MPAndroi…

📰

security-audit-skill HTTP 协议与身份认证安全审计指南:从请求分帧到 mTLS 的系统化狩猎方法

AI 技能应用安全 【免费下载链接】security-audit-skill A coding-agent skill for multi-phase security audits with independently verified, machine-readable findings 项目地址: https://gitcode.com/GitHub_Trending/se/security-audit-skill 点击查看 免费下…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬