개요

Open SWE는 LangChain이 공개한 사내 코딩 에이전트 구축용 오픈소스 프레임워크. Stripe(Minions), Ramp(Inspect), Coinbase(Cloudbot) 같은 주요 엔지니어링 조직이 독립적으로 만든 사내 코딩 에이전트들이 유사한 아키텍처 패턴으로 수렴한 것을 발견 → 이를 표준화한 프레임워크. Deep Agents + LangGraph 기반, MIT 라이선스.


등장 배경: 패턴 수렴 발견

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 구축한 접근과 유사)

컴포지션의 두 가지 장점:

  1. 업그레이드 경로: Deep Agents 개선 시 자동 반영
  2. 포크 없는 커스터마이징: 설정으로 조직별 차이 유지

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 코멘트, 👀 확인 후 결과 코멘트
GitHubPR 코멘트에 @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 플랫폼개인·팀ProprietaryOpenAI 통합
Claude Code CLI개인·팀ProprietaryAnthropic 통합
Cursor개인·팀ProprietaryIDE 기반
Kiro CLIProprietarySpec-driven
OpenCode사내Apache 2.0TUI 기반

“제품” 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 CLICLAUDE.md 같은 패턴
Cursor.cursorrules
Fig → Amazon Q → Kiro CLI 진화사Steering files
코딩 에이전트 하니스 & Hashline”하니스 표준화”
Claude 스크린샷 루프 (3D 작업)검증 인프라 패턴
OmniCoder-9B에이전트 행동 학습
Serena MCP도구 큐레이션
OpenCodeRamp가 Inspect 빌드 시 활용

메타 패턴 강화

오늘 추가한 노트들의 메시지가 더 강해짐:

"AI 에이전트 인프라가 표준화되고 있다"

표준화 요소:
  1. 지침 파일 (agents.md / CLAUDE.md / .cursorrules)
  2. 격리된 샌드박스
  3. 큐레이션된 도구셋
  4. 미들웨어/훅 패턴
  5. 서브에이전트 오케스트레이션
  6. 다중 채널 호출 (Slack/GitHub/Linear)
  7. 컨텍스트 이중 레이어 (정적+동적)
  8. MCP 통합

→ AI 코딩 도구의 "OS API화"가 진행 중

관련 항목