멀티 에이전트 스웜을 코드가 아닌 YAML 파일로 구축하는 프레임워크를 만들었습니다.
I built a framework where multi-agent swarms are YAML files, not code.
핵심 요약
복잡한 LangGraph 상태 그래프를 YAML 설정만으로 관리할 수 있게 해주는 엔터프라이즈용 멀티 에이전트 프레임워크 SwarmKit을 소개합니다.
- YAML 기반 설정 — 복잡한 Python 코드 수정 없이 YAML 파일만으로 에이전트 토폴로지를 변경함.
- 에이전트 행동 제어 — 프롬프트 지시보다 도구 이름과 가용성을 통해 에이전트의 행동을 정밀하게 제어함.
- 실무적 최적화 — 도구 결과 요약, 대화 기록 압축, 결과 캐싱을 통해 토큰 낭비와 환각 현상을 방지함.
- 비용 효율성 — 에이전트별로 최적화된 모델을 개별 설정하여 전체 운영 비용을 절감함.
저는 수천 개의 문서, 수십 개의 API, 설정 덤프, 그리고 여러 시스템에 흩어진 프로젝트 코드를 다루는 엔터프라이즈 프로젝트에서 일하고 있습니다. 작년에 이 모든 것을 이해하기 위해 멀티 에이전트 설정이 필요했는데, 누가 무엇을 할지 변경하고 싶을 때마다(에이전트 추가, 모델 교체, 새로운 도구 제공 등) 매번 Python으로 돌아가 LangGraph 상태 그래프를 다시 작성해야 하는 동일한 문제에 직면했습니다.
그래서 저는 SwarmKit을 만들었습니다. 아이디어는 정말 간단합니다. 에이전트 토폴로지를 아래와 같은 YAML 파일로 정의하는 것입니다:
agents:
root:
role: root
model: { provider: openrouter, name: meta-llama/llama-3.3-70b-instruct }
children:
- id: researcher
role: worker
archetype: domain-researcher
- id: analyst
role: worker
archetype: code-analyst
런타임은 이를 LangGraph 상태 그래프로 컴파일합니다. 따라서 YAML을 변경하면 그래프도 변경됩니다. Python을 건드릴 필요가 없습니다.
실제로 어떻게 작동하는가
저는 이를 실제 엔터프라이즈 프로젝트에서 실행하고 있습니다. 이 작업 공간에는 5개의 서로 다른 에이전트 토폴로지, 21개의 기술, 9개의 MCP 도구 서버(문서용 ChromaDB, 설정 파서, API 문서, Jira, Confluence, 코드 검색, 비전 기능이 있는 PDF 리더 등)가 있습니다. 주로 콘텐츠 수집 및 연구용입니다. 프로젝트는 아직 코드를 작성할 만큼 성숙하지 않았습니다.
누군가 "우리 프로젝트에서 기능 X는 어떻게 작동하나요?"라고 물으면, 루트 에이전트는 질문을 연구원과 코드 분석가 모두에게 보냅니다. 연구원은 프로젝트 문서, 설정, API 참조, Jira 티켓을 검색합니다. 분석가는 소스 코드를 grep하고 관련 파일에서 특정 줄을 읽습니다. 둘 다 병렬로 실행됩니다. 루트는 두 관점을 하나의 종합된 답변으로 결합합니다.
하나의 질문, 두 명의 전문가, 병합된 결과. 토폴로지 YAML은 누가 누구에게 위임할 수 있는지 정의합니다. 런타임은 나머지를 처리합니다.


