프레임워크 비교
JamJet vs LangGraph vs CrewAI vs AutoGen vs Google ADK — 실행, 내구성, 관찰성, 평가, 확장성 전반의 기능 비교표.
최종 업데이트: 2026-04-15 · JamJet v0.5.0 · 수정 제안 환영
✓ 내장⚙ 플러그인 지원~ 부분 지원— 미지원… 개발 중
- Plain Python — 가장 빠른 시작, 최소한의 보장. 프로토타입과 일회성 스크립트에 적합.
- LangGraph — 그래프 오케스트레이션, 익숙한 패턴, 체크포인터를 통한 선택적 내구성.
- JamJet — Python 멘탈 모델에 기본 내구성과 강력한 런타임 보장 제공.
- CrewAI / AutoGen — 일부 멀티 에이전트 패턴에 유용한 추상화 제공, 다만 안정성 측면에서는 다른 접근.
- Google ADK — Gemini와 긴밀한 통합, A2A 공동 개발, Google Cloud의 강력한 지원으로 빠르게 발전 중. Google AI 스택 기반 팀에 최적.
LangGraph의 Python 워크플로 모델을 선호하지만 내구성, 재생, 타입 검증, 런타임 강제 제한을 기본으로 원한다면 JamJet이 개념적으로 가장 가까운 선택입니다. LangGraph 마이그레이션 가이드를 참고하세요.
| 기능 | JamJet | LangGraph | CrewAI | AutoGen | Google ADK |
|---|
| 그래프 기반 워크플로 | ✓ | ✓ | ~ 순차/계층적 | ✓ | ✓ 순차, 병렬, 루프 에이전트 |
| 비동기 실행 | ✓ | ✓ | ✓ | ✓ | ✓ |
| 로컬 인프로세스 러너 | ✓ | ✓ | ✓ | ✓ | ✓ |
| 타입 지정 상태 | ✓ Pydantic | ~ TypedDict | — Dict | ~ Dict | ~ |
| 단계별 상태 검증 | ✓ | — | — | — | — |
| 조건부 라우팅 | ✓ 인라인 조건식 | ✓ 엣지 함수 | ~ 프로세스 타입 | ✓ | ✓ |
| 병렬 분기 | ✓ type: parallel | ✓ | — | ✓ | ✓ |
| 사이클 / 루프 지원 | ✓ | ✓ | ~ | ✓ | ✓ |
| 기능 | JamJet | LangGraph | CrewAI | AutoGen | Google ADK |
|---|
| 지속 가능한 실행 (충돌 복구) | ✓ Rust 런타임 | ⚙ Checkpointers | — | — | — |
| 이벤트 소싱 | ✓ 네이티브 | — | — | — | — |
| 백오프를 통한 자동 재시도 | ✓ YAML 설정 | ⚙ 수동 | ⚙ 수동 | ⚙ 수동 | ~ 수동 |
| 휴먼-인-더-루프 / 일시정지 | ✓ type: wait | ✓ interrupt_before | — | ~ | ✓ |
| 모든 체크포인트에서 재개 | ✓ | ⚙ Saver 필요 | — | — | — |
| 단계별 타임아웃 | ✓ | ~ | — | ~ | ~ |
| 기능 | JamJet | LangGraph | CrewAI | AutoGen | Google ADK |
|---|
| 구조화된 이벤트 로그 | ✓ 단계별 이벤트 | ~ Callbacks | ~ verbose text | ~ | ✓ |
| 실행 검사 CLI | ✓ jamjet inspect | — | — | — | — |
| 이벤트 타임라인 | ✓ | — | — | — | — |
| OpenTelemetry 트레이싱 | … | ⚙ LangSmith | ⚙ | — | ✓ 내장형 |
| 타임 트래블 디버깅 | … | — | — | — | — |
| 토큰/비용 귀속 | ✓ | — | — | — | ✓ |
| 웹 인스펙터/대시보드 | ✓ Web Companion | — | — | — | ✓ ADK Web UI |
| 기능 | JamJet | LangGraph | CrewAI | AutoGen | Google ADK |
|---|
| MCP 클라이언트 (모든 MCP 서버 사용) | ✓ 네이티브 | ⚙ 어댑터 경유 | ⚙ 어댑터 경유 | ⚙ 어댑터 경유 | ✓ 네이티브 |
| MCP 서버 (도구 노출) | … | — | — | — | — |
| A2A 에이전트 간 호출 | ✓ 클라이언트 + 서버 | — | — | — | ✓ 공동 개발 스펙 |
| OpenAI 함수 호출 | ✓ | ✓ | ✓ | ✓ | ✓ |
| 커스텀 Python 도구 | ✓ @tool 데코레이터 | ✓ | ✓ | ✓ | ✓ |
| 오류 시 도구 재시도 | ✓ 노드 레벨 설정 | ⚙ 수동 | ⚙ 수동 | ⚙ 수동 | ~ |
| 기능 | JamJet | LangGraph | CrewAI | AutoGen | Google ADK |
|---|
| 내장 평가 하네스 | ✓ | — | — | — | ✓ pytest 기반 |
| LLM-as-judge 점수 산정 | ✓ LlmJudgeScorer | — | — | — | — |
| 어서션 점수 산정 | ✓ AssertionScorer | — | — | — | — |
| 지연시간 예산 | ✓ LatencyScorer | — | — | — | — |
| 비용 예산 | ✓ CostScorer | — | — | — | — |
| 데이터셋 재생 | ✓ | — | — | — | ~ |
| 회귀 시 CI 종료 코드 | ✓ --fail-under | — | — | — | ~ |
| 워크플로 노드로서의 평가 | ✓ type: eval | — | — | — | — |
| 기능 | JamJet | LangGraph | CrewAI | AutoGen | Google ADK |
|---|
| YAML 워크플로 작성 | ✓ | — | — | — | — |
| Python 데코레이터 API | ✓ @wf.step | ✓ | ✓ | ✓ | ✓ |
| 프로젝트 템플릿 | ✓ jamjet init --template | — | — | — | — |
| 로컬 개발 서버 | ✓ jamjet dev | — | — | — | — |
| 워크플로 검증 CLI | ✓ jamjet validate | — | — | — | — |
| 멀티 모델 지원 | ✓ OpenAI 호환 모델 전체 | ✓ | ✓ | ✓ | ~ 주로 Gemini |
| 로컬 모델 (Ollama 등) | ✓ | ✓ | ✓ | ✓ | ~ |
| 기능 | JamJet | LangGraph | CrewAI | AutoGen | Google ADK |
|---|
| 런타임 언어 | Rust | Python | Python | Python | Python |
| 다중 언어 SDK | Python (TS …) | Python, JS | Python | Python, .NET | Python |
| Kubernetes 지원 | ✓ 상태 비저장 바이너리 | ⚙ | ⚙ | ⚙ | ⚙ |
| 관리형 클라우드 | … | ✓ LangGraph Cloud | — | — | ✓ Vertex AI |
| 스트리밍 | ✓ | ✓ | ~ | ✓ | ✓ |
| 오픈 소스 | ✓ Apache-2.0 | ✓ MIT | ✓ MIT | ✓ CC-BY-4 | ✓ Apache-2.0 |
참고:
측정된 지연 시간 비교, 방법론 및 원시 결과는 벤치마크를 참조하세요. 마이그레이션 가이드: LangGraph에서 마이그레이션, CrewAI에서 마이그레이션, OpenAI SDK에서 마이그레이션.