ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

agno 实战:OpenAI 推理模型(o3-mini / o4-mini / gpt-4.1)的 effort、stream 与 summary 三模式深度解析

2026/9/11 12:33:47 拓冰建站 浏览量
agno 实战:OpenAI 推理模型(o3-mini / o4-mini / gpt-4.1)的 effort、stream 与 summary 三模式深度解析 agno 实战OpenAI 推理模型o3-mini / o4-mini / gpt-4.1的 effort、stream 与 summary 三模式深度解析【免费下载链接】agnoBuild, run, and manage agent platforms.项目地址: https://gitcode.com/GitHub_Trending/ag/agno本文基于 agno 仓库cookbook/10_reasoning/models/openai/目录下的推理模型示例README展开系统讲解如何用 agno 接入 OpenAI 推理系列模型覆盖reasoning_effort推理力度、reasoning_stream推理流式输出与reasoning_summary推理摘要三大核心能力并结合libs/agno/agno/models/openai/源码与libs/agno/agno/run/agent.py事件系统帮助读者从会跑示例进阶到理解推理链路底层机制可直接套用到自己的 Agent 与工具编排场景中。一、为什么在 agno 中使用 OpenAI 推理模型OpenAI 的 o3-mini、o4-mini 等推理模型reasoning models会在生成最终答案之前进行思考reasoning在处理复杂问题如伦理难题分析、多维度对比报告、长历史背景推理时显著提升回答质量。agno 将其封装为开箱即用的模型后端核心价值体现在统一接入通过agno.models.openai模块即可使用 Chat Completions 与 Responses API 两种后端无需关心底层协议差异参数透传reasoning_effort、reasoning_summary等推理专属参数直接作为模型构造参数暴露配置直观事件化流式推理过程与最终输出通过RunEvent事件流区分开发者可以精确控制思考中与回答中的 UI 呈现。本目录共提供 6 个示例分别覆盖纯推理o3_mini.py、推理 工具o3_mini_with_tools.py、推理力度调节reasoning_effort.py、独立推理模型reasoning_model_gpt_4_1.py、推理流式事件reasoning_stream.py、推理摘要reasoning_summary.py。下面逐一展开。二、最小示例用 o3-mini 完成一次推理问答o3_mini.py 展示了最精简的接入方式——只需指定模型 ID 即可from agno.agent import Agent from agno.models.openai import OpenAIChat agent Agent( modelOpenAIChat(ido3-mini), ) agent.print_response( Solve the trolley problem. Evaluate multiple ethical frameworks. Include an ASCII diagram of your solution., streamTrue, )关键点OpenAIChat是 agno 对 OpenAI Chat Completions 后端的封装ido3-mini指定推理模型提示词刻意要求评估多个伦理框架 绘制 ASCII 示意图这正是推理模型的强项场景——o3-mini 会先在内部展开推理再输出结构化的多视角分析streamTrue开启流式输出最终答案会逐段打印。从源码看OpenAIChat与OpenAIResponses同属于 libs/agno/agno/models/openai/ 模块两者都支持推理参数只是底层 API 不同Responses API 的推理控制更完整详见后文。三、推理 工具让 o3-mini 联网取证后作答o3_mini_with_tools.py 在上一示例基础上挂载了搜索工具实现先检索、再推理、后总结的完整链路from agno.agent import Agent from agno.models.openai import OpenAIChat from agno.tools.websearch import WebSearchTools agent Agent( modelOpenAIChat(ido3-mini), tools[WebSearchTools(enable_newsFalse)], instructionsUse tables to display data., markdownTrue, ) agent.print_response(Write a report comparing NVDA to TSLA, streamTrue)要点解读工具即推理素材WebSearchTools(enable_newsFalse)禁用新闻类结果聚焦结构化财经数据Agent 会自主决定何时调用搜索工具获取 NVDA 与 TSLA 的最新行情与财务指标输出约束instructionsUse tables to display data.要求最终报告以表格呈现配合markdownTrue获得格式化输出——推理模型擅长在工具返回数据的基础上做对比归纳该模式适用于所有结论依赖实时数据的场景例如竞品分析、市场调研、技术选型报告。四、reasoning_effort精确控制推理强度reasoning_effort.py 演示了推理力度参数的用法agent Agent( modelOpenAIChat(ido3-mini, reasoning_efforthigh), tools[WebSearchTools(enable_newsFalse)], instructionsUse tables to display data., markdownTrue, )reasoning_effort直接决定模型在思考阶段投入的计算量直接影响推理深度、延迟与成本取值含义适用场景none关闭推理简单问答、低延迟诉求minimal极少推理格式化、改写类任务low轻量推理常规信息查询medium中等推理一般分析任务默认档位high较强推理复杂多步推理xhigh高强度推理高难度数学/代码题max最大推理力度最复杂、可接受高成本的任务从源码确认该类型定义于 libs/agno/agno/models/openai/types.pyReasoningEffort Union[Literal[none, minimal, low, medium, high, xhigh, max], str]即在 responses.py 中会被映射到请求体reasoning.effort字段最终由 OpenAI 服务端生效。str兜底意味着未来新增档位也能直接透传无需升级 agno。实践建议对延迟敏感的应用从low起步对正确性敏感的任务代码生成、数学推理使用high及以上并按响应质量与成本折衷调优。五、reasoning_model独立指定思考模型与回答模型reasoning_model_gpt_4_1.py 展示了 agno 推理链路中最灵活的能力——把思考和回答拆给两个不同的模型from agno.agent import Agent from agno.models.openai.responses import OpenAIResponses agent Agent( modelOpenAIResponses(idgpt-5.6-luna), reasoning_modelOpenAIResponses(idgpt-4.1), ) agent.print_response( Solve the trolley problem. Evaluate multiple ethical frameworks. Include an ASCII diagram of your solution., streamTrue, )设计意图model负责产出最终答案reasoning_model负责先行的推理过程例如可以用一个推理能力强的模型想清楚、用一个输出风格更好的模型作答在成本与质量之间取得平衡源码层面OpenAIResponses._using_reasoning_model()见 responses.py会判断是否配置了独立推理模型并在请求构造时把推理模型与主模型分别下发同时当启用独立推理模型且未显式关闭时会结合store参数管理会话上下文responses.py。注意示例中gpt-5.6-luna、gpt-4.1为仓库编写时使用的模型 ID实际运行时请替换为你账户可用的模型名。六、推理流式输出用 RunEvent 捕捉思考过程reasoning_stream.py 是理解 agno 推理链路的关键示例。它默认使用print_response(streamTrue, stream_eventsTrue)一键打印全部事件同时注释了手动事件循环的完整写法from agno.agent import Agent from agno.models.openai import OpenAIResponses from agno.run.agent import RunEvent # noqa agent Agent( reasoning_modelOpenAIResponses( ido3-mini, reasoning_effortlow, ), instructionsThink step by step about the problem., ) prompt Analyze the key factors that led to the signing of the Treaty of Versailles in 1919 ... agent.print_response(prompt, streamTrue, stream_eventsTrue)手动事件循环可以精确感知推理全过程的每个阶段for run_output_event in agent.run(prompt, streamTrue, stream_eventsTrue): if run_output_event.event RunEvent.run_started: print(f\nEVENT: {run_output_event.event}) elif run_output_event.event RunEvent.reasoning_started: print(Reasoning started...\n) elif run_output_event.event RunEvent.reasoning_content_delta: # 推理内容的增量流式事件 print(run_output_event.reasoning_content, end, flushTrue) elif run_output_event.event RunEvent.reasoning_step: print(f\nEVENT: {run_output_event.event}) elif run_output_event.event RunEvent.reasoning_completed: print(f\n\nEVENT: {run_output_event.event}) elif run_output_event.event RunEvent.run_content: if run_output_event.content: print(run_output_event.content, end, flushTrue) elif run_output_event.event RunEvent.run_completed: print(f\n\nEVENT: {run_output_event.event})这些事件的枚举定义与事件模型位于 libs/agno/agno/run/agent.py事件触发时机负载字段reasoning_started推理阶段开始—reasoning_step完成一个推理步骤—reasoning_content_delta推理内容增量到达流式reasoning_contentreasoning_completed推理阶段结束、即将输出正式回答—run_content/run_completed正式回答的增量与完成content实战价值在 Web UI 中你可以用reasoning_started显示正在思考…的动画用reasoning_content_delta实时滚动思考过程用reasoning_completed切换回正式回答流让用户完整感知 Agent 的思考路径。七、reasoning_summary只输出推理摘要节省 tokensreasoning_summary.py 演示了 Responses API 的推理摘要能力from agno.agent import Agent from agno.models.openai import OpenAIResponses from agno.tools.websearch import WebSearchTools agent Agent( modelOpenAIResponses( ido4-mini, reasoning_summaryauto, # 请求推理摘要 ), tools[WebSearchTools(enable_newsFalse)], instructionsUse tables to display the analysis, markdownTrue, ) agent.print_response(Write a brief report comparing NVDA to TSLA, streamTrue)解决什么问题推理模型输出的完整思考链可能很长若终端用户不需要看全部过程reasoning_summary可让服务端只返回一份简洁的推理摘要显著降低输出 tokens 与延迟可选项ReasoningSummary Union[Literal[auto, concise, detailed], str]见 libs/agno/agno/models/openai/types.py——auto让模型自行决定concise尽量精简detailed保留较多推理细节源码对应在 responses.py 中该参数被写入请求体reasoning.summary返回时推理摘要会通过response.reasoning_summary_text.delta流式事件送达并被归并到model_response.reasoning_contentresponses.py因此与上一节的reasoning_content_delta事件无缝衔接前端渲染逻辑完全复用。八、OpenAIChat 与 OpenAIResponses 的选择建议两个示例文件分别使用了agno.models.openai.OpenAIChat与agno.models.openai.responses.OpenAIResponses二者可从以下维度区分维度OpenAIChatChat CompletionsOpenAIResponsesResponses API底层协议/chat/completions/responses推理参数支持reasoning_effort支持reasoning_effort、reasoning_summary、独立reasoning_model推理流式事件基础增量完整的reasoning_content_delta/reasoning_summary_text.delta等适用场景常规 Agent、兼容性优先深度使用推理能力、需要精细控制思考链路从源码看OpenAIResponses的请求构造将reasoning_effort与reasoning_summary统一收敛到reasoning对象responses.py是当前推理能力最完整的入口。若你的应用需要推理摘要 独立推理模型 精细流式事件优先选OpenAIResponses。九、运行环境与快速验证安装依赖确保已安装 agno本仓库位于 libs/agno/并设置OPENAI_API_KEY环境变量运行示例以本目录为例export OPENAI_API_KEYsk-... python cookbook/10_reasoning/models/openai/o3_mini.py python cookbook/10_reasoning/models/openai/reasoning_summary.py模型可用性o3-mini、o4-mini等推理模型 ID 需在你的 OpenAI 账户下可用reasoning_model_gpt_4_1.py中的gpt-5.6-luna为示例编写时的 ID请按实际可用模型替换流式验证运行reasoning_stream.py时先观察思考过程逐字打印再看到正式回答即可确认推理链路完整生效。十、小结三条能力线如何组合本目录虽只含 6 个示例却覆盖了推理模型接入的全部核心维度可以自由组合力度控制reasoning_effort决定想多深——low到max七档可选兼顾延迟与质量链路拆分reasoning_model允许思考与回答分属不同模型优化成本结构过程可视化RunEvent推理事件流让思考过程可被 UI 完整呈现输出裁剪reasoning_summary在不需要全量思考链时压缩输出节省 tokens。三者叠加即可构建低延迟、可解释、成本可控的生产级推理 Agent。更多推理相关示例覆盖 Anthropic、Gemini、DeepSeek、xAI 等模型可参阅 cookbook/10_reasoning/ 顶层目录源码级实现细节可继续阅读 libs/agno/agno/models/openai/responses.py 与 libs/agno/agno/run/agent.py。【免费下载链接】agnoBuild, run, and manage agent platforms.项目地址: https://gitcode.com/GitHub_Trending/ag/agno创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考