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.

DomainDescriptionOpenAI Primitives
ModelsCore intelligence capable of reasoning, making decisions, and processing different modalities.o1, o3-mini, GPT-4.5, GPT-4o, GPT-4o-mini
ToolsInterface to the world, interact with environment, function calling, built-in tools, etc.Function calling, Web search, File search, Computer use
Knowledge & memoryAugment agents with external and persistent knowledge.Vector stores, File search, Embeddings
GuardrailsPrevent irrelevant, harmful, or undesirable behavior.Moderation, Instruction hierarchy
OrchestrationDevelop, deploy, monitor, and improve agents.Agents SDK, Tracing, Evaluations, Fine-tuning

Models


ModelAgentic Strengths
o1 & o3-miniBest for long-term planning, hard tasks, and reasoning.
GPT-4.5Best for agentic execution.
GPT-4oGood balance of agentic capability and latency.
GPT-4o-miniBest 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.

ToolDescription
Function callingInteract with developer-defined code.
Web searchFetch up-to-date information from the web.
File searchPerform semantic search across your documents.
Computer useUnderstand 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.

Agent Traces UI in OpenAI Dashboard

PhaseDescriptionOpenAI Primitives
Build & DeployRapidly build agents, enforce guardrails, and handle conversational flows using the Agents SDK.Agents SDK
MonitorObserve agent behavior in real-time, debug issues, and gain insights through tracing.Tracing
Evaluate & ImproveMeasure 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)
Previous
Ollama