집에서 쓰는 서브 에이전트
We have sub-agents at home
핵심 요약
10GB VRAM 환경에서도 원활하게 돌아가는 로컬 서브 에이전트 구현 및 공유.
- VRAM 제약 해결 — 10GB VRAM 환경에서도 효율적으로 작동하는 로컬 서브 에이전트 구현함.
- llama.cpp 최적화 — 단일 슬롯 및 컨텍스트 재처리 없는 방식으로 성능을 극대화함.
- 코드 공유 및 협업 — pi-subagent를 포크하여 로컬 환경에 맞게 최적화한 저장소를 공개함.
- 컨텍스트 관리 — MTP와 Apex Qwen 모델을 활용해 긴 컨텍스트에서도 안정적인 성능을 확보함.
회사에서는 GPT-5.4와 Sonnet을 마음껏 쓸 수 있어서, 리포지토리에 서브 에이전트를 여러 개 띄워 작업을 분담시키는 방식에 익숙해져 있었음.
집에서는 VRAM이 부족한 상황이라 로컬 모델을 돌리며 즐기는 편임. 그런데 시중에 나온 거의 모든 서브 에이전트 확장 기능이나 구현체들은 10GB VRAM과 (이미 양자화된) KV 캐시용 슬롯 하나라는 제약을 전혀 고려하지 않음.
나도 개발자로 일하고 있어서, 기존 서브 에이전트 리포지토리를 포크해서 qwen3.6-35b-a3b 모델로 pi coding agent를 돌릴 수 있게 만들었음.
이 내용은 다음 조건에 해당하는 사람들에게만 유용할 거임:
- pi coding agent를 하네스로 사용하는 경우
- llama.cpp 서버를 통해 1개의 슬롯으로 한 번에 하나의 LLM만 실행 가능한 경우
- 서브 에이전트 작업이 끝난 후 프롬프트를 완전히 재처리하고 싶지 않은 경우
리포지토리는 여기에 있으니 마음껏 가져다 쓰거나 포크해도 됨. 다른 사람들은 VRAM이 제한된 로컬 환경에서 서브 에이전트를 어떻게 다루고 있는지 궁금함. 서브 에이전트를 이전 컨텍스트 없이 생성하고, --slot-save-path와 slots 엔드포인트를 통해 메인 컨텍스트를 저장 및 관리하는 기능도 추가할 계획임. 근데 거기서 생성되는 .bin 파일들이 꽤 덩치가 크긴 함 ㅋㅋ
마지막으로, 최근 llama.cpp 메인 브랜치의 MTP 기능을 아주 잘 쓰고 있는데 Apex Qwen 변형 모델에서 꽤 괜찮은 성능이 나옴. q_8 kv로 175-200k 컨텍스트를 돌릴 수 있고, 드래프트 적중률에 따라 200-300 pp와 25-40 tps 정도가 나옴.

