핵심 주장. 에이전트 성능 개선의 큰 몫은 system prompt 재작성이 아니라
도구 자체를 고치는 것 — 정확한 파라미터 설명, 반환 규약 문서화, 백엔드 신뢰성, 통합 설정 — 에서 나온다.
우리 실측(§3)과 업계·논문(§2)이 같은 방향을 가리킨다. 그래서 optimizer의 개입 표면에
tool-doc / tool-schema / tool-backend 레버를 프롬프트 레버와 동급으로 넣는다.
×3
EXP-153: 되는 검색도구 추가 → pass@1 0.1→0.3
100→0%
read_attached_file 도구 에러율 (파서 교체)
+67%
EXP-124: validator 도구 → field_accuracy
90→57%
pass^k 붕괴 (k=8, τ-bench) — 다중턴 도구호출
40
experiments 원장 실험 수
1 근거 — Tool-calling은 어렵고, 도구 설명/스키마가 성능을 좌우한다
#
주장
등급
출처 · 핵심 수치
E1
도구 설명이 도구 성능의 "가장 중요한 단일 요인". 설명 정밀화만으로 SWE-bench Verified SOTA·에러율 급감. 권고: 도구당 3–4문장+, "새 팀원 온보딩하듯".
원장 자신의 결론 (EXP-64 lesson, verbatim): "세션 전체 패턴 확정: promoted는 전부 도구/입력 수정, rejected는 전부 프롬프트/구조 추가. 좋은 베이스라인엔 surgical 데이터/도구 레버가 프롬프트 튜닝보다 신뢰롭다."
정밀한 축은 "수정(fix)/제거 vs 추가(add)" — 도구 구현·입력 주입·형식/종료 배선은 promote, 프롬프트·에이전트·토폴로지·제약 추가는 reject.
✅ PROMOTED — 도구·입력·배선 수정T·W
레버표면: T 도구W 배선
EXP
개입(1변수)
표면
메트릭 이동
40
첨부 절대경로 주입
T
pass@1 0.42→0.48
42
멀티포맷 파서 + python_exec
T
read 에러 87→15%, exec 100→0%
64
status-aware 검색(프롬프트 불변)
T
pass@1 0.80→0.87, 지연 −38%
65
web_search grounding
T
grounded 0→100%
66
과검색 제거(1라운드)
W
토큰 −82%, grounded 유지
124
validator 정규화 도구
T
field_acc 0.75→0.906, pass@1 +67%
144
형식 규율 1단락
W
format_invalid 1.0→0.0
147
종료조건 1개
W
loop_rate 1.0→0.0, 토큰 반감
153
web_search(firecrawl)
T
grounded 0→1.0, pass@1 ×3
159
출력폭주 방지(길이·형식)
W
OCR 폭주 17→8%, pass@1 0.83→0.92
173
검색·작성 역할 분리
W
format_valid 0→1.0
❌ REJECTED — 프롬프트·구조·제약 추가P·X
레버표면: P 프롬프트X 토폴로지
EXP
개입(1변수)
표면
메트릭 이동
45
max_messages 캡 축소
W
토큰−38%이나 fmt_invalid 0→0.21
60
RoundRobin 토폴로지
X
pass@1 97%→7% 붕괴
63
decoy 방지 프롬프트 강화
P
pass@1 80%→27%
67
synthesizer '전부 인용' 강제
P
grounded 100→67%, 토큰 +61%
134
value-linking 프로빙 강제
P
exec_acc 0.9→0.8, 토큰 3×
154
전담 retriever 분업 추가
X
pass@1 0.3→0.0, 깊이 4.3→1.3
169
검색검증 critic 추가
P
토큰 +114%, p95 573→1315s
221
SOURCES 인용 강제
P
entail F1 flat, EM −3.3pp
관통 결론. promoted 레버는 압도적으로 T(도구)·W(배선), rejected는 압도적으로 P(프롬프트)·X(토폴로지) 추가다.
→ Optimizer는 신호를 받으면 T·W 수정 레버부터 탐색하고, P·X 추가는 정확도 가드와 함께 마지막에.
rejected의 절반은 "메트릭이 즉시 붕괴를 포착해 출시를 막은" 사례 — 하니스의 가치가 이 매핑에 있다.