개요
Open SWE는 LangChain이 공개한 사내 코딩 에이전트 구축용 오픈소스 프레임워크. Stripe(Minions), Ramp(Inspect), Coinbase(Cloudbot) 같은 주요 엔지니어링 조직이 독립적으로 만든 사내 코딩 에이전트들이 유사한 아키텍처 패턴으로 수렴한 것을 발견 → 이를 표준화한 프레임워크. Deep Agents + LangGraph 기반, MIT 라이선스.
- GitHub: https://github.com/langchain-ai/open-swe
- 개발: LangChain
- 라이선스: MIT
- 기반: Deep Agents + LangGraph
- 핵심 철학: 포크가 아닌 컴포지션
등장 배경: 패턴 수렴 발견
Stripe → Minions
Ramp → Inspect
Coinbase → Cloudbot
↓
독립적으로 개발했는데 유사한 아키텍처 결정
↓
"공통 패턴이 있다 → 프레임워크화 가능"
↓
Open SWE 등장
프로덕션 검증된 5가지 공통 패턴
1. 격리된 실행 환경
각 작업이 전용 클라우드 샌드박스에서 실행
↓
엄격한 경계 내에서 전체 권한 부여
↓
프로덕션 시스템 영향 격리
+ 각 액션마다 승인 프롬프트 없이 명령 실행
2. 큐레이션된 툴셋
- Stripe 사례: 약 500개 도구 사용
- 시간이 지나며 축적된 것이 아니라 신중하게 선별·유지
- 도구의 양보다 큐레이션이 더 중요
3. Slack 우선 호출
- 세 시스템 모두 Slack을 기본 인터페이스로
- 새로운 앱으로 컨텍스트 전환 ❌
- 기존 커뮤니케이션 워크플로에서 직접 접근
4. 시작 시 풍부한 컨텍스트
Linear 이슈 + Slack 스레드 + GitHub PR
↓ 전체 컨텍스트를
↓ 작업 시작 전 미리 제공
↓
도구 호출을 통한 요구사항 발견 오버헤드 감소
5. 서브에이전트 오케스트레이션
- 복잡한 작업 분해
- 각각 격리된 컨텍스트 + 집중된 책임
- 전문 자식 에이전트에 위임
Open SWE 아키텍처 7가지 컴포넌트
1. 에이전트 하네스 — Deep Agents 컴포지션
기존 방식:
✗ 에이전트를 처음부터 구축
✗ 또는 OpenCode 같은 것을 포크
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. 컨텍스트 엔지니어링 — 이중 레이어
레이어 1: AGENTS.md (레포지토리 루트)
↓ 시스템 프롬프트에 주입
- 컨벤션
- 테스트 요구사항
- 아키텍처 결정
- 팀별 패턴
레이어 2: 소스 컨텍스트
↓ 에이전트 시작 전 전달
- Linear 이슈 전체 (제목·설명·코멘트)
- Slack 스레드 히스토리
- GitHub PR
→ 관련: Codex 플랫폼 (SDLC 가이드)의 agents.md, Claude Code CLI의 CLAUDE.md
5. 오케스트레이션 — 서브에이전트 + 미들웨어
서브에이전트 (에이전틱)
메인 에이전트가 task 도구로 자식 스폰
↓
독립적 하위 작업 위임
+ 격리된 미들웨어 스택
+ 자체 투두 리스트
+ 자체 파일 작업
미들웨어 (결정론적)
| 미들웨어 | 역할 |
|---|---|
| check_message_queue_before_model | 에이전트 실행 중 도착한 후속 메시지를 다음 모델 호출 전에 주입 |
| open_pr_if_needed | 에이전트가 PR 생성을 못 마쳤을 때 자동 처리 |
| ToolErrorMiddleware | 도구 오류 우아하게 처리 |
→ 에이전틱(LLM 구동) + 결정론적(미들웨어) 분리 = 신뢰성 + 유연성
6. 호출 (Invocation) — 3가지 채널
| 채널 | 사용 |
|---|---|
| Slack | 봇 멘션, repo:owner/name 문법으로 레포 지정 |
| Linear | 이슈에 @openswe 코멘트, 👀 확인 후 결과 코멘트 |
| GitHub | PR 코멘트에 @openswe로 리뷰 피드백 처리, 같은 브랜치에 푸시 |
핵심: 각 호출이 결정론적 스레드 ID 생성 → 같은 이슈/스레드의 후속 메시지가 동일한 에이전트로 라우팅
7. 검증 — 프롬프트 + 안전망
1. 프롬프트 기반:
에이전트가 커밋 전 린터·포매터·테스트 실행
2. 안전망 (백스톱):
open_pr_if_needed 미들웨어
→ 에이전트가 PR 안 열고 종료해도 자동 처리
3. 확장 가능:
- 결정론적 CI 체크
- 비주얼 검증
- 리뷰 게이트
Deep Agents 활용 이유
| 기능 | 효과 |
|---|---|
| 컨텍스트 관리 | 파일 기반 메모리로 오프로딩 → 대규모 코드베이스 컨텍스트 오버플로 방지 |
| 계획 기본 요소 | write_todos로 멀티스텝 작업 구조화 |
| 서브에이전트 격리 | task 도구로 자식 스폰 시 격리된 컨텍스트 |
| 미들웨어 훅 | 메시지 주입·자동 PR 등 안정적 동작 |
| 업그레이드 경로 | Deep Agents 개선 자동 반영 |
플러그형 컴포넌트 (모든 것을 교체 가능)
| 컴포넌트 | 옵션 |
|---|---|
| 샌드박스 제공자 | Modal / Daytona / Runloop / LangSmith / 자체 |
| 모델 | 모든 LLM (기본 Claude Opus 4) |
| 도구 | 내부 API·배포·테스트·모니터링 도구 추가/제거 |
| 트리거 | Slack/Linear/GitHub + 이메일·웹훅·커스텀 UI |
| 시스템 프롬프트 | AGENTS.md 반영 로직 커스텀 |
| 미들웨어 | 검증·승인·로깅·안전 체크 |
vs 다른 코딩 에이전트
| 도구 | 대상 | 라이선스 | 차별점 |
|---|---|---|---|
| Open SWE ⭐ | 사내 자체 호스팅 | MIT | 프레임워크 (커스터마이즈) |
| Codex 플랫폼 | 개인·팀 | Proprietary | OpenAI 통합 |
| Claude Code CLI | 개인·팀 | Proprietary | Anthropic 통합 |
| Cursor | 개인·팀 | Proprietary | IDE 기반 |
| Kiro CLI | 팀 | Proprietary | Spec-driven |
| OpenCode | 사내 | Apache 2.0 | TUI 기반 |
→ “제품” vs “프레임워크” 구분
- 제품: 즉시 사용 가능, 커스터마이즈 제한
- Open SWE = 프레임워크: 사내 인프라에 맞게 빌드
사내 자체 코딩 에이전트의 시대
2024:
엔지니어가 Cursor / Claude Code / Codex 사용
2025:
대형 조직이 "사내 코딩 에이전트" 자체 구축
- Stripe Minions
- Ramp Inspect
- Coinbase Cloudbot
→ 보안·내부 시스템 통합·맞춤 워크플로
2026 (Open SWE 등장):
"사내 에이전트의 표준 프레임워크"
→ 작은 팀도 사내 에이전트 구축 가능
→ 관련: OpenClaw, AI Coding Agent
AGENTS.md 표준화 흐름
같은 컨셉, 다양한 이름:
Codex → agents.md
Claude → CLAUDE.md
Cursor → .cursorrules
Kiro → steering files
Open SWE → AGENTS.md
Windsurf → 설정 파일
Aider → CONVENTIONS.md
→ 사실상 표준이 형성되는 중 — 어떤 에이전트든 “프로젝트 지침 파일”이 핵심
사용 시나리오
| 시나리오 | 적합성 |
|---|---|
| 대형 엔터프라이즈 | ✅ 보안·내부 시스템 통합 필수 시 |
| 레귤레이티드 산업 | ✅ 클라우드 SaaS 사용 불가 환경 |
| 유니크 워크플로 | ✅ 표준 도구로 표현 어려운 경우 |
| 개인 사용 | ❌ 너무 무거움, Claude Code/Cursor 사용 |
| 소규모 팀 | △ 시간 투자 가치 있을 때만 |
시작하기
# Open SWE 설치
git clone https://github.com/langchain-ai/open-swe
cd open-swe
# 가이드 따라 설정:
# 1. GitHub App 생성
# 2. LangSmith 설정
# 3. Linear/Slack/GitHub 트리거 연결
# 4. 프로덕션 배포
# Customization Guide:
# - 샌드박스 교체
# - 모델 교체
# - 도구 추가
# - 트리거 교체
# - 시스템 프롬프트 수정
# - 미들웨어 추가의의 & 시사점
1. "패턴 수렴"의 가치
- Stripe·Ramp·Coinbase가 독립적으로 같은 답에 도달
- = 그 패턴이 옳다는 강력한 증거
2. 프레임워크의 민주화
- 대형 조직만 만들 수 있던 사내 에이전트
- 이제 누구나 구축 가능
3. 컴포지션 vs 포크
- Deep Agents 위에 빌드 = 업그레이드 가능
- 기존 시스템의 안티패턴 회피
4. 결정론 + 에이전틱 균형
- LLM = 추론·창의
- 미들웨어 = 안정성·예측가능성
5. 컨텍스트 우선주의
- 도구보다 컨텍스트가 중요
- AGENTS.md + 소스 컨텍스트 이중 레이어
다른 노트와의 연결
| 노트 | 연결점 |
|---|---|
| Codex 플랫폼 (SDLC 가이드) | agents.md 동일 표준 |
| Claude Code CLI | CLAUDE.md 같은 패턴 |
| Cursor | .cursorrules |
| Fig → Amazon Q → Kiro CLI 진화사 | Steering files |
| 코딩 에이전트 하니스 & Hashline | ”하니스 표준화” |
| Claude 스크린샷 루프 (3D 작업) | 검증 인프라 패턴 |
| OmniCoder-9B | 에이전트 행동 학습 |
| Serena MCP | 도구 큐레이션 |
| OpenCode | Ramp가 Inspect 빌드 시 활용 |
메타 패턴 강화
오늘 추가한 노트들의 메시지가 더 강해짐:
"AI 에이전트 인프라가 표준화되고 있다"
표준화 요소:
1. 지침 파일 (agents.md / CLAUDE.md / .cursorrules)
2. 격리된 샌드박스
3. 큐레이션된 도구셋
4. 미들웨어/훅 패턴
5. 서브에이전트 오케스트레이션
6. 다중 채널 호출 (Slack/GitHub/Linear)
7. 컨텍스트 이중 레이어 (정적+동적)
8. MCP 통합
→ AI 코딩 도구의 "OS API화"가 진행 중