집에서도 서브 에이전트(sub-agents)를 사용합니다
요약
VRAM이 제한된 로컬 환경에서 서브 에이전트(sub-agents)를 효율적으로 활용하기 위한 구현 방안을 소개합니다. llama.cpp와 pi 코딩 에이전트를 활용하여 단일 KV 캐시 슬롯 제약을 극복하고, 컨텍스트를 관리하며 서브 에이전트 작업을 수행하는 방법을 다룹니다.
핵심 포인트
- VRAM 부족 문제를 해결하기 위해 단일 KV 캐시 슬롯 환경에 최적화된 서브 에이전트 구조 제안
- llama.cpp 서버와 pi 코딩 에이전트를 하네스로 사용하여 로컬 LLM 기반의 에이전트 팀 구성
- MTP(Multi-Token Prediction) 기술을 활용한 Qwen 모델의 높은 추론 성능(25-40 tps) 확인
- 메인 컨텍스트 저장 및 관리를 위한 슬롯 엔드포인트 활용 계획
직장에서는 gpt 5.4와 sonnet에 제한 없이 접근할 수 있어서, 리포지토리(repo)를 대상으로 작업을 수행하거나 업무를 분담하기 위해 서브 에이전트(sub-agents)를 생성하는 것에 꽤 익숙합니다.
집에서는 VRAM이 부족해서 개인적인 즐거움을 위해 모델을 로컬(locally)에서 실행하곤 합니다. 거의 모든 서브 에이전트(sub-agent) 확장 기능이나 구현체들은 10GB의 VRAM과 단일 KV 캐시(KV cache) 슬롯(이미 양자화된 상태)이라는 제약 사항을 전혀 고려하지 않습니다.
저는 이미 개발자로 일하고 있기 때문에, qwen3.6-35b-a3b를 활용하여 기존 서브 에이전트(sub-agent) 리포지토리를 pi 코딩 에이전트(pi coding agent)용으로 일부 바이브 코딩(vibe-coded)된 포크(fork) 버전으로 팀을 구성했습니다.
이것은 오직 다음과 같은 경우에만 유효합니다:
- pi 코딩 에이전트(pi coding agent)를 하네스(harness)로 사용하는 경우
- llama.cpp 서버를 통해 단일 슬롯(1 slot)으로 한 번에 하나의 LLM만 실행할 수 있는 경우
- 서브 에이전트(sub-agent) 작업이 끝난 후 프롬프트를 완전히 다시 처리하지 않고 서브 에이전트(sub-agents)를 사용하고 싶은 경우
리포지토리(Repo)는 여기에 있습니다. 자유롭게 사용하거나 포크(fork)하셔도 상관없습니다. 또한 이곳의 다른 분들은 순수하게 로컬(local) 환경이자 VRAM이 제한된 설정에서 서브 에이전트(sub-agents) 문제를 어떻게 해결하셨는지도 궁금합니다. 이전 컨텍스트 없이 서브 에이전트(sub-agents)를 생성하는 기능과, --slot-save-path 및 slots 엔드포인트를 통해 메인 컨텍스트(main context)를 저장하고 관리하는 기능을 추가할 계획이었습니다. 하지만 그렇게 생성되는 .bin 파일들이 꽤 크네요(lol).
마지막으로, 저는 메인 llama.cpp 브랜치의 MTP를 정말 즐겁게 사용하고 있으며, Apex Qwen 변형 모델로부터 상당히 안정적인 성능을 얻고 있습니다. q_8 kv를 사용하여 175-200k 컨텍스트(context)로 실행할 수 있습니다. 초안 적중률(draft hit rates)에 따라 200-300 pp 및 25-40 tps를 기록하고 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Reddit AI Engineering의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기