GitHub - openai/symphony: Symphony turns project work into isolated, autonomous implementation runs, allowing teams to manage work instead of supervising coding agents.
핵심 포인트
- 1Symphony는 프로젝트 작업을 고립된 자율적 구현 실행으로 전환하여, 개발팀이 Codex와 같은 코딩 에이전트를 직접 감독하는 대신 작업을 관리하도록 돕는 시스템입니다.
- 2이 시스템은 Linear 보드를 모니터링하여 작업을 할당하고, 에이전트가 CI 상태, PR 리뷰 피드백, 복잡성 분석 및 워크스루 비디오와 같은 'Proof of Work'를 제공하며 PR을 안전하게 랜딩하여 엔지니어가 더 높은 수준에서 업무를 관리하게 합니다.
- 3Symphony는 `SPEC.md`를 기반으로 직접 구현하거나 Elixir 참조 구현을 사용할 수 있는 실험적인 엔지니어링 미리보기이며, Apache License 2.0 라이선스하에 제공됩니다.
Symphony는 OpenAI가 개발한 프로젝트로, 엔지니어들이 코딩 에이전트를 직접 감독하는 대신 "work"를 관리할 수 있도록 지원하는 것을 목표로 합니다. 이 시스템은 프로젝트 작업을 격리되고 자율적인 구현 실행으로 전환시킵니다.
핵심 방법론 (Core Methodology):
Symphony의 핵심은 엔지니어와 AI 기반 코딩 에이전트 간의 상호작용 패러다임을 전환하는 데 있습니다. 기존의 코딩 에이전트(예: Codex)를 사용하는 방식에서는 엔지니어가 에이전트의 구체적인 코딩 활동을 감독해야 할 수 있지만, Symphony는 추상화 계층을 도입하여 상위 수준에서 "work" 관리를 가능하게 합니다.
- Work Monitoring 및 Task Spawning: Symphony는 Linear와 같은 태스크 관리 보드를 지속적으로 모니터링하여 새로운 작업이나 진행 중인 작업을 감지합니다. 작업이 식별되면, Symphony는 해당 태스크를 처리하기 위한 코딩 에이전트를 자율적으로 "spawn"합니다. 이는 개별 코딩 에이전트에게 특정 코드를 작성하도록 지시하는 대신, 정의된 "work unit"을 완료하도록 에이전트를 할당하는 방식입니다.
- Autonomous Task Execution: spawn된 에이전트들은 할당된 태스크를 독립적으로 수행합니다. 이 과정에서 에이전트는 코드 작성, 디버깅, 테스트 등 태스크 완수에 필요한 일련의 작업을 자율적으로 실행합니다.
- Proof of Work 생성: 태스크가 완료되면, 에이전트들은 그들의 작업에 대한 "proof of work"를 생성합니다. 이는 엔지니어가 수락 여부를 결정하는 데 필요한 검증 가능한 결과물입니다. 포함되는 "proof of work"는 다음과 같습니다:
- CI status (Continuous Integration status): 코드 변경 사항이 CI/CD 파이프라인을 통과했는지 여부를 나타내는 상태.
- PR review feedback (Pull Request review feedback): 생성된 코드에 대한 코드 리뷰 의견.
- Complexity analysis (복잡성 분석): 생성된 코드의 복잡도에 대한 분석 결과.
- Walkthrough videos (워크스루 비디오): 변경 사항이나 솔루션을 시각적으로 설명하는 비디오.
- PR 자동 Land 및 고수준 관리: 엔지니어가 에이전트의 "proof of work"를 검토하고 수락하면, Symphony는 에이전트가 Pull Request (PR)를 안전하게 "land"하도록 합니다. 이로써 엔지니어는 코딩 에이전트의 세부 구현 과정에 개입하지 않고, 더 높은 수준에서 프로젝트의 "work" 흐름과 결과물을 관리할 수 있게 됩니다.
요구사항 및 배포:
Symphony는 "harness engineering"이 도입된 코드베이스에서 가장 잘 작동하도록 설계되었습니다. 이는 코딩 에이전트 관리의 다음 단계로, 에이전트 자체를 감독하는 대신 수행되어야 할 작업을 관리하는 것에 중점을 둡니다.
사용자는 두 가지 옵션을 통해 Symphony를 사용할 수 있습니다. 첫 번째는 SPEC.md에 명시된 사양에 따라 선호하는 코딩 에이전트를 사용하여 Symphony를 직접 구축하는 것입니다. 두 번째는 Elixir 기반의 참조 구현을 사용하는 것으로, elixir/README.md에 설정 및 실행 지침이 제공됩니다. 이 프로젝트는 Apache License 2.0에 따라 라이선스됩니다.