OpenAI Symphony 완전정복: 이슈 등록만 해도 AI가 PR까지 올리는 법

Published on

in

OpenAI Symphony 완전정복: 이슈 등록만 해도 AI가 PR까지 올리는 법

OpenAI Symphony 완전정복
이슈 등록만 해도 AI가 PR까지 올리는 법

2026년 3월, OpenAI가 조용히 공개한 오픈소스 오케스트레이터 Symphony
“에이전트를 감독하는 시대”를 끝냈습니다. Linear 이슈 하나가 코드 작성·테스트·PR·머지까지
자동으로 완성됩니다. 지금 당장 적용 가능한 설치법과 핵심 개념을 한 번에 정리했습니다.

🗓 2026년 3월 공개
Apache 2.0 오픈소스
Elixir 기반 아키텍처
Harness Engineering 필수

① Symphony란 무엇인가 — 에이전트 감독의 종말

OpenAI Symphony는 2026년 3월 4일(UTC 기준) GitHub에 공개된
오픈소스 AI 에이전트 오케스트레이터입니다.
한 줄로 정의하자면, “프로젝트 관리 도구(이슈 트래커)에 등록된 작업을 AI 코딩 에이전트가
자율적으로 처리하도록 연결해주는 인프라”입니다.

지금까지 Cursor, Claude Code, Codex 같은 도구들은 눈부시게 발전해왔지만 근본적인 병목이
남아 있었습니다. 에이전트가 아무리 똑똑해져도 사람이 옆에서 지켜보며 작업을 하나씩
맡겨야 하는 구조
가 바뀌지 않았던 것입니다. 에이전트 하나를 감독하는 데 드는 인지 비용이
직접 코딩하는 것과 별반 다르지 않다면, 이것을 ‘생산성 혁신’이라고 부를 수 있을까요?

Symphony의 답은 명확합니다. “에이전트를 감독(supervise)하는 것에서
업무를 관리(manage work)하는 것으로 패러다임을 전환한다.”

개발자가 Linear에 이슈를 등록하면, Symphony가 이를 감지하고 격리된 워크스페이스에서
에이전트를 생성합니다. 에이전트는 코드 작성, 테스트 실행, PR 생성, 리뷰 피드백 반영까지
자율적으로 수행한 뒤 “작업 증거(proof of work)”와 함께 결과를 보고합니다.
개발자는 완성된 결과물만 검토하면 됩니다.

💡 한줄 요약:
“이슈 트래커의 티켓 하나 = AI 에이전트 하나의 자율 작업 단위.”
쿠버네티스가 컨테이너를 스케줄링하듯, Symphony는 코딩 에이전트를 스케줄링합니다.

Apache 2.0 라이선스로 공개된 Symphony는 Elixir/Erlang BEAM 런타임 기반 레퍼런스 구현체와
함께, 언어에 구애받지 않는 SPEC.md 사양서를 제공합니다.
“너의 코딩 에이전트에게 이 스펙대로 구현하라고 시켜라”는 설치 가이드 자체가 Symphony의
철학을 단적으로 보여줍니다. 에이전트가 충분히 똑똑하다면, 스펙만 주면 자기 자신을 만들 수
있어야 한다는 것입니다.

▲ 목차로 돌아가기

② 핵심 선행 개념: 하네스 엔지니어링(Harness Engineering)이 왜 중요한가

Symphony를 이해하고 실제로 도입하려면 OpenAI가 2026년 2월에 공식 방법론으로 정리한
하네스 엔지니어링(Harness Engineering)을 먼저 알아야 합니다.
이것은 “AI 코딩 에이전트가 효과적으로 동작할 수 있도록 코드베이스 자체를 정비하는 접근법”입니다.

