coredot.today
기술 탐색으로 돌아가기
프롬프트 최적화실험

Combee

에이전트 수십 대의 회고를 플레이북 하나로 잃지 않고 모은다 — 병렬 프롬프트 학습의 '컨텍스트 과부하'를 푸는 확장 층

직접 해보기 5라이브 실행
종류
논문
사실 확인
2026.10.24

TRY IT

직접 해보기

OVERVIEW

개요

무엇인가

Combee는 ACE·GEPA 같은 프롬프트 학습을 병렬로 돌리기 위한 확장 층입니다. UC 버클리·스탠퍼드 연구진(ACE·GEPA 제1저자, 이온 스토이카, 조지프 곤잘레스 등)이 2026년 4월 arXiv에 공개했고 COLM 2026에 실렸습니다. 새 학습법이 아니라, 에이전트가 일하고(실행) 돌아보는(회고) 방식은 그대로 두고 회고를 플레이북에 모으는 단계 하나만 바꿉니다.

출발점은 논문이 '컨텍스트 과부하(context overload)'라고 이름 붙인 현상입니다. 에이전트 여러 대의 회고를 큐레이터 언어 모델 한 번에 몰아 넣으면, 큐레이터는 구체적인 요령을 버리고 일반론만 남깁니다. 재무 계산 과제(Formula)에서 회고를 하나씩 반영한 플레이북은 항목이 264개, 정답률 87.0%였는데, 회고 100개를 한 번에 반영한 플레이북은 항목 21개, 정답률 72.5%였습니다. "1.335는 1.34로 올린다" 같은 항목이 "최종 결과에서만 반올림하라"로 뭉개진 것입니다. 모든 회고가 컨텍스트 창(12만 8천 토큰) 안에 들어간 상태에서도 일어났으니, 잘린 것이 아니라 모델이 스스로 버린 것입니다.

어떻게 동작하나

구조의 이름은 MapReduce에서 따온 Map-Shuffle-Reduce입니다.

1. Map
에이전트 n대가 같은 플레이북을 들고 각자 과제를 풀고 회고를 쓴다. 원래 병렬로 잘 되던 부분이다.
2. 증강 셔플
회고를 각각 p번(기본 2번) 복제해 섞은 뒤 묶음으로 나눈다. 함께 있어야 뜻이 통하는 회고 짝이 한 번의 운 나쁜 분할로 갈라질 위험을 줄인다.
3. 병렬 스캔 집계
회고를 k = ⌊√n⌋개 묶음으로 나눠 묶음마다 큐레이터가 회고 원문을 읽고 갱신을 만든다(1단). 그 k개의 갱신을 한 번 더 합친다(2단). 회고 100개면 어떤 호출도 10개 남짓만 읽는다.
4. 배치 컨트롤러
후보 배치 크기로 한 번씩 돌려 지연을 재고 거듭제곱 곡선을 맞춘 뒤, 배치를 늘려도 시간이 거의 줄지 않는 지점(가장 가파른 기울기의 1.6%)에서 멈춘다.

√n은 두 단계가 비슷한 양을 읽게 하는 균형점입니다. 묶음을 크게 하면 1단이, 잘게 하면 2단 합치기가 과부하에 걸립니다. 복제는 2배가 기본인데, 논문 표 3에서 1→2배는 네 설정 모두 크게 올랐지만 3·4배는 같은 회고 사본이 자리를 차지해 대부분 제자리이거나 떨어졌습니다.

빠른 시작

GEPA에는 ComBEEReflectionLM으로 들어가 있습니다(2026-08-01 병합). 2026-10-24 기준 PyPI의 최신판 gepa 0.1.4(2026-07-15)에는 이 클래스가 없으므로 GitHub 판을 설치합니다.

bash
pip install git+https://github.com/gepa-ai/gepa.git
python
import gepa
from gepa.proposer.reflective_mutation.combee import ComBEEReflectionLM

result = gepa.optimize(
    seed_candidate={"system_prompt": "You are a helpful assistant."},
    trainset=trainset,
    valset=valset,
    task_lm="openai/gpt-4.1-mini",
    reflection_strategy=ComBEEReflectionLM("openai/gpt-5.1"),
    reflection_minibatch_size=40,  # n=40이면 k=6개 묶음을 자동으로 만든다
    max_metric_calls=600,
)

GEPA의 reflection_minibatch_size 기본값은 3입니다. 그대로 두면 ⌊√3⌋ = 1이라 Combee가 일반 회고로 돌아가므로, 공식 안내대로 20 이상으로 올립니다. ACE를 쓴다면 저장소의 ace/ace_batch.py가 배치 크기·미니배치·증강 셔플을 지원합니다. 직접 만든 파이프라인이라면 핵심은 "회고를 2배 복제해 섞고, √n개 묶음으로 원문을 나눠 읽힌 뒤, 결과를 한 번 더 합친다"는 수십 줄입니다.

