配置
本页介绍 SDK 范围内的默认设置,你通常会在应用启动时一次性完成配置,例如默认 OpenAI 密钥或客户端、默认 OpenAI API 形态、追踪导出默认值以及日志行为。
如果你需要改为配置某个特定智能体或某次运行,请先查看:
API 密钥与客户端
默认情况下,SDK 使用 OPENAI_API_KEY 环境变量来处理 LLM 请求和追踪。该密钥会在 SDK 首次创建 OpenAI 客户端时解析(延迟初始化),因此请在首次模型调用前设置该环境变量。如果你无法在应用启动前设置该环境变量,可以使用 set_default_openai_key() 函数来设置密钥。
或者,你也可以配置要使用的 OpenAI 客户端。默认情况下,SDK 会创建一个 AsyncOpenAI 实例,使用环境变量中的 API 密钥或上面设置的默认密钥。你可以通过 set_default_openai_client() 函数进行更改。
from openai import AsyncOpenAI
from agents import set_default_openai_client
custom_client = AsyncOpenAI(base_url="...", api_key="...")
set_default_openai_client(custom_client)
最后,你还可以自定义所使用的 OpenAI API。默认情况下,我们使用 OpenAI Responses API。你可以通过 set_default_openai_api() 函数将其覆盖为 Chat Completions API。
追踪
默认启用追踪。默认情况下,它使用与上文模型请求相同的 OpenAI API 密钥(即环境变量中的密钥或你设置的默认密钥)。你可以使用 set_tracing_export_api_key 函数专门设置用于追踪的 API 密钥。
如果在使用默认导出器时,你需要将追踪归属到特定组织或项目,请在应用启动前设置以下环境变量:
你也可以按单次运行设置追踪 API 密钥,而无需更改全局导出器。
from agents import Runner, RunConfig
await Runner.run(
agent,
input="Hello",
run_config=RunConfig(tracing={"api_key": "sk-tracing-123"}),
)
你还可以使用 set_tracing_disabled() 函数完全禁用追踪。
如果你希望保持追踪启用,但从追踪负载中排除可能的敏感输入/输出,请将 RunConfig.trace_include_sensitive_data 设置为 False:
from agents import Runner, RunConfig
await Runner.run(
agent,
input="Hello",
run_config=RunConfig(trace_include_sensitive_data=False),
)
你也可以不改代码,而是在应用启动前设置以下环境变量来更改默认行为:
完整的追踪控制请参阅追踪指南。
调试日志
SDK 定义了两个 Python 日志记录器(openai.agents 和 openai.agents.tracing),默认不附加处理器。日志遵循你应用的 Python 日志配置。
要启用详细日志,请使用 enable_verbose_stdout_logging() 函数。
或者,你可以通过添加处理器、过滤器、格式化器等来自定义日志。详情可参阅 Python 日志指南。
import logging
logger = logging.getLogger("openai.agents") # or openai.agents.tracing for the Tracing logger
# To make all logs show up
logger.setLevel(logging.DEBUG)
# To make info and above show up
logger.setLevel(logging.INFO)
# To make warning and above show up
logger.setLevel(logging.WARNING)
# etc
# You can customize this as needed, but this will output to `stderr` by default
logger.addHandler(logging.StreamHandler())
日志中的敏感数据
某些日志可能包含敏感数据(例如用户数据)。
默认情况下,SDK 不会记录 LLM 输入/输出或工具输入/输出。这些保护由以下项控制:
如果你需要临时包含这些数据以进行调试,请在应用启动前将任一变量设为 0(或 false):