OpenAI 팀은 5개월간 약 7명의 엔지니어로 수동으로 코드 한 줄도 작성하지 않고
백만 라인 규모의 소프트웨어 제품을 구축한 실험을 진행했습니다.
1인당 하루 평균 3.5개의 PR을 처리했고, 수동 작성 대비 약 10배 빠른 개발 속도를 달성했습니다.
이 실험의 핵심 통찰은 “에이전트가 볼 수 없는 것은 존재하지 않는 것”이라는 점입니다.

하네스 엔지니어링 4가지 핵심 요건

요건 설명 실천 예시
밀폐된 테스트 외부 의존성 없이 로컬·CI에서 독립 실행 가능한 테스트 Docker 기반 통합 테스트, 목(Mock) 서버 활용
기계 판독 문서 AI가 빌드·테스트·배포 방법을 스스로 파악하는 구조화된 문서 AGENTS.md, ARCHITECTURE.md 표준화
모듈형 아키텍처 부작용 최소화, 명확한 계층 구조와 의존성 방향 정의 레이어드 도메인 아키텍처, 커스텀 린터 적용
명시적 경계 각 모듈·도메인의 책임과 인터페이스를 명확히 정의 OpenAPI 스펙, 타입 강제 인터페이스

특히 문서화 전략은 OpenAI가 강조하는 부분입니다. 거대한 단일 매뉴얼 대신 목차 역할의
짧은 AGENTS.md
(약 100줄)를 두고, 세부 내용은 docs/design-docs/,
docs/exec-plans/, docs/product-specs/ 등으로 분산 관리하는 방식을
권장합니다. 이 모든 문서는 Git 저장소 안에 버전 관리되어야 합니다.
Slack 대화나 Google Docs에 흩어진 지식은 AI 에이전트가 인식할 수 없기 때문입니다.

⚠️ 주의: 하네스 엔지니어링 없이 Symphony를 도입하면 오히려 역효과입니다.
현실의 많은 프로젝트는 테스트 커버리지가 낮고 CI가 불안정한데, 이런 환경에서 AI 에이전트가
자율로 PR을 올리면 기술 부채만 쌓일 수 있습니다. Symphony를 도입하기 전에 코드베이스 정비를
먼저 투자하는 것이 현명합니다.

▲ 목차로 돌아가기

③ Symphony 아키텍처 8대 컴포넌트 완전 해부

Symphony의 내부 설계는 SPEC.md를 통해 완전히 공개되어 있습니다.
8개의 핵심 컴포넌트가 유기적으로 맞물려 작동합니다.

8대 컴포넌트 개요

컴포넌트 역할 특징
오케스트레이터 전체 시스템 두뇌, 디스패치·재시도·중단 결정 외부 DB 없는 인메모리 상태 머신
워크스페이스 매니저 이슈별 격리 파일시스템 환경 제공 경로 탈출 방지, 이슈 ID 기반 디렉토리 생성
에이전트 러너 Codex 앱 서버를 서브프로세스로 실행·통신 줄 단위 JSON 프로토콜, 5분 스톨 감지 안전장치
워크플로우 로더 WORKFLOW.md에서 설정과 프롬프트 일괄 관리 동적 리로드 — 재시작 없이 즉시 반영
이슈 트래커 클라이언트 Linear API와 폴링·상태 동기화 30초마다 GraphQL API 호출
재시도 큐 실패 시 지수 백오프 재시도 스케줄링 최대 대기 5분 (10초 × 2^n 공식)
HTTP 대시보드 실행 상태·토큰·큐 실시간 모니터링 포트 8080, REST API /api/v1/state 제공
라이프사이클 훅 before_run / after_run 셸 스크립트 실행 품질 게이트(typecheck, test) 자동화에 활용

왜 Elixir·BEAM인가

