Skip to content

OpenAI Agents SDK Integration

This guide demonstrates how to use Sequrity with the OpenAI Agents SDK framework.

Overview

The SequrityAsyncOpenAI client is a drop-in replacement for OpenAI's AsyncOpenAI client that automatically adds Sequrity's security features:

  • Dual-LLM Architecture: Separate planning and quarantined execution
  • Automatic Session Tracking: Maintains conversation context across requests
  • Security Headers: Automatically injects features, policies, and configuration
  • Full OpenAI Compatibility: Works seamlessly with OpenAI Agents SDK

Installation

# Install sequrity-api with OpenAI support (included by default)
pip install sequrity

# Optional: Install OpenAI Agents SDK for agent framework support
pip install openai-agents

Basic Setup

# Create Sequrity client
client = create_sequrity_openai_agents_sdk_client(
    sequrity_api_key=os.environ["SEQURITY_API_KEY"],
    features=FeaturesHeader.dual_llm(),
    security_policy=SecurityPolicyHeader.dual_llm(),
    service_provider="openrouter",
    llm_api_key=os.environ["OPENROUTER_API_KEY"],
)

Basic Completion

async def basic_completion():
    """Simple chat completion example."""
    response = await client.chat.completions.create(
        model="gpt-5-mini",
        messages=[{"role": "user", "content": "What is 2 + 2? Answer briefly."}],
    )

    print(f"Response: {response.choices[0].message.content}")
    print(f"Session ID: {client.session_id}")

Session Management

async def session_management():
    """Demonstrate session management."""
    # First request - establishes session
    messages = [{"role": "user", "content": "My name is Alice."}]
    response1 = await client.chat.completions.create(
        model="gpt-5-mini",
        messages=messages,
    )
    print(f"First response: {response1.choices[0].message.content}")
    print(f"Session ID: {client.session_id}")

    # Add assistant response to message history
    messages.append({"role": "assistant", "content": response1.choices[0].message.content})

    # Second request - uses same session with full message history
    messages.append({"role": "user", "content": "What is my name?"})
    response2 = await client.chat.completions.create(
        model="gpt-5-mini",
        messages=messages,
    )
    print(f"Second response: {response2.choices[0].message.content}")

    # Reset session for new conversation
    client.reset_session()
    print(f"Session ID after reset: {client.session_id}")

Using with OpenAI Agents SDK

async def with_agents_sdk():
    """Use with OpenAI Agents SDK."""
    try:
        from agents import Agent, RunConfig, Runner

        # Create an agent
        agent = Agent(
            name="ResearchAssistant",
            instructions="You are a helpful research assistant. Keep responses concise.",
        )

        # Configure agent to use Sequrity
        run_config = RunConfig(model="gpt-5-mini", model_provider=client)

        # Run the agent
        result = await Runner.run(
            agent,
            input="What are the main benefits of dual-LLM architecture?",
            run_config=run_config,
        )

        print(f"Agent response: {result.final_output}")
    except ImportError:
        print("OpenAI Agents SDK not installed. Skipping agent example.")

Complete Example

See the complete working example at examples/control/integrations/openai_agents_sdk_basic.py.

See Also