- Stripe, Ramp, Coinbase 등 주요 엔지니어링 조직이 독립적으로 구축한 사내 코딩 에이전트들이 유사한 아키텍처 패턴으로 수렴하고 있으며, 이를 오픈소스로 구현한 프레임워크가 Open SWE
-
Deep Agents 와 LangGraph 위에 구성되어, 격리된 클라우드 샌드박스·큐레이션된 툴셋·서브에이전트 오케스트레이션·개발자 워크플로 통합 등 핵심 컴포넌트를 제공
- 기존 에이전트를 포크하지 않고 컴포지션 방식으로 구축하여, 기반 프레임워크 업그레이드와 조직별 커스터마이징을 동시에 유지 가능
- 샌드박스 제공자·모델·도구·트리거·시스템 프롬프트·미들웨어 등 모든 주요 컴포넌트가 플러그형으로 교체 가능
- 사내 코딩 에이전트 도입을 검토하는 팀에게 프로덕션 검증된 패턴 기반의 출발점을 MIT 라이선스로 제공
프로덕션 배포에서 발견된 공통 패턴
- Stripe의 Minions, Ramp의 Inspect, Coinbase의 Cloudbot 등 코딩 에이전트들이 독립적으로 개발되었음에도 유사한 아키텍처적 결정으로 수렴
-
격리된 실행 환경: 각 작업이 전용 클라우드 샌드박스에서 실행되며, 엄격한 경계 내에서 전체 권한 부여. 프로덕션 시스템에 대한 실수의 영향 범위를 격리하면서 각 액션마다 승인 프롬프트 없이 명령 실행 가능
-
큐레이션된 툴셋: Stripe 엔지니어링 팀에 따르면 에이전트가 약 500개 도구에 접근하지만, 시간이 지나며 축적된 것이 아니라 신중하게 선별·유지 관리. 도구의 양보다 큐레이션이 더 중요
-
Slack 우선 호출: 세 시스템 모두 Slack을 기본 인터페이스로 통합하여, 개발자가 새로운 애플리케이션으로 컨텍스트 전환할 필요 없이 기존 커뮤니케이션 워크플로에서 접근
-
시작 시 풍부한 컨텍스트: Linear 이슈, Slack 스레드, GitHub PR에서 전체 컨텍스트를 끌어와 작업 시작 전에 제공하여, 도구 호출을 통한 요구사항 발견 오버헤드 감소
-
서브에이전트 오케스트레이션: 복잡한 작업을 분해하여 각각 격리된 컨텍스트와 집중된 책임을 가진 전문 자식 에이전트에 위임
Open SWE 아키텍처
-
- 기존 에이전트를 포크하거나 처음부터 구축하는 대신 Deep Agents 프레임워크 위에 컴포지션하는 방식. Ramp 팀이 OpenCode 위에 Inspect를 구축한 접근과 유사
- 컴포지션의 두 가지 장점:
-
업그레이드 경로: Deep Agents가 개선될 때(더 나은 컨텍스트 관리, 효율적 계획, 최적화된 토큰 사용) 커스터마이징을 다시 구축하지 않고 개선 사항 반영 가능
-
포크 없는 커스터마이징: 조직별 도구·프롬프트·워크플로를 코어 에이전트 로직 수정이 아닌 설정으로 유지 가능
- Deep Agents가 제공하는 인프라:
write_todos를 통한 내장 계획, 파일 기반 컨텍스트 관리, task 도구를 통한 네이티브 서브에이전트 스폰, 결정론적 오케스트레이션을 위한 미들웨어 훅
-
2. 샌드박스: 격리된 클라우드 환경
- 각 작업이 자체 격리된 클라우드 샌드박스에서 실행, 전체 셸 접근이 가능한 원격 Linux 환경
- 레포지토리를 클론하여 에이전트에 전체 권한 부여, 오류는 해당 환경 내에 격리
- 기본 지원 샌드박스 제공자: Modal, Daytona, Runloop, LangSmith. 자체 샌드박스 백엔드 구현도 가능
- 핵심 동작:
- 각 대화 스레드마다 퍼시스턴트 샌드박스 부여, 후속 메시지에서 재사용
- 샌드박스가 접근 불가 상태가 되면 자동 재생성
- 여러 작업이 각각 자체 샌드박스에서 병렬 실행
-
3. 도구: 축적이 아닌 큐레이션
- Open SWE는 집중된 툴셋과 함께 Deep Agents 내장 도구(
read_file, write_file, edit_file, ls, glob, grep, write_todos, task)를 제공
- 작고 큐레이션된 툴셋이 테스트·유지보수·추론에 더 용이. 조직 내 추가 도구(내부 API, 커스텀 배포 시스템, 특수 테스트 프레임워크)는 명시적으로 추가 가능
-
4. 컨텍스트 엔지니어링: AGENTS.md + 소스 컨텍스트
- 두 가지 소스에서 컨텍스트 수집:
-
AGENTS.md 파일: 레포지토리 루트에 있으면 샌드박스에서 읽어 시스템 프롬프트에 주입. 컨벤션, 테스트 요구사항, 아키텍처 결정, 팀별 패턴 등을 인코딩
-
소스 컨텍스트: Linear 이슈 전체(제목, 설명, 코멘트) 또는 Slack 스레드 히스토리를 조합하여 에이전트 시작 전 전달, 추가 도구 호출 없이 작업별 컨텍스트 제공
- 레포지토리 전체 지식과 작업별 정보를 균형 있게 결합하는 이중 레이어 접근
-
5. 오케스트레이션: 서브에이전트 + 미들웨어
- 두 가지 메커니즘 결합:
-
서브에이전트:
task 도구를 통해 자식 에이전트 스폰. 메인 에이전트가 독립적 하위 작업을 각자의 미들웨어 스택·투두 리스트·파일 작업을 가진 격리된 서브에이전트에 위임
-
미들웨어: 에이전트 루프 주변에서 실행되는 결정론적 훅
-
check_message_queue_before_model: 에이전트 실행 중 도착한 후속 메시지(Linear 코멘트, Slack 메시지)를 다음 모델 호출 전에 주입. 에이전트 작업 중 사용자 추가 입력 가능
-
open_pr_if_needed: 에이전트가 PR 열기를 완료하지 못한 경우 자동으로 커밋·PR 생성하는 안전망
-
ToolErrorMiddleware: 도구 오류를 우아하게 포착·처리
- 에이전틱(모델 구동)과 결정론적(미들웨어 구동) 오케스트레이션의 분리를 통해 신뢰성과 유연성의 균형 확보
-
6. 호출: Slack, Linear, GitHub
-
Slack: 스레드에서 봇 멘션.
repo:owner/name 문법으로 작업할 레포지토리 지정. 에이전트가 스레드 내에서 상태 업데이트와 PR 링크 응답
-
Linear: 이슈에
@openswe 코멘트. 에이전트가 전체 이슈 컨텍스트를 읽고 👀으로 확인 후 결과를 코멘트로 게시
-
GitHub: 에이전트가 생성한 PR의 코멘트에
@openswe 태그로 리뷰 피드백 처리, 같은 브랜치에 수정 사항 푸시
- 각 호출이 결정론적 스레드 ID를 생성하여, 같은 이슈나 스레드의 후속 메시지가 동일한 실행 중인 에이전트로 라우팅
-
7. 검증: 프롬프트 기반 + 안전망
- 에이전트가 커밋 전 린터·포매터·테스트를 실행하도록 지시
-
open_pr_if_needed 미들웨어가 백스톱 역할: 에이전트가 PR을 열지 않고 종료하면 미들웨어가 자동 처리
- 결정론적 CI 체크, 비주얼 검증, 리뷰 게이트를 추가 미들웨어로 확장 가능
Deep Agents를 사용하는 이유
-
컨텍스트 관리: 장기 실행 코딩 작업이 생성하는 대량의 중간 데이터(파일 내용, 명령 출력, 검색 결과)를 파일 기반 메모리로 오프로딩하여, 대화 히스토리에 모든 것을 유지하지 않음. 대규모 코드베이스에서 컨텍스트 오버플로 방지에 효과적
-
계획 기본 요소: 내장
write_todos 도구로 복잡한 작업 분해, 진행 추적, 새 정보에 따른 계획 적응을 구조화. 장기간에 걸친 멀티스텝 작업에 특히 유용
-
서브에이전트 격리: 메인 에이전트가
task 도구로 자식 에이전트를 스폰할 때 격리된 컨텍스트 부여. 서로 다른 하위 작업의 대화 히스토리가 오염되지 않아 복잡한 작업에서 더 명확한 추론 가능
-
미들웨어 훅: 에이전트 루프의 특정 지점에 결정론적 로직 주입 가능. 메시지 주입과 자동 PR 생성 등 안정적으로 실행되어야 하는 동작 구현에 활용
-
업그레이드 경로: Deep Agents가 독립 라이브러리로 활발히 개발되므로, 컨텍스트 압축·프롬프트 캐싱·계획 효율성·서브에이전트 오케스트레이션의 개선이 커스터마이징 재구축 없이 Open SWE에 반영 가능
조직별 커스터마이징
- Open SWE는 완성된 제품이 아닌 커스터마이징 가능한 기반으로 설계. 모든 주요 컴포넌트가 플러그형:
-
샌드박스 제공자: Modal, Daytona, Runloop, LangSmith 간 교체. 내부 인프라 요구사항에 맞는 자체 샌드박스 백엔드 구현 가능
-
모델: 모든 LLM 제공자 사용 가능. 기본값은 Claude Opus 4이며, 서브태스크별 다른 모델 설정 가능
-
도구: 내부 API·배포 시스템·테스트 프레임워크·모니터링 플랫폼용 도구 추가. 불필요한 도구 제거 가능
-
트리거: Slack·Linear·GitHub 통합 로직 수정. 이메일·웹훅·커스텀 UI 등 새 트리거 표면 추가 가능
-
시스템 프롬프트: 기본 프롬프트와 AGENTS.md 파일 반영 로직 커스터마이징. 조직별 지침·제약·컨벤션 추가 가능
-
미들웨어: 검증·승인 게이트·로깅·안전 체크를 위한 자체 미들웨어 훅 추가 가능
내부 구현과의 비교
- Stripe, Ramp, Coinbase의 내부 시스템과 공개 정보 기반으로 비교 시, 핵심 패턴은 유사
- 차이점은 구현 세부 사항, 내부 통합, 조직별 도구에 존재하며, 이는 프레임워크를 다른 환경에 적응시킬 때 예상되는 차이
시작하기