Loading repository data…
Loading repository data…
gyunggyung / repository
High-performance On-Device MoA (Mixture of Agents) Engine in C++. Optimized for CPU inference with RadixCache & PagedAttention. (Tiny-MoA Native)
Agent.cpp는 Tiny-MoA 프로젝트를 위해 특별히 설계된 CPU 전용 고성능 C++ 추론 엔진입니다.
유명한 llama.cpp를 기반(Clone)으로 개발되었으나, 단순한 복제가 아닙니다. 다중 에이전트(Mixture of Agents, MoA) 환경에서 필수적인 반복적 추론과 문맥 전환 속도를 극대화하기 위해 핵심 아키텍처를 재설계했습니다.
llama.cpp는 훌륭한 범용 엔진이지만, MoA와 같이 여러 모델이 대화하며 수십 번의 Context Switching이 일어나는 환경에서는 비효율적입니다. Agent.cpp는 이 병목을 해결하기 위해 태어났습니다.
| 기능 | 표준 llama.cpp | Agent.cpp (Tiny-MoA Engine) |
|---|---|---|
| 타겟 용도 | 범용 LLM 추론 | Tiny-MoA 전용 다중 에이전트 오케스트레이션 |
| 캐시 관리 | 선형적 캐시 (단일 대화 최적화) | RadixCache (트리 기반, 다중 분기 대화 즉시 복원) |
| 메모리 기술 | 표준 KV Cache | PagedAttention & RadixAttention (메모리 파편화 0%) |
| 오케스트레이션 | 외부 Python 스크립트 필요 | C++ 네이티브 내장 (Brain/Specialist 자동 라우팅) |
| 성능 (TTFT) | 매 턴마다 프롬프트 재연산 | 캐시 히트 시 즉시 생성 (약 1.8배~수십 배 가속) |
이 엔진은 단순한 래퍼(Wrapper)가 아닙니다. 최신 LLM 서빙 기술을 C++로 직접 구현하여 탑재했습니다.
Tiny-MoA 모델 파일 (.gguf)mkdir build
cd build
cmake .. -G "Visual Studio 17 2022" -A x64
cmake --build . --config Release --target agent
llama.cpp와 달리 복잡한 설정 없이 -m (모델)과 -p (프롬프트)만 주면 내부적으로 최적화된 MoA 파이프라인이 동작합니다.
./build/bin/Release/agent.exe -m path/to/LFM2.5-1.2B.gguf -p "Human: 양자 역학을 50단어로 설명해줘. Assistant:"
현재 Agent.cpp는 Tiny-MoA의 핵심 코어를 담당하고 있습니다. 앞으로 다음과 같은 기능들이 추가될 예정입니다.
Agent.cpp Project 기여를 원하시거나 문의사항이 있으시면 Issue를 등록해주세요.