Skip to content

Models 模型

Agents SDK 内置支持两种类型的 OpenAI 模型:

混合搭配不同模型

在单个工作流中,你可能想为每个 agent 使用不同的模型。比如,你可以用一个更小更快的模型来做分类工作,同时用更大更强的模型来处理复杂任务。在配置 Agent 时,你可以通过以下方式选择特定模型:

  1. 直接传入 OpenAI 模型的名称。
  2. 传入任意模型名称 + 一个 ModelProvider,它能将该名称映射到一个 Model 实例。
  3. 直接提供一个 Model 实现。

Note

虽然我们的 SDK 同时支持 OpenAIResponsesModelOpenAIChatCompletionsModel 两种形式,但我们建议在每个工作流中只使用一种模型形式,因为这两种形式支持的功能和工具集不同。如果你的工作流需要混合使用不同模型形式,请确保你使用的所有功能在两种形式上都可用。

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)
  1. 直接设置 OpenAI 模型的名称。
  2. 提供一个 Model 实现。

使用其他 LLM 提供商

许多提供商也支持 OpenAI API 格式,这意味着你可以向现有的 OpenAI 模型实现传递一个 base_url,轻松使用它们。ModelSettings 用于配置你选择的模型的调优参数(例如 temperature、top_p 等)。

external_client = AsyncOpenAI(
    api_key="外部API密钥",
    base_url="https://api.external.com/v1/",
)

spanish_agent = Agent(
    name="西班牙语 agent",
    instructions="你只说西班牙语。",
    model=OpenAIChatCompletionsModel(
        model="外部模型名称",
        openai_client=external_client,
    ),
    model_settings=ModelSettings(temperature=0.5),
)