OpenAI가 Python·TypeScript 대신 Elixir를 레퍼런스 언어로 선택한 이유는 명확합니다.
AI 에이전트 작업은 수십 분씩 이어지는 장시간 실행이 기본이며, 중간에 실패할 가능성이 항상
존재합니다. Erlang/OTP의 슈퍼비전 트리(Supervision Tree)는 수백 개의
독립 프로세스를 동시에 관리하면서 하나가 충돌해도 전체 시스템에 영향을 주지 않습니다.
“Let it crash(충돌해도 괜찮다)” 철학 — 에러를 예방하는 대신 빠르게 복구하는
구조가 AI 자동화 인프라에 정확히 맞아떨어집니다.

💡 디스패치 우선순위 알고리즘:
낮은 우선순위 번호 → 오래된 생성일 → ID 사전순으로 정렬됩니다.
블로커 관계도 해석하여, 선행 이슈가 완료되지 않으면 디스패치를 건너뜁니다.
사람의 프로젝트 관리 흐름과 동일한 논리로 동작합니다.

▲ 목차로 돌아가기

④ 설치 및 설정 — WORKFLOW.md 작성법 실전 가이드

Symphony 설치는 두 가지 경로 중 하나를 선택합니다. 두 방법 모두 공식 지원이며,
팀의 기술 스택에 따라 선택하면 됩니다.

방법 1: AI 에이전트에게 직접 구현 요청 (권장)

OpenAI가 가장 적극적으로 권장하는 방법입니다. 원하는 언어(Python, TypeScript, Go 등)로
AI 에이전트에게 아래 프롬프트를 전달하면, 에이전트가 SPEC.md를 읽고 직접 구현합니다.

prompt

Implement Symphony according to the following spec:

방법 2: 공식 Elixir 레퍼런스 구현체 사용

bash
git clone https://github.com/openai/symphony.git
cd symphony/elixir
# 의존성 설치
mix deps.get
# 환경 변수 설정
export LINEAR_API_KEY="your-api-key-here"
# 실행
mix run --no-halt

WORKFLOW.md — Symphony의 핵심 설정 파일

WORKFLOW.md는 YAML 프론트매터(설정) + 마크다운 본문(에이전트 프롬프트 템플릿)으로
구성됩니다. 이 파일 하나로 폴링 주기, 동시 에이전트 수, 품질 게이트, 에이전트 행동 지침을
모두 관리할 수 있습니다. 수정 즉시 재시작 없이 동적으로 반영됩니다.

WORKFLOW.md

---
tracker:
kind: linear
api_key: $LINEAR_API_KEY
project_slug: YOUR-PROJECT-ID
active_states:
- Todo
- In Progress
terminal_states:
- Done
- Closed
- Cancelled
polling:
interval_ms: 30000        # 30초마다 폴링
workspace:
root: ~/symphony_workspaces
hooks:
after_create: |
git clone https://github.com/your-org/your-repo.git .
npm install
before_run: |
git pull origin main
after_run: |
pnpm typecheck && pnpm test  # 품질 게이트
agent:
max_concurrent_agents: 5
max_turns: 20
server:
port: 8080
You are a software development agent working on Linear issues.
## Current Issue
- **Identifier**: {{ issue.identifier }}
- **Title**: {{ issue.title }}
- **Description**: {{ issue.description }}
## Guidelines
- Move the issue to "In Progress" before starting
- Write clean, well-tested code
- Run all tests before creating a PR
- Post a progress comment on the issue when complete
💡 after_run 훅 활용 팁:
pnpm typecheck && pnpm test처럼 품질 게이트를 after_run에 추가하면,
훅이 실패할 경우 PR을 올리기 전에 에이전트가 문제를 인지하고 수정을 시도합니다.
코드 품질을 자동으로 강제하는 가장 실용적인 방법입니다.

▲ 목차로 돌아가기

⑤ 이슈 → PR까지: 구현 실행 수명 주기 전체 흐름

Linear에 이슈가 등록된 순간부터 PR이 머지되기까지, Symphony 내부에서 일어나는 과정을
단계별로 살펴봅니다. 이 흐름을 이해하면 어디서 문제가 발생하는지, 어떻게 개입해야 하는지를
판단하기 훨씬 쉬워집니다.