언제 쓰고, 언제 피하나

상황Combee가 잘 맞는다다른 방법을 먼저 본다
순차 학습 효과배치 1~5로 돌린 플레이북이 실제로 성능을 올린다순차로도 안 오른다 — 병렬은 의미가 없다
궤적 양하루 궤적 수 × 궤적당 회고·갱신 시간이 24시간을 넘는다궤적이 수십 개라 순차로 기다릴 만하다
과부하 징후배치를 키우자 플레이북 항목 수와 '도움 됨' 카운터가 줄었다배치를 키워도 플레이북이 그대로다
집계 방식회고 원문을 나눠 읽힐 수 있다회고를 먼저 요약해서 넘긴다 — 논문에서 기본 모델 수준까지 떨어졌다

결과를 읽을 때는 비교 대상을 확인해야 합니다. AppWorld에서 배치 40의 Combee는 평균 65.8점으로 같은 배치의 단순 병렬(55.7점)보다 10점 높고 순차 ACE(86분)보다 12배 빨랐지만, 실제 경쟁자인 배치 10(65.4점, 19분)과 비교하면 차이는 0.4점, 속도는 약 2.7배입니다. 초록의 '최대 17배'는 Terminal-Bench 2.0에서 순차 42.4분 → 2.4분이고, 그때 정확도는 37.9%에서 35.6%로 2.3포인트 내려갔습니다. '최고 품질에 근접하면서 순차 대비 최대 17배'가 정확한 표현입니다.

한계와 주의

  • 규모의 역설. 동기는 '하루 수천 개의 궤적'인데 에이전트 실험은 AppWorld 90개, Terminal-Bench 60개였다. 논문도 산업 규모는 시험하지 않았다고 인정한다.
  • 두꺼운 플레이북은 추론 비용이다. AppWorld에서 Combee 플레이북은 6,887토큰으로 순차 학습(1,578토큰)의 4배가 넘는다. 학습 비용은 비슷해도 매 호출마다 읽는 비용이 는다.
  • 트리 집계의 약점. 드문 신호는 두 단계를 거치며 희석될 수 있고, 서로 다른 묶음으로 갈라진 모순은 맥락 없이 마지막 합치기로 넘어가며, 순서 의존적 통찰은 셔플로도 보장되지 않는다(부록 B).
  • GEPA 통합판에는 동적 배치 컨트롤러가 빠져 있다. 병렬 스캔과 증강 셔플만 들어 있다.
  • 한 번 돌린 결과가 많다. 같은 설정의 숫자가 표마다 0.01~0.03씩 다르니 1~2포인트 차이는 잡음으로 읽는다. 주 실험 모델은 딥시크 V3.1과 GPT-OSS 120B뿐이다.
  • 배운 것이 쌓이느냐는 별개 문제다. Combee는 '빨리 모으는 법'을 풀었을 뿐, 최적화된 프롬프트가 새 과제로 전이되는지는 밑바탕 방법의 숙제로 남는다.
  • 판본에 따라 표현이 다르다. v1 초록은 "품질 저하 없이", 2026년 9월 v2는 "순차 학습 품질의 대부분을 보존하며"로 고쳤다.

LIVE

라이브 실행

반성으로 프롬프트 고치기

GEPA·Combee 계열이 쓰는 '점수 대신 첨삭' 한 걸음을 재현합니다. 프롬프트와 실패 사례를 주면 모델이 무엇이 문제였는지 적고 고친 프롬프트를 내놓습니다.

콘솔에서 키 발급받기

키는 이 브라우저에서 core.today 게이트웨이로만 전송되고 코어닷투데이 서버를 거치지 않습니다. 실행 비용은 키 주인의 크레딧에서 차감됩니다.

예시 입력
모델에게 보내는 시스템 프롬프트 보기
너는 프롬프트 최적화기의 반성(reflection) 단계다.
사용자가 [프롬프트]와 [실패 사례]를 준다. 실패 사례가 없으면 프롬프트만 보고 실패할 만한 입력을 스스로 하나 상정한다.
출력 형식(한국어, 마크다운):
## 진단 — 실패 원인 2~4개, 각 한 줄
## 고친 프롬프트 — 코드블록 하나
## 바꾼 점 — 원래와 무엇이 달라졌는지 2~3줄
프롬프트를 장황하게 늘리지 말고, 실패를 막는 규칙만 더한다.

118 / 1,500자 · 모델 gpt-5.6-luna · 출력 최대 900 토큰

DEEP DIVE

더 깊이 읽기