openai-symphony-autonomous-agents
openai-symphony-autonomous-agents — an installable skill for AI agents.
By reason-machines · 1,388 installs
npx skills add reason-machines/trending-skills --skill openai-symphony-autonomous-agents
Source repository · Upstream listing
OpenAI Symphony
Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection.
Symphony turns project work into isolated, autonomous implementation runs, allowing teams to manage work instead of supervising coding agents . Instead of watching an agent code, you define tasks (e.g. in Linear), and Symphony spawns agents that complete them, provide proof of work (CI status, PR reviews, walkthrough videos), and land PRs autonomously.
What Symphony Does
Monitors a work tracker (e.g. Linear) for tasks
Spawns isolated agent runs per task (using Codex or similar)
Each agent implements the task, opens a PR, and provides proof of work
Engineers review outcomes, not agent sessions
Works best in codebases using [harness engineering](https://openai.com/index/harness engineering/)
Installation Options
Option 1: Ask an agent to build it
Paste this prompt into Claude Code, Cursor, or Codex:
Option 2: Use the Elixir reference implementation
Follow elixir/README.md , or ask an agent:
Elixir Reference Implementation Setup
Requirements
Elixir + Mix installed
An OpenAI API key (for Codex agent)
A Linear API key (if using Linear integration)
A GitHub token (for PR operations)
Environment Variables
Install Dependencies
Configuration ( elixir/config/config.exs )
Run Symphony
Core Concepts
Isolated Implementation Runs
Each task gets its own isolated run:
Fresh git branch per task
Agent operates only within that branch
No shared state between runs
Proof of work collected before PR merge
Proof of Work
Before a PR is accepted, Symphony collects:
CI/CD pipeline status
PR review feedback
Complexity analysis
(optionally) walkthrough videos
Key Elixir Modules & Patterns
Starting the Symphony supervisor
Defining a Task (Symphony Task struct)
Spawning an Agent Run
Linear Integration — Polling for Tasks
Linear API Client
Proof of Work Collection
Implementing the SPEC.md (Custom Implementation)
When building Symphony in another language, the spec defines:
1. Task Source — poll Linear/GitHub/Jira for tasks in a specific state
2. Agent Invocation — call Codex (or another agent) with task context
3. Isolation — each run on a fresh branch, containerized if possible
4. Proof of Work — CI, review, and analysis before merge
5. Landing — auto merge or present to engineer for approval
Minimal implementation loop in pseudocode:
Common Patterns
Limiting Concurrent Agent Runs
Manual Task Injection (No Linear)
Troubleshooting
Problem Likely Cause Fix
Agents not spawning Missing OPENAI API KEY Check env var is exported
Linear tasks not detected Wrong Linear state filter Update query filter to match your board's state name
PRs not opening Missing GITHUB TOKEN or wrong repo Verify token has repo scope
CI never completes Timeout too short Increase retries in wait for ci/2
Too many concurrent runs Default pool size Set max concurrent agents in config
Branch conflicts Agent reusing branch names Ensure task IDs are unique per run
Debug Mode
Resources
[SPEC.md](https://github.com/openai/symphony/blob/main/SPEC.md) — Full Symphony specification
[elixir/README.md](https://github.com/openai/symphony/blob/main/elixir/README.md) — Elixir setup guide
[Harness Engineering](https://openai.com/index/harness engineering/) — Prerequisite methodology
[Apache 2.0 License](https://github.com/openai/symphony/blob/main/LICENSE)