STEP 1
폴링 및 트리거
30초마다 Linear API를 호출해 활성 상태 이슈를 감지합니다. 블로커 이슈가 있으면 건너뜁니다.
STEP 2
워크스페이스 격리
~/symphony_workspaces/ABC-123/ 형태로 이슈 전용 독립 디렉토리를 생성하고 레포를 클론합니다.
STEP 3
에이전트 실행
Codex가 이슈 제목·설명·AGENTS.md·코드베이스를 읽고 구현을 시작합니다. max_turns(기본 20)까지 반복됩니다.
STEP 4
작업 증명
CI 통과, 테스트 성공, PR 리뷰 피드백 반영, 워크스루 영상 생성 등 결과를 검증합니다.
STEP 5
PR 생성 & 보고
GitHub에 PR을 올리고 Linear 이슈에 진행 상황 코멘트를 작성합니다. 이슈 상태를 "Human Review"로 변경합니다.
STEP 6
검토 & 머지
개발자가 승인하면 에이전트가 안전하게 PR을 머지합니다. "Rework"로 되돌리면 에이전트가 재작업을 시작합니다.

실패 시 재시도 메커니즘

에이전트가 정상 종료했지만 이슈가 아직 활성 상태라면 1초 후 즉시 재개합니다.
비정상 종료(실패) 시에는 지수 백오프(10초 × 2^n, 최대 5분)가 적용됩니다.
외부 데이터베이스 없이 인메모리 상태만으로 동작하므로, 재시작해도 이슈 트래커에서
최신 상태를 다시 가져와 복구됩니다.

