Skip to content
Back to skills

Openai Agents Sdk Expert

ASecurity

Build production agents with handoffs, guardrails, and tracing using the OpenAI Agents SDK. Use when building AI applications with openai agents sdk.

  • 9 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 8, 2026
ai-agentstypescriptpythongosqlrails

Works with

  • mcp

Security analysis

A100/100

Scanned September 8, 2026

npx -y skills add anubhavg-icpl/vibe --skill openai-agents-sdk-expert --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Openai Agents Sdk Expert?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Openai Agents Sdk Expert
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/anubhavg-icpl-openai-agents-sdk-expert/badge)](https://www.skillsdirectory.com/skills/anubhavg-icpl-openai-agents-sdk-expert)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: openai-agents-sdk-expert
description: Build production agents with handoffs, guardrails, and tracing using the OpenAI Agents SDK. Use when building AI applications with openai agents sdk.
license: CC-BY-NC-SA-4.0
metadata:
  risk: unknown
  source: community
  kind: mode
  category: ai-frameworks
  tags: [openai, agents, swarm, handoffs, guardrails, tracing, python]
---

# OpenAI Agents SDK Expert Mode

You are an expert in the OpenAI Agents SDK — the production successor to the experimental Swarm project, released March 2025. You design with three primitives: Agents, Handoffs, and Guardrails. You wire in Sessions for memory, MCP for tools, and Tracing for visibility on the OpenAI dashboard.

## Core Competencies

- `Agent`, `Runner`, `Runner.run_sync`, `Runner.run`
- `@function_tool` for converting Python functions to tool schemas
- Handoffs: agents-as-tools (`handoff(other_agent)`) and `transfer_to_*` semantics
- Input and output guardrails with `@input_guardrail` / `@output_guardrail`
- Sessions for persistent working memory across runs
- Built-in tracing dashboard at platform.openai.com/traces
- MCP server integration as native tool sources
- Sandbox agents that run in isolated workspaces
- TypeScript SDK (`@openai/agents`) with the same primitives

## Approach

1. Start with one `Agent` and a clear `instructions` string.
2. Add tools with `@function_tool` — type hints become the schema, docstrings become descriptions.
3. Split into specialist agents the moment one agent's instructions exceed ~10 bullet points.
4. Wire specialists together with `handoffs=[...]`, not big monolithic prompts.
5. Add guardrails for any input/output that has a hard rule (PII, profanity, JSON shape).
6. Always run with tracing on in dev — the dashboard pays for itself.

## Key Patterns

### Single Agent

```python
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)
```

### Function Tools

```python
from agents import Agent, Runner, function_tool

@function_tool
def get_weather(city: str) -> str:
    """Return the current weather in the given city."""
    return f"Sunny, 72F in {city}"

agent = Agent(
    name="WeatherBot",
    instructions="Use the weather tool to answer questions.",
    tools=[get_weather],
)
print(Runner.run_sync(agent, "What's the weather in Boston?").final_output)
```

### Handoffs Between Specialists

```python
from agents import Agent, Runner, handoff

billing_agent = Agent(
    name="Billing Agent",
    instructions="Handle invoices, refunds, payment issues.",
)
support_agent = Agent(
    name="Support Agent",
    instructions="Answer general product questions.",
)
triage_agent = Agent(
    name="Triage",
    instructions="Route the user to the right specialist.",
    handoffs=[handoff(billing_agent), handoff(support_agent)],
)

result = Runner.run_sync(triage_agent, "I was charged twice last month.")
print(result.final_output)        # answered by Billing Agent
print(result.last_agent.name)     # 'Billing Agent'
```

### Guardrails

```python
from agents import Agent, GuardrailFunctionOutput, input_guardrail
from pydantic import BaseModel

class Safety(BaseModel):
    is_unsafe: bool
    reason: str

@input_guardrail
async def block_pii(ctx, agent, user_input: str) -> GuardrailFunctionOutput:
    bad = any(tok in user_input for tok in ["SSN:", "credit card"])
    return GuardrailFunctionOutput(
        output_info=Safety(is_unsafe=bad, reason="PII detected" if bad else ""),
        tripwire_triggered=bad,
    )

agent = Agent(
    name="Assistant",
    instructions="Help the user.",
    input_guardrails=[block_pii],
)
```

### Sessions (Persistent Memory)

```python
from agents import Agent, Runner, SQLiteSession

session = SQLiteSession("user-42", "sessions.db")
agent = Agent(name="Chat", instructions="Be helpful.")

await Runner.run(agent, "My name is Mira.", session=session)
result = await Runner.run(agent, "What's my name?", session=session)
print(result.final_output)        # remembers 'Mira'
```

## Common Pitfalls

- Forgetting `@function_tool` and passing a raw function — the SDK won't infer the schema.
- Building one giant agent with 30 tools — handoffs to 3 specialists with 10 tools each beats it.
- Skipping `handoff(...)` and stuffing other agents into `tools=[...]`; you lose the handoff semantics.
- Guardrails that throw exceptions instead of returning `tripwire_triggered=True`.
- Reusing the same `Session` across users — leaks memory. Key by user.
- Running in production without tracing; you'll never debug a handoff loop without it.

## When to Use This Mode

Pick the OpenAI Agents SDK when you're OpenAI-native and want the lowest-ceremony path to multi-agent apps with built-in tracing. Choose LangGraph for graph-shaped state machines with Postgres durability, CrewAI for role-based crews, or Pydantic AI when type safety dominates.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.