프로덕션 AI 에이전트는 하나의 프레임워크로 끝나지 않는다. 오케스트레이션, 메모리, 도구 프로토콜, 브라우저 조작, 코딩 에이전트, 평가·관찰성, 추론 엔진이 서로 다른 제약을 갖기 때문이다. 2026년 오픈소스 에이전트 툴킷을 고를 때는 “어떤 생태계가 전부 제공하나”보다 “각 계층에서 지배적인 제약이 무엇인가”를 먼저 봐야 한다.
7계층
| 계층 | 대표 선택지 | 주요 판단 기준 |
|---|---|---|
| 오케스트레이션 | LangGraph, CrewAI, Pydantic AI, Mastra | 상태 복구, audit trail, 팀 언어 스택 |
| 메모리 | Mem0, Zep/Graphiti, Letta | 지연 시간, temporal reasoning, 셀프호스팅 |
| 도구 프로토콜 | MCP, FastMCP, mcp-agent | 도구 서버 수, 생명주기 관리, 표준 호환성 |
| 브라우저·컴퓨터 사용 | Browser Use, Stagehand, Skyvern | DOM 기반 자동화 vs 비전 기반 조작 |
| 코딩 에이전트 | OpenHands, Aider, Cline | 샌드박스, Git 기록, IDE 통합 |
| 평가·관찰성 | Langfuse, Arize Phoenix, Inspect AI | tracing, eval, 보안·안전 평가 |
| 모델·추론 | vLLM, Ollama, llama.cpp, SGLang | GPU 처리량, 로컬 실행, JSON 제약 디코딩 |
네 가지 제약으로 고른다
도구 선택은 보통 네 가지 제약 중 하나가 지배한다.
- 지연 시간과 비용: 메모리 검색, 모델 serving, 브라우저 단계 수가 병목이면 Mem0, vLLM, Playwright 기반 경로처럼 빠른 선택지가 유리하다.
- 감사 가능성: 규제 산업, 결제, 운영 자동화라면 LangGraph식 상태 전이, Langfuse trace, PR 기반 검토가 중요하다.
- 모델 이식성: 특정 벤더 SDK에 묶이면 빠르게 시작할 수 있지만 모델 교체 비용이 커진다.
- 언어 스택: Python 팀은 LangGraph·Pydantic AI, TypeScript 팀은 Mastra·Stagehand가 자연스럽다.
계층은 독립적으로 고른다
좋은 에이전트 스택은 한 회사나 한 프레임워크 안에서 모든 계층을 맞추는 구성이 아니다. LangGraph를 쓰면서 Mem0, MCP, Browser Use, Langfuse, vLLM을 붙일 수 있고, TypeScript 제품은 Mastra와 Stagehand를 중심으로 다른 계층을 조합할 수 있다.
문제는 통합 경계다. 각 계층은 얇은 HTTP API, 설정 파일, import, trace schema로 만난다. 이 경계를 관리하는 비용을 피하려고 평균적인 단일 생태계를 고르면, 실제 병목이 생겼을 때 더 큰 재작성 비용을 낸다.
실무 선택 순서
- 에이전트가 실패하면 가장 먼저 문제가 될 계층을 고른다.
- 그 계층에서 지배 제약을 정한다.
- 잘못 골랐을 때 rip-out cost가 큰 계층부터 보수적으로 선택한다.
- MCP 서버처럼 교체 비용이 낮은 계층은 실험을 허용한다.
- trace와 eval은 첫 사용자 전부터 붙인다.
관련 문서
- agentic-ai-frameworks-tips-2026 — 에이전트 프레임워크 선택 기준
- agentic-ai-hitchhikers-guide — 에이전틱 AI 전체 스택 참고서
- llm-observability-tips-tools — LLM 앱 관찰성 도구 선택
- rag-evaluation-tips-frameworks — RAG 평가 프레임워크 선택
참고 자료
- The Open Source Agent Toolkit in 2026 — O’Reilly Radar (2026-07-14)