# Open SWE: 사내 코딩 에이전트를 위한 오픈소스 프레임워크

> Clean Markdown view of GeekNews topic #27604. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=27604](https://news.hada.io/topic?id=27604)
- GeekNews Markdown: [https://news.hada.io/topic/27604.md](https://news.hada.io/topic/27604.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2026-03-18T10:32:02+09:00
- Updated: 2026-03-18T10:32:02+09:00
- Original source: [x.com/LangChain](https://x.com/LangChain/status/2033959303766512006)
- Points: 33
- Comments: 2

## Summary

대형 테크 기업들이 독립적으로 구축한 사내 코딩 에이전트들이 결국 **유사한 아키텍처 패턴**으로 수렴하고 있는데요. Open SWE는 이러한 프로덕션 검증된 구조를 오픈소스로 구현한 프레임워크로, Deep Agents와 LangGraph 위에서 **격리된 샌드박스·큐레이션된 툴셋·서브에이전트 오케스트레이션**을 기본 제공합니다. 포크 없이 컴포지션 방식으로 확장할 수 있어, 조직별 커스터마이징과 기반 프레임워크 업그레이드를 동시에 유지할 수 있습니다.

## Topic Body

- Stripe, Ramp, Coinbase 등 주요 엔지니어링 조직이 독립적으로 구축한 사내 코딩 에이전트들이 **유사한 아키텍처 패턴**으로 수렴하고 있으며, 이를 오픈소스로 구현한 프레임워크가 Open SWE  
- **[Deep Agents](https://github.com/langchain-ai/deepagents)** 와 [LangGraph](https://langchain-ai.github.io/langgraph/) 위에 구성되어, 격리된 클라우드 샌드박스·큐레이션된 툴셋·서브에이전트 오케스트레이션·개발자 워크플로 통합 등 핵심 컴포넌트를 제공  
- 기존 에이전트를 포크하지 않고 **컴포지션 방식**으로 구축하여, 기반 프레임워크 업그레이드와 조직별 커스터마이징을 동시에 유지 가능  
- 샌드박스 제공자·모델·도구·트리거·시스템 프롬프트·미들웨어 등 **모든 주요 컴포넌트가 플러그형**으로 교체 가능  
- 사내 코딩 에이전트 도입을 검토하는 팀에게 **프로덕션 검증된 패턴 기반의 출발점**을 MIT 라이선스로 제공  
  
---  
  
### 프로덕션 배포에서 발견된 공통 패턴  
  
- Stripe의 [Minions](https://stripe.dev/blog/minions-stripes-one-shot-end-to-end-coding-agents), Ramp의 [Inspect](https://modal.com/blog/how-ramp-built-a-full-context-background-coding-agent-on-modal), Coinbase의 [Cloudbot](https://www.coinbase.com/blog/building-enterprise-AI-agents-at-Coinbase) 등 코딩 에이전트들이 독립적으로 개발되었음에도 **유사한 아키텍처적 결정**으로 수렴  
- **격리된 실행 환경**: 각 작업이 전용 클라우드 샌드박스에서 실행되며, 엄격한 경계 내에서 전체 권한 부여. 프로덕션 시스템에 대한 실수의 영향 범위를 격리하면서 각 액션마다 승인 프롬프트 없이 명령 실행 가능  
- **큐레이션된 툴셋**: Stripe 엔지니어링 팀에 따르면 에이전트가 약 **500개 도구**에 접근하지만, 시간이 지나며 축적된 것이 아니라 신중하게 선별·유지 관리. 도구의 양보다 **큐레이션이 더 중요**  
- **Slack 우선 호출**: 세 시스템 모두 **Slack을 기본 인터페이스**로 통합하여, 개발자가 새로운 애플리케이션으로 컨텍스트 전환할 필요 없이 기존 커뮤니케이션 워크플로에서 접근  
- **시작 시 풍부한 컨텍스트**: Linear 이슈, Slack 스레드, GitHub PR에서 전체 컨텍스트를 끌어와 작업 시작 전에 제공하여, 도구 호출을 통한 요구사항 발견 오버헤드 감소  
- **서브에이전트 오케스트레이션**: 복잡한 작업을 분해하여 각각 격리된 컨텍스트와 집중된 책임을 가진 전문 자식 에이전트에 위임  
  
### Open SWE 아키텍처  
- ## 1. 에이전트 하네스: [Deep Agents](https://github.com/langchain-ai/deepagents) 기반 컴포지션  
  - 기존 에이전트를 포크하거나 처음부터 구축하는 대신 **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](https://modal.com/), [Daytona](https://www.daytona.io/), [Runloop](https://www.runloop.ai/), [LangSmith](https://blog.langchain.com/introducing-langsmith-sandboxes-secure-code-execution-for-agents/) 간 교체. 내부 인프라 요구사항에 맞는 자체 샌드박스 백엔드 구현 가능  
  - **모델**: 모든 LLM 제공자 사용 가능. 기본값은 Claude Opus 4이며, 서브태스크별 다른 모델 설정 가능  
  - **도구**: 내부 API·배포 시스템·테스트 프레임워크·모니터링 플랫폼용 도구 추가. 불필요한 도구 제거 가능  
  - **트리거**: Slack·Linear·GitHub 통합 로직 수정. 이메일·웹훅·커스텀 UI 등 새 트리거 표면 추가 가능  
  - **시스템 프롬프트**: 기본 프롬프트와 AGENTS.md 파일 반영 로직 커스터마이징. 조직별 지침·제약·컨벤션 추가 가능  
  - **미들웨어**: 검증·승인 게이트·로깅·안전 체크를 위한 자체 미들웨어 훅 추가 가능  
  
### 내부 구현과의 비교  
  
- Stripe, Ramp, Coinbase의 내부 시스템과 공개 정보 기반으로 비교 시, **핵심 패턴은 유사**  
- 차이점은 구현 세부 사항, 내부 통합, 조직별 도구에 존재하며, 이는 프레임워크를 다른 환경에 적응시킬 때 예상되는 차이  
  
### 시작하기  
  
- [Open SWE](https://github.com/langchain-ai/open-swe)는 **MIT 라이선스**로 GitHub에서 사용 가능 : https://github.com/langchain-ai/open-swe  
- [Installation Guide](https://github.com/langchain-ai/open-swe/blob/main/INSTALLATION.md)에서 GitHub App 생성, LangSmith 설정, Linear/Slack/GitHub 트리거, 프로덕션 배포 안내  
- [Customization Guide](https://github.com/langchain-ai/open-swe/blob/main/CUSTOMIZATION.md)에서 샌드박스·모델·도구·트리거·시스템 프롬프트·미들웨어 교체 방법 제공  
- 포크, 커스터마이징, 내부 배포 모두 가능

## Comments



### Comment 53293

- Author: sea715
- Created: 2026-03-18T15:45:45+09:00
- Points: 1

사람들 생각이 다 비슷비슷하긴하군요.. 진짜 춘추전국시대네

### Comment 53274

- Author: xguru
- Created: 2026-03-18T10:46:52+09:00
- Points: 1

이제 다들 사내 코딩 에이전트를 만들고 있으니, 그거용 프레임워크를 만들어버렸군요. 다들 빠르다.  
  
꼭 이걸 쓰기보다는 내부에서 참고한 여러 회사들의 패턴을 봐두는 것도 좋을듯
