AI
OpenAI Agents
Agents ======
Learn how to build agents with the OpenAI API.
Agents represent systems that intelligently accomplish tasks, ranging from executing simple workflows to pursuing complex, open-ended objectives.
OpenAI provides a rich set of composable primitives that enable you to build agents. This guide walks through those primitives, and how they come together to form a robust agentic platform.
Overview
Building agents involves assembling components across several domains—such as models, tools, knowledge & memory, guardrails, and orchestration—and OpenAI provides composable primitives for each.
Domain | Description | OpenAI Primitives |
---|---|---|
Models | Core intelligence capable of reasoning, making decisions, and processing different modalities. | o1, o3-mini, GPT-4.5, GPT-4o, GPT-4o-mini |
Tools | Interface to the world, interact with environment, function calling, built-in tools, etc. | Function calling, Web search, File search, Computer use |
Knowledge & memory | Augment agents with external and persistent knowledge. | Vector stores, File search, Embeddings |
Guardrails | Prevent irrelevant, harmful, or undesirable behavior. | Moderation, Instruction hierarchy |
Orchestration | Develop, deploy, monitor, and improve agents. | Agents SDK, Tracing, Evaluations, Fine-tuning |
Models
Model | Agentic Strengths |
---|---|
o1 & o3-mini | Best for long-term planning, hard tasks, and reasoning. |
GPT-4.5 | Best for agentic execution. |
GPT-4o | Good balance of agentic capability and latency. |
GPT-4o-mini | Best for low-latency. |
Large language models (LLMs) are at the core of many agentic systems, responsible for making decisions and interacting with the world. OpenAI’s models support a wide range of capabilities:
- High intelligence: Capable of reasoning and planning to tackle the most difficult tasks.
- Tools: Call your functions and leverage OpenAI's built-in tools.
- Multimodality: Natively understand text, images, audio, code, and documents.
- Low-latency: Support for real-time audio conversations and smaller, faster models.
For detailed model comparisons, visit the models page.
Tools
Tools enable agents to interact with the world. OpenAI supports function calling to connect with your code, and built-in tools for common tasks like web searches and data retrieval.
Tool | Description |
---|---|
Function calling | Interact with developer-defined code. |
Web search | Fetch up-to-date information from the web. |
File search | Perform semantic search across your documents. |
Computer use | Understand and control a computer or browser. |
Knowledge & memory
Knowledge and memory help agents store, retrieve, and utilize information beyond their initial training data. Vector stores enable agents to search your documents semantically and retrieve relevant information at runtime. Meanwhile, embeddings represent data efficiently for quick retrieval, powering dynamic knowledge solutions and long-term agent memory. You can integrate your data using OpenAI’s vector stores and Embeddings API.
Orchestration
Building agents is a process. OpenAI provides tools to effectively build, deploy, monitor, evaluate, and improve agentic systems.
Phase | Description | OpenAI Primitives |
---|---|---|
Build & Deploy | Rapidly build agents, enforce guardrails, and handle conversational flows using the Agents SDK. | Agents SDK |
Monitor | Observe agent behavior in real-time, debug issues, and gain insights through tracing. | Tracing |
Evaluate & Improve | Measure agent performance, identify areas for improvement, and refine your agents. | EvaluationsFine-tuning |
Install
$ pip install openai-agents
Run a demo:
from agents import Agent, Runner
agent = Agent(name="Assistant", instructions="You are a helpful assistant")
result = Runner.run_sync(agent, "Write a haiku about recursion in programming.")
print(result.final_output)
# Code within the code,
# Functions calling themselves,
# Infinite loop's dance.
Using Ollama
from agents import Agent, Runner, AsyncOpenAI, OpenAIChatCompletionsModel
ollama_client = AsyncOpenAI(
api_key="",
base_url="http://localhost:11434/v1/"
)
agent = Agent(
name="Assistant",
instructions="You are a helpful assistant",
model=OpenAIChatCompletionsModel(
model="llama3.2",
openai_client=ollama_client
)
)
result = Runner.run_sync(agent, "Generate a Laravel installer")
print(result.final_output)