Configuring the SDK
API keys and clients
Section titled “API keys and clients”By default the SDK reads the OPENAI_API_KEY
environment variable when first imported. If setting the variable is not possible you can call setDefaultOpenAIKey()
manually.
import { setDefaultOpenAIKey } from '@openai/agents';
setDefaultOpenAIKey(process.env.OPENAI_API_KEY!); // sk-...
You may also pass your own OpenAI
client instance. The SDK will otherwise create one automatically using the default key.
import { OpenAI } from 'openai';import { setDefaultOpenAIClient } from '@openai/agents';
const customClient = new OpenAI({ baseURL: '...', apiKey: '...' });setDefaultOpenAIClient(customClient);
Finally you can switch between the Responses API and the Chat Completions API.
import { setOpenAIAPI } from '@openai/agents';
setOpenAIAPI('chat_completions');
Tracing
Section titled “Tracing”Tracing is enabled by default and uses the OpenAI key from the section above.
A separate key may be set via setTracingExportApiKey()
:
import { setTracingExportApiKey } from '@openai/agents';
setTracingExportApiKey('sk-...');
Tracing can also be disabled entirely:
import { setTracingDisabled } from '@openai/agents';
setTracingDisabled(true);
If you’d like to learn more about the tracing feature, please check out Tracing guide.
Debug logging
Section titled “Debug logging”The SDK uses the debug
package for debug logging. Set the DEBUG
environment variable to openai-agents*
to see verbose logs.
export DEBUG=openai-agents*
You can obtain a namespaced logger for your own modules using getLogger(namespace)
from @openai/agents
.
import { getLogger } from '@openai/agents';
const logger = getLogger('my-app');logger.debug('something happened');
Sensitive data in logs
Section titled “Sensitive data in logs”Certain logs may contain user data. Disable them by setting these environment variables.
To disable logging LLM inputs and outputs:
export OPENAI_AGENTS_DONT_LOG_MODEL_DATA=1
To disable logging tool inputs and outputs:
export OPENAI_AGENTS_DONT_LOG_TOOL_DATA=1