Build production-grade multi-agent AI applications using the OpenAI Agents SDK with handoffs, guardrails, tracing, and MCP server integration.
Scanned 9/6/2026
Install to Claude Code
npx -y skills add frank-luongt/faos-skills-marketplace --skill openai-agents-sdk --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Openai Agents Sdk?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/frank-luongt-openai-agents-sdk-84cc21d6)More formats (shields.io, HTML) on the badges page.
<!-- AUTO-GENERATED by export-skills.py — DO NOT EDIT -->
---
name: openai-agents-sdk
description: OpenAI Agents SDK patterns for multi-agent systems with handoffs, guardrails, tracing, and MCP support. Use when building production agent applications using OpenAI models with tool use, agent delegation, or MCP server integration.
tags: [openai, agents, multi-agent, mcp]
---
# OpenAI Agents SDK
Build production-grade multi-agent AI applications using the OpenAI Agents SDK with handoffs, guardrails, tracing, and MCP server integration.
## When to Use
- Building multi-agent systems with specialized agents that hand off to each other
- Integrating MCP servers as tool providers for OpenAI agents
- Adding guardrails for input/output validation and safety
- Implementing tracing and observability for agent workflows
- Building agents that use web search, file search, or code interpreter
## Built-in Tools
| Tool | Description |
|---|---|
| `WebSearchTool` | Web search via OpenAI's search API |
| `FileSearchTool` | Vector store-based document search |
| `CodeInterpreterTool` | Sandboxed Python execution |
| `ComputerTool` | Browser/computer interaction |
| `MCPServerStdio` | MCP server via stdio transport |
| `MCPServerSse` | MCP server via SSE transport |
| `HostedMCPTool` | Cloud-hosted MCP servers |
## Patterns
### 1. Basic Agent with Function Tools
```python
from agents import Agent, Runner, function_tool
@function_tool
def get_customer(customer_id: str) -> dict:
"""Look up customer details by ID."""
# Call your enterprise API
return {"id": customer_id, "name": "Acme Corp", "plan": "enterprise"}
@function_tool
def create_ticket(subject: str, description: str, priority: str = "medium") -> dict:
"""Create a support ticket."""
return {"ticket_id": "TK-1234", "status": "open"}
agent = Agent(
name="Customer Service",
instructions="Help customers by looking up their info and creating tickets when needed.",
tools=[get_customer, create_ticket],
)
async def main():
result = await Runner.run(agent, "I need help with my account, customer ID is C-456")
print(result.final_output)
```
### 2. Multi-Agent Handoffs
```python
from agents import Agent, Runner
billing_agent = Agent(
name="Billing Specialist",
instructions="Handle billing inquiries. Look up invoices and payment status.",
tools=[get_invoice, process_refund],
)
shipping_agent = Agent(
name="Shipping Specialist",
instructions="Handle shipping inquiries. Track orders and manage returns.",
tools=[track_order, initiate_return],
)
triage_agent = Agent(
name="Triage Agent",
instructions="""Route customer inquiries to the right specialist:
- Billing questions -> transfer to Billing Specialist
- Shipping/delivery questions -> transfer to Shipping Specialist""",
handoffs=[billing_agent, shipping_agent],
)
async def main():
result = await Runner.run(triage_agent, "Where is my order #12345?")
# Triage agent hands off to shipping_agent automatically
print(result.final_output)
```
### 3. MCP Server Integration
```python
from agents import Agent, Runner
from agents.mcp import MCPServerStdio
# Connect to enterprise MCP servers
postgres_server = MCPServerStdio(
command="npx",
args=["-y", "@modelcontextprotocol/server-postgres", "postgresql://user:pass@host/db"],
)
servicenow_server = MCPServerStdio(
command="python",
args=["-m", "mcp_servicenow"],
env={"SN_INSTANCE": "mycompany", "SN_USER": "admin", "SN_PASS": "secret"},
)
agent = Agent(
name="IT Operations Agent",
instructions="Query the database for system metrics and create ServiceNow incidents for issues.",
mcp_servers=[postgres_server, servicenow_server],
)
async def main():
async with postgres_server, servicenow_server:
result = await Runner.run(agent, "Check if any servers have CPU > 90% and create incidents")
print(result.final_output)
```
### 4. Guardrails
```python
from agents import Agent, Runner, InputGuardrail, GuardrailFunctionOutput
@InputGuardrail
async def check_for_pii(ctx, agent, input_text: str) -> GuardrailFunctionOutput:
"""Block requests containing PII."""
import re
ssn_pattern = r'\b\d{3}-\d{2}-\d{4}\b'
if re.search(ssn_pattern, input_text):
return GuardrailFunctionOutput(
output_info={"reason": "SSN detected in input"},
tripwire_triggered=True,
)
return GuardrailFunctionOutput(output_info={"reason": "clean"}, tripwire_triggered=False)
agent = Agent(
name="Secure Agent",
instructions="Help with customer inquiries.",
input_guardrails=[check_for_pii],
)
```
### 5. Streaming with Tracing
```python
from agents import Agent, Runner
agent = Agent(name="Assistant", instructions="Help the user.")
async def main():
result = Runner.run_streamed(agent, "Explain quantum computing")
async for event in result.stream_events():
if event.type == "raw_response_event":
# Stream tokens as they arrive
if hasattr(event.data, "delta"):
print(event.data.delta, end="", flush=True)
# Access trace for observability
print(f"\nTrace ID: {result.trace_id}")
```
## Anti-Patterns
- Creating deeply nested handoff chains -- keep delegation to 2-3 levels max
- Running MCP servers without `async with` context manager -- leaks resources
- Skipping guardrails for user-facing agents -- always validate input/output
- Using synchronous function tools for I/O-bound operations -- use async tools
## References
- [OpenAI Agents SDK GitHub](https://github.com/openai/openai-agents-python)
- [OpenAI Agents Documentation](https://openai.github.io/openai-agents-python/)
- [OpenAI Function Calling](https://platform.openai.com/docs/guides/function-calling)
<!-- Source: .faos/custom/skills/ai-ml/openai-agents-sdk/SKILL.md -->
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!