Models 模型
Agents SDK 内置支持两种类型的 OpenAI 模型:
- 推荐使用:
OpenAIResponsesModel,它通过新的 Responses API 调用 OpenAI API。 OpenAIChatCompletionsModel,它通过 Chat Completions API 调用 OpenAI API。
混合搭配不同模型
在单个工作流中,你可能想为每个 agent 使用不同的模型。比如,你可以用一个更小更快的模型来做分类工作,同时用更大更强的模型来处理复杂任务。在配置 Agent 时,你可以通过以下方式选择特定模型:
- 直接传入 OpenAI 模型的名称。
- 传入任意模型名称 + 一个
ModelProvider,它能将该名称映射到一个 Model 实例。 - 直接提供一个
Model实现。
Note
虽然我们的 SDK 同时支持 OpenAIResponsesModel 和 OpenAIChatCompletionsModel 两种形式,但我们建议在每个工作流中只使用一种模型形式,因为这两种形式支持的功能和工具集不同。如果你的工作流需要混合使用不同模型形式,请确保你使用的所有功能在两种形式上都可用。
from agents import Agent, Runner, AsyncOpenAI, OpenAIChatCompletionsModel
import asyncio
spanish_agent = Agent(
name="西班牙语 agent",
instructions="你只说西班牙语。",
model="o3-mini", # (1)!
)
english_agent = Agent(
name="英语 agent",
instructions="你只说英语",
model=OpenAIChatCompletionsModel( # (2)!
model="gpt-4o",
openai_client=AsyncOpenAI()
),
)
triage_agent = Agent(
name="分类 agent",
instructions="根据请求的语言将任务转交给适当的 agent。",
handoffs=[spanish_agent, english_agent],
model="gpt-3.5-turbo",
)
async def main():
result = await Runner.run(triage_agent, input="Hola, ¿cómo estás?")
print(result.final_output)
- 直接设置 OpenAI 模型的名称。
- 提供一个
Model实现。
使用其他 LLM 提供商
许多提供商也支持 OpenAI API 格式,这意味着你可以向现有的 OpenAI 模型实现传递一个 base_url,轻松使用它们。ModelSettings 用于配置你选择的模型的调优参数(例如 temperature、top_p 等)。