본문으로 건너뛰기

OpenAI Symphony: 코딩 에이전트 오케스트레이션의 새로운 패러다임

정석

Symphony Dashboard

OpenAI가 2026년 2월 26일, 새로운 오픈소스 프로젝트 Symphony를 공개했습니다. 단 일주일 만에 5,000개 이상의 스타를 받은 이 프로젝트는 코딩 에이전트 운영 방식을 근본적으로 바꾸겠다는 야심 찬 목표를 가지고 있습니다.


1. 왜 중요한가?

기존에 Codex, Claude Code 같은 코딩 에이전트를 사용해 본 분들이라면 이런 경험이 있을 것입니다:

Symphony는 이 문제를 **“감독(supervision)에서 관리(management)로”**의 패러다임 전환으로 해결합니다. 개발자가 에이전트의 매 움직임을 지켜보는 대신, 이슈 트래커의 작업을 자동으로 에이전트에 할당하고 격리된 환경에서 실행합니다.

Symphony OpenGraph


2. 핵심 기능

2.1 이슈 트래커 연동 (Linear)

Symphony는 Linear 이슈 트래커와 직접 연동됩니다:

  1. 폴링: 설정한 간격(기본 30초)으로 Linear의 활성 상태 이슈를 확인
  2. 자동 할당: 우선순위에 따라 이슈를 에이전트에 할당
  3. 상태 동기화: 이슈가 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는:

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의 강점:

# Symphony의 프로세스 구조
Symphony.Supervisor
├── Symphony.Orchestrator        # 스케줄러
├── Symphony.WorkspaceManager    # 워크스페이스 관리
└── Symphony.AgentRunner         # 에이전트 실행

3.2 Harness Engineering

OpenAI는 Harness Engineering 개념을 강조합니다:

“에이전트가 성공하려면 코드베이스가 에이전트 친화적이어야 한다.”

핵심 원칙:

  1. 작은 PR: 큰 변경사항을 작은 단위로 분할
  2. 빠른 CI: 에이전트가 피드백을 빠르게 받을 수 있도록
  3. 명확한 테스트: 에이전트가 자신의 작업을 검증할 수 있도록
  4. 문서화된 패턴: 에이전트가 따를 수 있는 일관된 코드 스타일

3.3 언어 독립적 설계 (SPEC.md)

Symphony의 진짜 가치는 SPEC.md에 있습니다:

# Symphony Service Specification
Status: Draft v1 (language-agnostic)

이 스펙은:

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

대시보드 기능:

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 상태입니다:

추천 사용 사례

  1. 스타트업: 빠른 속도로 기능 개발
  2. 오픈소스 프로젝트: 이슈 백로그 자동 해결
  3. 기업 내부 도구: 반복적인 유지보수 작업

🔗 관련 정보

이전
The Claude-Native Law Firm: AI로 재설계되는 로펌의 운영체제
다음
Star-Office-UI: 보이지 않는 AI 에이전트의 업무를 픽셀 아트로 시각화하다