💡 토큰 사용량 모니터링:
HTTP 대시보드(http://localhost:8080)에서 실시간으로 입력/출력 토큰 합산치를
확인할 수 있습니다. 동시에 수십 개의 에이전트가 돌아가면 API 비용이 예상보다 빠르게
증가할 수 있으니, 초기에는 max_concurrent_agents: 2~3으로 시작하는 것을 권장합니다.

▲ 목차로 돌아가기

⑥ Stokowski: Claude Code 사용자를 위한 Symphony 대안

Symphony의 공식 구현체는 Codex를 에이전트로 사용합니다. 그런데 Claude Code를 주로 쓰는
개발자라면 어떨까요? 2026년 3월 7일, Reddit에 Stokowski라는 오픈소스
프로젝트가 공개됐습니다. 지휘자의 이름을 딴 것이 이미 의도를 드러냅니다 — Symphony를
오케스트레이션하는 지휘자입니다.

Stokowski는 OpenAI의 Symphony SPEC.md를 그대로 따르되, 에이전트를 Codex 대신
Claude Code로 교체
한 Python 구현체입니다. Linear + GitHub + Claude Code를
연결하는 파이프라인으로, MCP(.mcp.json) 설정도 자동으로 불러오기 때문에 Figma MCP,
Linear MCP, Playwright 등 기존에 설정해둔 도구들을 에이전트가 그대로 활용합니다.

Stokowski vs Symphony 비교

항목 OpenAI Symphony Stokowski
언어 Elixir (레퍼런스) Python
AI 에이전트 OpenAI Codex Claude Code (Anthropic)
이슈 트래커 Linear (공식) Linear
MCP 지원 미지원 (기본) 자동 지원 (.mcp.json)
WORKFLOW.md YAML + Markdown 템플릿 YAML + Jinja2 템플릿
라이선스 Apache 2.0 Apache 2.0
GitHub openai/symphony Sugar-Coffee/stokowski

개인적인 의견을 덧붙이자면, Claude Code 기반 팀이라면 Stokowski가 더 현실적인 선택일 수
있습니다. Claude Sonnet 4.6의 향상된 Computer Use와 에이전트 플래닝 능력,
그리고 MCP 생태계가 이미 팀에 구축되어 있다면 Stokowski를 통해 Symphony의 이점을
그대로 누릴 수 있습니다. 다만 아직 초기 단계이므로 프로덕션 적용 전에 충분한 테스트가 필요합니다.

▲ 목차로 돌아가기

⑦ 한계와 현실 — 프로덕션 도입 전 반드시 알아야 할 것들

솔직히 말하겠습니다. 현재의 Symphony는 "프로덕션 도구"보다 "비전 선언"에 더 가깝습니다.
OpenAI 스스로 "low-key engineering preview for testing in trusted environments"라고 명시했습니다.
다음 한계점을 파악하고 도입 여부를 판단하시길 권장드립니다.

한계 항목 내용 대응 방안
하네스 엔지니어링 선행 필수 테스트·CI가 불안정한 프로젝트에서는 역효과 위험 도입 전 코드베이스 정비 투자 선행
Linear 의존성 현재 Linear만 공식 지원, Jira·GitHub Issues는 자체 구현 필요 SPEC.md 기반 커스텀 이슈 트래커 클라이언트 구현
보안 모델 미성숙 OS/컨테이너 격리, 네트워크 제한은 기본 구현에 포함되지 않음 Docker 격리, 좁은 범위의 API 권한 별도 설정 필수
고차원 판단 불가 설계 판단, 기술 부채 관리는 여전히 인간 검토 필요 에이전트 결과물에 대한 코드 리뷰 프로세스 유지
API 비용 급증 가능 다수 동시 에이전트 운용 시 토큰 비용 예측 어려움 초기에는 max_concurrent_agents 2~3으로 제한

그럼에도 Symphony가 그리는 미래는 설득력이 있습니다. 2025년이 "에이전트가 코드를 쓸 수 있다"를
증명한 해였다면, 2026년은 "에이전트를 어떻게 대규모로 운용할 것인가"
핵심 경쟁축이 됩니다. Symphony는 그 경쟁의 첫 번째 공개 답안입니다.
엔지니어링의 추상화 수준이 어셈블리→고급언어→프레임워크→코드 작성→작업 정의와 검증으로
또 한 단계 올라가는 과정을 우리는 지금 목격하고 있는 것입니다.

▲ 목차로 돌아가기

❓ 자주 묻는 질문 (Q&A)

Symphony를 사용하려면 Codex 유료 플랜이 필요한가요?

공식 Elixir 레퍼런스 구현체는 OpenAI Codex를 에이전트로 사용하므로, Codex API 사용 비용이
발생합니다. 그러나 SPEC.md 기반으로 어떤 AI 에이전트로도 구현 가능합니다.
Claude Code 기반의 Stokowski나, Gemini·GPT-5.3-Codex 등 원하는 모델로 직접 구현하면
해당 모델의 API 비용만 발생합니다. 에이전트 선택에 종속성은 없습니다.

Linear가 아닌 Jira나 GitHub Issues와도 연동할 수 있나요?

현재 공식 구현체는 Linear만 지원합니다. 그러나 Symphony의 이슈 트래커 클라이언트는
SPEC.md에 인터페이스가 명시되어 있어, Jira·GitHub Issues·Notion 등 다른 이슈 관리 도구용
클라이언트를 직접 구현해 교체할 수 있습니다.
AI 에이전트에게 "SPEC.md의 이슈 트래커 클라이언트 인터페이스를 Jira API로 구현하라"고
요청하면 빠르게 완성됩니다.

여러 에이전트가 동시에 작업할 때 코드 충돌은 어떻게 처리하나요?

Symphony는 이슈별 완전히 격리된 워크스페이스 디렉토리에서 각 에이전트가 독립적으로
작동하므로, 작업 중 파일 시스템 충돌은 발생하지 않습니다.
그러나 서로 다른 에이전트가 동일 파일을 수정하는 PR을 올릴 경우 Git 머지 충돌
발생할 수 있습니다. Stokowski는 이를 해결하기 위해 충돌 브랜치를 별도 생성하고
에이전트가 스마트하게 충돌을 해소하는 파이프라인을 개발 중입니다.
현재로서는 블로커 관계를 활용해 의존성 있는 이슈들이 순차적으로 처리되도록
이슈를 설계하는 것이 가장 실용적인 대안입니다.

Windows 환경에서도 Symphony를 실행할 수 있나요?

공식 Elixir 레퍼런스 구현체는 Linux/macOS를 주요 환경으로 합니다.
Windows에서는 WSL2(Windows Subsystem for Linux 2)를 통해 실행하거나,
Docker 컨테이너 안에서 Symphony를 구동하는 방법을 권장합니다.
TypeScript나 Python으로 직접 구현한 버전은 Windows 네이티브 환경에서도
동작할 수 있으므로, AI 에이전트에게 SPEC.md 기반 Windows 호환 구현을
요청하는 것도 좋은 방법입니다.

하네스 엔지니어링을 적용하지 않은 기존 프로젝트에 바로 도입할 수 있나요?

기술적으로는 가능하지만 실질적인 효과를 기대하기 어렵습니다.
CI가 없거나 테스트 커버리지가 낮은 프로젝트에서는 에이전트가 작업 결과를 스스로 검증할
방법이 없어, 잘못된 코드를 포함한 PR이 쌓일 수 있습니다.
최소한 "AGENTS.md 작성 → 단위 테스트 커버리지 50% 이상 확보 → CI 파이프라인 구축"
3단계를 선행 완료한 뒤 Symphony를 도입하는 것을 권장합니다.
OpenAI의 하네스 엔지니어링 원본 문서(공식 링크)를 참고하세요.

▲ 목차로 돌아가기

🏁 마치며 — 개발의 추상화 수준이 또 한 번 올라갔다

OpenAI Symphony는 단순한 자동화 도구가 아닙니다. "개발자가 코드를 한 줄씩 작성하는 시대"에서
"개발자가 이슈를 정의하고 에이전트의 결과물을 검토하는 시대"로의 전환을 선언하는 프레임워크입니다.
어셈블리에서 고급 언어로, 고급 언어에서 프레임워크로 추상화가 올라갔듯,
이제 코딩 에이전트의 운용 방식도 1:1 감독 모델에서 1:N 관리 모델로 진화하고 있습니다.

다만 솔직히 말하면 오늘 당장 모든 팀이 도입할 준비가 된 것은 아닙니다.
하네스 엔지니어링이라는 탄탄한 기반 없이 Symphony를 억지로 도입하면 오히려
기술 부채와 잘못된 PR만 쌓일 위험이 있습니다.
지금 당장 할 수 있는 첫걸음은 AGENTS.md 작성과 CI 파이프라인 정비입니다.
그 기반이 갖춰졌을 때, Symphony — 혹은 Claude Code 기반의 Stokowski — 가 진정한 위력을 발휘합니다.

2026년이 "에이전트를 어떻게 대규모로 운용할 것인가"의 해라는 점은 이미 분명해졌습니다.
Symphony는 그 질문에 대한 OpenAI의 첫 번째 공개 답안입니다. 그 답이 마음에 들든 들지 않든,
이 방향으로의 흐름 자체는 거스를 수 없을 것입니다.

▲ 목차로 돌아가기

※ 본 포스팅의 정보는 2026년 3월 14일 기준으로 작성되었으며, OpenAI Symphony는 현재
엔지니어링 프리뷰(Engineering Preview) 단계로 공식 프로덕션 릴리스가 아닙니다.
설치 및 운용 전 GitHub 공식 저장소(github.com/openai/symphony)의 최신 사양 및
경고 사항을 반드시 직접 확인하시기 바랍니다. 외부 링크는 해당 사이트의 정책에 따라
내용이 변경될 수 있습니다.

댓글 남기기


최신 글


아이테크 어른경제에서 더 알아보기

지금 구독하여 계속 읽고 전체 아카이브에 액세스하세요.

계속 읽기