Skip to content

設定 SDK

API 金鑰與用戶端

預設情況下,SDK 在被匯入時,會自動尋找 OPENAI_API_KEY 環境變數,以用於大型語言模型 (LLM) 請求與追蹤。如果你無法在應用程式啟動前設定該環境變數,也可以使用 [set_default_openai_key()][agents.set_default_openai_key] 函式來設定 API 金鑰。

from agents import set_default_openai_key

set_default_openai_key("sk-...")

另外,你也可以設定要使用的 OpenAI client。預設情況下,SDK 會建立一個 AsyncOpenAI 實例,並使用環境變數中的 API 金鑰或上述設定的預設金鑰。你可以透過 [set_default_openai_client()][agents.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()][agents.set_default_openai_api] 函式,將其覆寫為使用 Chat Completions API。

from agents import set_default_openai_api

set_default_openai_api("chat_completions")

追蹤(Tracing)

追蹤功能預設為啟用狀態。預設情況下,它會使用上方章節所提到的 OpenAI API 金鑰(也就是環境變數或你所設定的預設金鑰)。你也可以透過 [set_tracing_export_api_key][agents.set_tracing_export_api_key] 函式,明確指定用於追蹤的 API 金鑰。

from agents import set_tracing_export_api_key

set_tracing_export_api_key("sk-...")

您也可以使用 [set_tracing_disabled()][agents.set_tracing_disabled] 函式來完全停用追蹤(tracing)。

from agents import set_tracing_disabled

set_tracing_disabled(True)

除錯日誌(Debug logging)

SDK 提供了兩個未設置任何處理器(handler)的 Python 記錄器(logger)。預設情況下,這表示警告和錯誤會發送到 stdout,但其他日誌則會被抑制。

若要啟用詳細日誌記錄,請使用 [enable_verbose_stdout_logging()][agents.enable_verbose_stdout_logging] 函式。

from agents import enable_verbose_stdout_logging

enable_verbose_stdout_logging()

另外,你也可以透過新增 handlers、filters、formatters 等方式來自訂日誌。你可以在 Python logging guide 中閱讀更多相關資訊。

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())

日誌中的敏感資料

某些日誌可能包含敏感資料(例如,使用者資料)。如果你希望停用這些資料的日誌紀錄,可以設定以下環境變數。

若要停用大型語言模型 (LLM) 輸入與輸出的日誌紀錄:

export OPENAI_AGENTS_DONT_LOG_MODEL_DATA=1

若要停用 logging 工具(Tools)輸入與輸出:

export OPENAI_AGENTS_DONT_LOG_TOOL_DATA=1