> ## Documentation Index
> Fetch the complete documentation index at: https://boxrouter.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Choose an Agent Integration

> Pick the BoxRouter integration that fits your agent stack, and see how the two OpenAI ones differ.

Pick by who runs your agent. If it runs in your process, install an adapter. If a vendor hosts it, launch a worker.

**Before You Begin:** Know your agent's framework and whether it runs in your process or a hosted service.

| Your Stack | Who Runs the Agent | Integration | Sandbox Is Created By |
| - | - | - | - |
| OpenAI Agents SDK (Python library) | Your process | [`boxrouter-openai-agents`](https://boxrouter.ai/docs/integrations/openai-agents-sdk) | The adapter, per agent run |
| Vercel AI SDK harness (TypeScript) | Your process | [`@boxrouter/ai-sdk-sandbox`](https://boxrouter.ai/docs/integrations/vercel-ai-sdk) | The adapter, per session |
| Claude Managed Agents | Anthropic | [`claude-managed-agents-worker`](https://boxrouter.ai/docs/integrations/claude-managed-agents) | You, with `boxrouter launch` |
| OpenAI Agents API (hosted) | OpenAI | [`openai-agents-environment`](https://boxrouter.ai/docs/integrations/openai-agents-api) | You, with `boxrouter launch` |

## Adapters and Workers

An adapter is a package you install next to your agent code. When a tool needs a shell, the
framework calls the adapter. The adapter creates and destroys sandboxes using your BoxRouter API
key.

For a hosted agent, the vendor runs the agent itself. A worker runs inside your sandbox and connects
outbound to the vendor. It receives the agent's tool calls and runs them in the sandbox, so no inbound
port is needed.

You launch the sandbox with `boxrouter launch` and destroy it yourself. Ending the vendor's session does not
destroy it.

## Which OpenAI Integration

* For the Agents SDK, use the adapter. The Python library runs in your process.
* For the Agents API, use a worker. OpenAI hosts the agent and cannot reach your process, so each
  OpenAI session gets one executor in its own sandbox.

## What Stays Separate

Your application or the hosted agent service holds the model API key. The adapter or launch uses
your BoxRouter API key. A hosted worker also needs an environment key, supplied as a BoxRouter
secret, to connect to the vendor's service. Each integration guide lists the keys it needs.

If no route meets your `requirements`, creation fails with `no_eligible_route` ([Sandboxes](https://boxrouter.ai/docs/sandboxes.md#what-you-ask-for-and-what-boxrouter-decides)).

For calls outside a framework, use the [Python](https://boxrouter.ai/docs/python.md) or [TypeScript](https://boxrouter.ai/docs/typescript.md) SDK.

## Next Steps

> [card] [Use the OpenAI Agents SDK](https://boxrouter.ai/docs/integrations/openai-agents-sdk.md)
>
> Adapter for the Python library.

> [card] [Use the OpenAI Agents API](https://boxrouter.ai/docs/integrations/openai-agents-api.md)
>
> Executor for OpenAI-hosted agent sessions.

> [card] [Run Claude Managed Agents](https://boxrouter.ai/docs/integrations/claude-managed-agents.md)
>
> Worker for Anthropic-hosted agents.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.