
OpenAI가 2026년 2월 26일, 새로운 오픈소스 프로젝트 Symphony를 공개했습니다. 단 일주일 만에 5,000개 이상의 스타를 받은 이 프로젝트는 코딩 에이전트 운영 방식을 근본적으로 바꾸겠다는 야심 찬 목표를 가지고 있습니다.
1. 왜 중요한가?
기존에 Codex, Claude Code 같은 코딩 에이전트를 사용해 본 분들이라면 이런 경험이 있을 것입니다:
- 에이전트가 무슨 작업을 하고 있는지 계속 확인해야 함
- 여러 이슈를 동시에 진행하기 어려움
- 작업 공간이 꼬여서 이전 상태로 되돌리기 어려움
- 에이전트가 실수를 했을 때 빠르게 중단하기 어려움
Symphony는 이 문제를 **“감독(supervision)에서 관리(management)로”**의 패러다임 전환으로 해결합니다. 개발자가 에이전트의 매 움직임을 지켜보는 대신, 이슈 트래커의 작업을 자동으로 에이전트에 할당하고 격리된 환경에서 실행합니다.

2. 핵심 기능
2.1 이슈 트래커 연동 (Linear)
Symphony는 Linear 이슈 트래커와 직접 연동됩니다:
- 폴링: 설정한 간격(기본 30초)으로 Linear의 활성 상태 이슈를 확인
- 자동 할당: 우선순위에 따라 이슈를 에이전트에 할당
- 상태 동기화: 이슈가
Done,Closed,Cancelled상태로 변경되면 실행 중인 에이전트를 자동 중단
활성 상태 (기본): Todo, In Progress
종료 상태 (기본): Done, Closed, Cancelled, Duplicate
2.2 격리된 워크스페이스
각 이슈는 독립적인 워크스페이스에서 실행됩니다:
~/symphony_workspaces/
├── PROJ-123/ # 이슈별 격리된 디렉토리
├── PROJ-124/
└── PROJ-125/
이 방식의 장점:
- 에이전트 간 충돌 방지
- 실패 시 깔끔한 롤백
- 동시에 여러 이슈 진행 가능
2.3 Codex App Server 통합
Symphony는 Codex의 App Server 모드를 사용합니다:
codex app-server # stdio 기반 JSON-RPC 프로토콜
이 모드에서 Codex는:
- Symphony로부터 프롬프트를 받아 작업 시작
- 진행 상황을 실시간으로 보고
- 토큰 사용량, 실행 시간 등 메트릭 제공
2.4 WORKFLOW.md 기반 설정
모든 설정이 WORKFLOW.md 파일 하나에 정의됩니다:
---
tracker:
kind: linear
project_slug: "your-team/project"
workspace:
root: ~/code/workspaces
hooks:
after_create: |
git clone git@github.com:your-org/your-repo.git .
agent:
max_concurrent_agents: 10
codex:
command: codex app-server
---
You are working on Linear issue {{ issue.identifier }}.
Title: {{ issue.title }}
Body: {{ issue.description }}
핵심 아이디어: 워크플로우 설정을 코드와 함께 버전 관리합니다.
3. 기술적 딥다이브
3.1 왜 Elixir인가?
Symphony는 Elixir로 작성되었습니다. 이 선택에는 이유가 있습니다:
Erlang/BEAM VM의 강점:
- 경량 프로세스: 수천 개의 에이전트를 동시에 실행해도 오버헤드 최소
- Supervisor 트리: 에이전트 크래시 시 자동 복구
- Hot Code Reloading: 실행 중인 에이전트를 중단하지 않고 코드 업데이트
# Symphony의 프로세스 구조
Symphony.Supervisor
├── Symphony.Orchestrator # 스케줄러
├── Symphony.WorkspaceManager # 워크스페이스 관리
└── Symphony.AgentRunner # 에이전트 실행
3.2 Harness Engineering
OpenAI는 Harness Engineering 개념을 강조합니다:
“에이전트가 성공하려면 코드베이스가 에이전트 친화적이어야 한다.”
핵심 원칙:
- 작은 PR: 큰 변경사항을 작은 단위로 분할
- 빠른 CI: 에이전트가 피드백을 빠르게 받을 수 있도록
- 명확한 테스트: 에이전트가 자신의 작업을 검증할 수 있도록
- 문서화된 패턴: 에이전트가 따를 수 있는 일관된 코드 스타일
3.3 언어 독립적 설계 (SPEC.md)
Symphony의 진짜 가치는 SPEC.md에 있습니다:
# Symphony Service Specification
Status: Draft v1 (language-agnostic)
이 스펙은:
- 19,000줄 이상의 상세한 명세
- 모든 언어에서 구현 가능하도록 설계
- 핵심 컴포넌트, 데이터 모델, API 명세 포함
OpenAI의 제안:
“당신의 코딩 에이전트에게 이 스펙을 구현하라고 시켜보세요.”
# 프롬프트 예시
Implement Symphony according to the following spec:
https://github.com/openai/symphony/blob/main/SPEC.md
4. 실제 사용 시나리오
4.1 기본 설정
# 1. 저장소 클론
git clone https://github.com/openai/symphony
cd symphony/elixir
# 2. 의존성 설치 (mise 권장)
mise install
mise exec -- mix setup
mise exec -- mix build
# 3. Linear API 키 설정
export LINEAR_API_KEY="your-api-key"
# 4. WORKFLOW.md 작성 후 실행
./bin/symphony ./WORKFLOW.md
4.2 웹 대시보드 (Phoenix LiveView)
# 포트 지정 시 대시보드 활성화
./bin/symphony ./WORKFLOW.md --port 4000
대시보드 기능:
- 실시간 에이전트 상태 모니터링
- JSON API (
/api/v1/state) - 이슈별 상세 정보
4.3 커스텀 훅
hooks:
after_create: |
# 워크스페이스 생성 후 실행
git clone git@github.com:org/repo.git .
npm install
before_run: |
# 에이전트 실행 전
git pull origin main
after_run: |
# 에이전트 실행 후 (성공/실패 무관)
echo "Run completed" >> log.txt
5. 아키텍처 개요
┌─────────────────────────────────────────────┐
│ Linear API │
└─────────────────┬───────────────────────────┘
│ Poll (30s)
▼
┌─────────────────────────────────────────────┐
│ Symphony Orchestrator │
│ ┌─────────────────────────────────────┐ │
│ │ Workflow Loader (WORKFLOW.md) │ │
│ └─────────────────────────────────────┘ │
│ ┌─────────────────────────────────────┐ │
│ │ Config Layer (YAML + Env) │ │
│ └─────────────────────────────────────┘ │
└─────────────────┬───────────────────────────┘
│ Dispatch
▼
┌─────────────────────────────────────────────┐
│ Workspace Manager │
│ PROJ-123/ │ PROJ-124/ │ PROJ-125/ │
└─────────────────┬───────────────────────────┘
│ Spawn
▼
┌─────────────────────────────────────────────┐
│ Agent Runner │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Codex │ │ Codex │ │ Codex │ │
│ │(PROJ-123)│ │(PROJ-124)│ │(PROJ-125)│ │
│ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────┘
마치며: 에이전트 운영의 미래
Symphony는 단순한 도구가 아니라 에이전트 운영 패러다임의 전환점입니다.
기존 방식
개발자 → 에이전트 감독 → 코드 작성
Symphony 방식
개발자 → 이슈 관리 → Symphony → 에이전트 실행 → PR 생성
OpenAI의 비전:
“Symphony는 Harness Engineering의 다음 단계입니다. 코딩 에이전트를 관리하는 것에서, 해야 할 작업을 관리하는 것으로 전환하세요.”
주의사항
Symphony는 아직 Engineering Preview 상태입니다:
- 신뢰할 수 있는 환경에서 테스트 권장
- 보안 정책은 각 구현에서 명시해야 함
- 프로덕션 사용 전 충분한 검토 필요
추천 사용 사례
- 스타트업: 빠른 속도로 기능 개발
- 오픈소스 프로젝트: 이슈 백로그 자동 해결
- 기업 내부 도구: 반복적인 유지보수 작업
🔗 관련 정보
- GitHub: openai/symphony
- SPEC.md: Symphony Service Specification
- Harness Engineering: OpenAI 블로그
- Codex App Server: OpenAI Developers
- Elixir README: Symphony Elixir 구현