--- title: OpenAI Agents SDK description: Run openai-agents against a Mirage workspace using MirageShellExecutor, MirageEditor, and MirageSandboxClient. icon: /images/openai-logo.svg --- The OpenAI Agents Python SDK ([openai-agents](https://github.com/openai/openai-agents-python)) ships built-in `ShellTool` and `ApplyPatchTool` primitives, plus the newer `SandboxAgent`. Mirage provides drop-in replacements that route every shell command, patch, and sandbox call through your `Workspace` instead of the host. ## Install ```bash uv add 'mirage-ai[openai]' ``` This pulls in `openai>=2.30` and `openai-agents>=0.14.7`. ## Tools (`ShellTool` + `ApplyPatchTool`) ```python from agents import Agent, ApplyPatchTool, Runner, ShellTool from mirage import MountMode, Workspace from mirage.agents.openai_agents import ( MirageEditor, MirageShellExecutor, build_system_prompt, ) from mirage.resource.ram import RAMResource ws = Workspace({"/": RAMResource()}, mode=MountMode.WRITE) agent = Agent( name="Mirage RAM Agent", model="gpt-5.5-mini", instructions=build_system_prompt( mount_info={"/": "In-memory filesystem (read/write)"}, ), tools=[ ShellTool(executor=MirageShellExecutor(ws)), ApplyPatchTool(editor=MirageEditor(ws)), ], ) ``` ## Sandbox Agent For the new `SandboxAgent` API, use `MirageSandboxClient`: ```python from agents.sandbox import SandboxAgent from mirage.agents.openai_agents import MirageSandboxClient client = MirageSandboxClient(ws) agent = SandboxAgent(name="...", model="gpt-5.5", instructions=ws.file_prompt) ``` ## Exports | Symbol | Purpose | | --- | --- | | `MirageShellExecutor` | Drop-in `ShellTool` executor, runs inside `Workspace.execute()`. | | `MirageEditor` | Drop-in `ApplyPatchTool` editor, patches go through Mirage FS ops. | | `MirageSandboxClient` | Adapter for `agents.sandbox.SandboxAgent`. | | `MirageSandboxSession` | Per-conversation session bound to a workspace. | | `build_system_prompt` | Generates a system prompt that describes mounted paths to the model. | ## Examples - [`examples/python/agents/openai_agents/ram_agent.py`](https://github.com/strukto-ai/mirage/blob/main/examples/python/agents/openai_agents/ram_agent.py), RAM-only sandbox. - [`examples/python/agents/openai_agents/sandbox_agent.py`](https://github.com/strukto-ai/mirage/blob/main/examples/python/agents/openai_agents/sandbox_agent.py), `SandboxAgent` over RAM + S3 + Slack.