Introduction
"From watching agents code to managing the work itself."
This is the No.57 article in the "One Open Source Project a Day" series. Today, we are exploring Symphony.
In the previous article on OpenHands, we saw an all-in-one GUI for AI software engineers. Symphony, released by OpenAI, is the official reference for "how to run AI agents at scale in a professional engineering team." It is more than just a tool; it is a philosophical blueprint for Agentic Ops. With Symphony, OpenAI introduces the concept of Harness Engineeringβthe art of building a robust external framework to steer, drive, and monitor autonomous AI agents.
What You Will Learn
- What is "Harness Engineering"?
- How Symphony uses
WORKFLOW.mdfor versioned policy management of AI agents. - Why workspace isolation is the key to scaling agentic runs.
- Why OpenAI chose Elixir/OTP for their reference orchestrator implementation.
Prerequisites
- Basic understanding of AI agent workflows.
- Familiarity with project management tools like Linear or GitHub Issues.
- Basic understanding of concurrency and process management.
Project Background
Project Introduction
Symphony is an open-source orchestration framework (with a reference implementation in Elixir/OTP) and a language-agnostic specification (SPEC.md). Its job is to take tasks from issue trackers (like Linear) and turn them into isolated, monitored implementation runs. The core philosophy is that we shouldn't spend our time watching an agent write code character by character; instead, we should manage AI work the same way we manage human engineersβby defining clear boundaries, policies, inputs, and outputs.
Author/Team Introduction
- Origin: OpenAI Backend and Agent Architecture teams.
- Mission: To demonstrate how to build industrial-grade AI agent environments and define a standard protocol for agents to interact with complex engineering systems.
Project Data
- β GitHub Stars: 400+ (Engineering Preview phase)
- π¦ Tech Stack: Elixir (Reference implementation), JSON-line protocol (Spec)
- π License: Apache-2.0
- π Repository: openai/symphony
Main Features
Core Utility
Symphony acts as the "General Contractor." It monitors task queues (e.g., a "Bug" label in Linear), and when a new task appears, it allocates resources, prepares a clean sandbox (Docker or local), loads the repo-specific WORKFLOW.md policy, and drives a coding agent to perform the work.
Use Cases
- Massive Engineering Automation
- A team with hundreds of issues can use Symphony to launch hundreds of concurrent agent instances, each attempting to fix a specific problem in isolation.
- Policy as Code
- Different projects have different coding standards. By placing a
WORKFLOW.mdin the repo, Symphony can dynamically configure the agent's behavior at runtime.
- Different projects have different coding standards. By placing a
- Observable Production Lines
- Capture the full "trajectory" of every agent run, including token usage, latency, retry counts, and execution results.
Core Characteristics
- Harness Engineering
- Symphony views agents as pluggable "batteries." It provides the "Harness" (isolation, auth injection, state management, error recovery), allowing the agent to focus purely on the coding task.
- Spec-First Architecture
- OpenAI defined a standard JSON protocol, meaning you can build your own orchestrator or agent in any programming language, as long as it follows the
SPEC.md.
- OpenAI defined a standard JSON protocol, meaning you can build your own orchestrator or agent in any programming language, as long as it follows the
- In-Repo Workflow
- The agent's "instruction manual" lives in the code repository it is working on. This allows you to fine-tune agent behavior using Pull Requests, just like managing source code.
- Robust Concurrency & Isolation
- Leverages Erlang/Elixir's fault-tolerance mechanisms. Every agent task runs in its own lightweight process, allowing precise control over concurrency limits and retry logic.
Project Advantages
| Feature | Symphony | LangGraph / CrewAI | Commercial Agent Clouds |
|---|---|---|---|
| Focus | Ops & Orchestration | Agent Logic Definition | Managed Black-box |
| Standardization | Official OpenAI SPEC | Private Framework Protocols | Closed APIs |
| Security | Mandatory Workspace Isolation | Plugin-dependent | Platform-managed |
| Extensibility | High (Language-agnostic) | Restricted to Python/JS | Low |
Detailed Analysis
1. SPEC.md: The Real Value
The most significant part of Symphony isn't necessarily the Elixir code, but the SPEC.md file in the repository. It defines:
- The lifecycle of an Implementation Run.
- The Message Exchange Format: How an agent requests tool calls and how the environment provides feedback.
- State Storage Mappings: How the thinking process of an agent is persisted.
2. Why Elixir?
OpenAI's choice of Elixir (running on the Erlang VM) was a strategic technical decision:
- Micro-process Model: Each agent task is an extremely lightweight process. Even if an agent gets stuck in a logic loop, it won't impact the rest of the cluster.
- Distributed by Nature: It natively supports scheduling agent tasks across multiple machine nodes, making it ideal for compute-intensive AI workflows.
Project Links & Resources
Official Resources
- π GitHub: https://github.com/openai/symphony
- π Core Specification: SPEC.md
- π‘ Design Philosophy: Check OpenAI's official blog posts on "Harness Engineering."
Target Audience
- Architects building "Agent Factories" or internal AI implementation platforms.
- Developers wanting to understand how OpenAI constrains agent behavior in production.
- Engineers interested in distributed systems orchestration and Agentic Ops.
Find more useful knowledge and interesting products on my Homepage
- Standardization: By providing a formal
SPEC.md, OpenAI is attempting to standardize how agentic workflows are defined and executed, moving away from fragmented, one-off scripts. - Scalability: It moves agentic development from "one dev chatting with one agent" to "one orchestrator managing N agents," which is essential for scaling AI in production engineering teams.
- Safety & Isolation: The emphasis on per-issue workspaces and "harnessing" agents provides a blueprint for how to run LLM-generated code with lower risk.
- Developer Experience: It treats "Agent Instructions" as first-class code citizens (the
WORKFLOW.md), making the agent's behavior reproducible, versionable, and collaborative.
Resources
- GitHub Repository: openai/symphony
- Official Specification: SPEC.md
- Concept Reference: Harness Engineering
Created by GitHub Copilot. This is Article #93 in the "One Open Source Project a Day" series.
Top comments (0)