本示例演示了在使用 reasoning=True
或设置特定的 reasoning_model
时,如何访问和打印 reasoning_content
。
from agno.agent import Agent
from agno.models.openai import OpenAIChat
print("\n=== 示例 1:使用 reasoning=True (默认 COT) ===\n")
# 创建带有 reasoning=True 的代理 (默认模型 COT)
agent = Agent(
model=OpenAIChat(id="gpt-4o"),
reasoning=True,
markdown=True,
)
# 运行代理 (非流式)
print("使用 reasoning=True 运行 (非流式)...")
response = agent.run("前 10 个自然数的和是多少?")
# 打印 reasoning_content
print("\n--- 响应中的 reasoning_content ---")
if hasattr(response, "reasoning_content") and response.reasoning_content:
print(response.reasoning_content)
else:
print("在响应中未找到 reasoning_content")
print("\n\n=== 示例 2:使用自定义 reasoning_model ===\n")
# 使用特定的 reasoning_model 创建代理
agent_with_reasoning_model = Agent(
model=OpenAIChat(id="gpt-4o"),
reasoning_model=OpenAIChat(id="gpt-4o"), # 应默认为手动 COT
markdown=True,
)
# 运行代理 (非流式)
print("指定 reasoning_model 运行 (非流式)...")
response = agent_with_reasoning_model.run(
"前 10 个自然数的和是多少?"
)
# 打印 reasoning_content
print("\n--- 响应中的 reasoning_content ---")
if hasattr(response, "reasoning_content") and response.reasoning_content:
print(response.reasoning_content)
else:
print("在响应中未找到 reasoning_content")
print("\n\n=== 示例 3:流式处理 reasoning=True ===\n")
# 为流式处理创建一个新的代理
streaming_agent = Agent(
model=OpenAIChat(id="gpt-4o"),
reasoning=True,
markdown=True,
)
# 打印响应 (包括处理流式响应)
print("使用 reasoning=True 运行 (流式)...")
streaming_agent.print_response(
"5! (阶乘) 的值是多少?",
stream=True,
show_full_reasoning=True,
)
# 在流式处理后从代理的 run_response 中访问 reasoning_content
print("\n--- 流式处理后代理的 run_response 中的 reasoning_content ---")
if (
hasattr(streaming_agent, "run_response")
and streaming_agent.run_response
and hasattr(streaming_agent.run_response, "reasoning_content")
and streaming_agent.run_response.reasoning_content
):
print(streaming_agent.run_response.reasoning_content)
else:
print("在流式处理后为代理的 run_response 未找到 reasoning_content")
print("\n\n=== 示例 4:流式处理 reasoning_model ===\n")
# 为流式处理创建一个新的带有 reasoning_model 的代理
streaming_agent_with_model = Agent(
model=OpenAIChat(id="gpt-4o"),
reasoning_model=OpenAIChat(id="gpt-4o"),
markdown=True,
)
# 打印响应 (包括处理流式响应)
print("指定 reasoning_model 运行 (流式)...")
streaming_agent_with_model.print_response(
"5! (阶乘) 的值是多少?",
stream=True,
show_full_reasoning=True,
)
# 在流式处理后从代理的 run_response 中访问 reasoning_content
print("\n--- 流式处理后代理的 run_response 中的 reasoning_content ---")
if (
hasattr(streaming_agent_with_model, "run_response")
and streaming_agent_with_model.run_response
and hasattr(streaming_agent_with_model.run_response, "reasoning_content")
and streaming_agent_with_model.run_response.reasoning_content
):
print(streaming_agent_with_model.run_response.reasoning_content)
else:
print("在流式处理后为代理的 run_response 未找到 reasoning_content")
创建虚拟环境
打开 Terminal
并创建一个 python 虚拟环境。
python3 -m venv .venv
source .venv/bin/activate
设置你的 API 密钥
export OPENAI_API_KEY=xxx
安装库
pip install -U openai agno
运行示例
python cookbook/reasoning/agents/capture_reasoning_content_default_COT.py