{"id":"132d34ec-8576-4ad1-976c-23d5d49df393","repo":"openai/openai-agents-python","status":"done","verdict":"no_red_flags","headline":"No red flags found. README claims backed by the code: 6 of 8.","error":null,"report":{"ai":{"kind":"framework","claims":[{"claim":"Lightweight, powerful framework for multi-agent workflows with handoffs and agents-as-tools","verdict":"supported","evidence":"agent.py has handoffs and as_tool; run.py documents the handoff loop (run.py:299-305)"},{"claim":"Provider-agnostic: supports the OpenAI Responses and Chat Completions APIs and 100+ other LLMs","verdict":"partial","evidence":"Responses and Chat Completions model classes exist, and LiteLLM and any-llm extras are declared in pyproject.toml:46-50. The '100+ LLMs' count depends on those third-party packages."},{"claim":"Built-in guardrails for input and output validation","verdict":"supported","evidence":"Agent.input_guardrails and output_guardrails (agent.py:373-381); Runner docs describe tripwire exceptions (run.py:307-311)"},{"claim":"Sessions provide automatic conversation history management","verdict":"supported","evidence":"Runner accepts a session argument and calls prepare_input_with_session (run.py:341, 720-743); several session backends are listed in pyproject.toml extras"},{"claim":"Human-in-the-loop mechanisms","verdict":"supported","evidence":"needs_approval parameter in Agent.as_tool (agent.py:623); MCP require_approval policy (mcp/server.py:583-587); RunState resume support in run.py"},{"claim":"Built-in tracing of agent runs","verdict":"supported","evidence":"Tracing is wired into run.py (imports at lines 174-185, TraceCtxManager use at 594); the src/agents/tracing package is present"},{"claim":"Realtime and voice agents","verdict":"supported","evidence":"RealtimeAgent (realtime/agent.py) and the voice pipeline modules (voice/pipeline.py) are in the tree"},{"claim":"Sandbox agents that work over long time horizons in containers","verdict":"partial","evidence":"The sandbox package and multiple backends exist in the tree. The excerpt does not show the implementation, and long-horizon behavior is not verifiable from it."}],"costUsd":0.23313,"summary":"This is the OpenAI Agents SDK for Python, a framework for building LLM agents. It provides an Agent abstraction (instructions, tools, handoffs, guardrails, MCP servers), a Runner loop that calls models and executes tools, and sessions, tracing, realtime/voice, and sandbox subsystems with several sandbox backends. The excerpt shows only part of the large codebase, but what is visible matches the README's description. The static analysis reported no findings.","capabilities":[{"evidence":"src/agents/agent.py:318-420, 606","capability":"Agent dataclass configuring instructions, tools, handoffs, guardrails, output type, model settings, and tool-use behavior; agents can be wrapped as tools via as_tool()"},{"evidence":"src/agents/run.py:279-565, 568-610","capability":"Runner exposes run, run_sync and run_streamed. They delegate to an AgentRunner that loops over model calls, tool execution, handoffs, guardrails, and max_turns"},{"evidence":"src/agents/mcp/server.py:562-610, 306-328","capability":"MCP server integration over stdio, SSE and streamable HTTP, with approval policies, tool filtering and guardrails, and credential-safe error handling"},{"evidence":"src/agents/realtime/agent.py:27-100","capability":"Realtime voice agents that use a single shared model per session, with handoffs and output guardrails"},{"evidence":"src/agents/computer.py:8-134, src/agents/editor.py:34-48","capability":"Computer-use abstractions (sync and async) and an apply_patch editor protocol; the host implements the actual actions"},{"evidence":"src/agents/run_error_handlers.py:44-56","capability":"Run-error handlers for max_turns, model_refusal and invalid_final_output"},{"evidence":"src/agents/repl.py:15-77","capability":"Demo REPL that loops on stdin input and runs the agent with streaming or non-streaming output"},{"evidence":"src/agents/prompts.py:23-82","capability":"Dynamic prompt resolution for OpenAI stored prompts (id, version, variables)"},{"evidence":"src/agents/sandbox/*, pyproject.toml optional extras (docker, e2b, modal, etc.)","capability":"Sandbox agents with local, Docker and hosted-provider backends, plus mount security and memory subsystems (visible only in the file tree and test/config files)"},{"evidence":"src/agents/_debug.py:12-28","capability":"Sensitive-data log suppression, on by default, for model and tool data"}],"findingReviews":[]},"url":"https://github.com/openai/openai-agents-python","stats":{"files":1695,"binaries":10,"textFiles":1683,"truncated":false},"verdict":"no_red_flags","findings":[],"headline":"No red flags found. README claims backed by the code: 6 of 8.","provenance":[],"generatedAt":"2026-10-14T12:23:00.527Z"}}