10. Tool-use Benchmarks — BFCL · ToolBench · ComplexFuncBench
1. 정의
섹션 제목: “1. 정의”Tool-use 벤치마크는 에이전트가 정확한 함수 를 정확한 인자 로 호출하는지 를 좁고 깊게 측정한다. 멀티턴이나 정책 같은 추가 요인을 덜어내고, 함수 호출 자체의 정확성에만 집중.
대표 셋:
- BFCL (Berkeley Function Calling Leaderboard) — 가장 널리 인용되는 함수호출 벤치. v1 → v2 → v3 (멀티턴) 진화 중.
- ToolBench (Qin et al., 2023) — 16,000+ 실제 RESTful API 사용. 도메인 폭 최대.
- ComplexFuncBench — 멀티스텝 함수호출, long-context 함수호출 등 난이도 위주.
- API-Bank, Gorilla, MetaTool 등 (이전 세대)
이 카테고리는 본 실험의 H3 가설(“OpenClaw 셋업이 비개발자 단독으로 가능한가”) 와 OpenClaw 통합 강점 주장 의 직접 검증 도구다.
2. 핵심 메커니즘
섹션 제목: “2. 핵심 메커니즘”2.1 BFCL 의 평가 축
섹션 제목: “2.1 BFCL 의 평가 축”BFCL은 카테고리별 정확도를 본다. 한 모델이 모든 카테고리에 강한 건 드물다.
| 카테고리 | 측정 |
|---|---|
| Simple | 단일 함수, 단순 인자 |
| Multiple | 후보 N개 함수 중 적절한 하나 선택 |
| Parallel | 한 응답에 여러 함수를 동시에 호출 |
| Parallel Multiple | 위 둘 결합 |
| Relevance | 모든 함수가 부적절할 때 호출하지 않는 능력 |
| Java/JavaScript | 다른 언어 시그니처 |
| Multi-turn (v3) | 대화 흐름 속 함수 호출 |
각 카테고리 100–500 샘플. 채점은 함수 이름 + 인자 exact 또는 semantic 매칭.
Relevance 카테고리가 의외의 강점: “함수 호출이 부적절하면 호출하지 않는다”는 능력. 환각으로 없는 함수 를 호출하는 경우를 잡음.
2.2 ToolBench — 진짜 API의 폭
섹션 제목: “2.2 ToolBench — 진짜 API의 폭”ToolBench는 RapidAPI에서 16,000+ 실제 REST 엔드포인트를 끌어옴. 광범위한 도메인 (금융, 날씨, 음악, 게임, …). 평가 데이터셋:
- G1: 단일 도구, 단일 호출
- G2: 단일 도구, 다중 호출 (intra-tool)
- G3: 다중 도구, 다중 호출 (inter-tool)
채점은 최종 답변 정확도 로 변환 (LLM-as-judge로 확인). 즉 ToolBench는 outcome 평가이지 함수 시그니처 매칭이 아님.
함정: RapidAPI 엔드포인트가 실제로 살아있어야 평가 가능. 시간 지나면 죽음. 재현성 약함.
2.3 ComplexFuncBench
섹션 제목: “2.3 ComplexFuncBench”BFCL 의 난이도 강화 변종. 한 태스크에 5–10개 함수 호출이 연쇄 되는 시나리오. Long-context (수천 토큰의 함수 schema) + multi-step + 인자에 이전 호출 결과 의존 (e.g., A의 결과 ID를 B에 넣음).
이 벤치가 보여주는 점: BFCL에서 95% 받는 모델이 ComplexFuncBench에선 50% 내외. 즉 연쇄 가 함수호출의 진짜 난점.
2.4 Schema-quality 의 영향
섹션 제목: “2.4 Schema-quality 의 영향”함수호출 평가에서 자주 망각되는 변수: 함수 schema 자체의 품질.
같은 모델이라도:
- description 명확 → 정확도 90%+
- description 모호 → 정확도 50%
스키마가 잘 적힐수록 모델 차이가 줄어든다. 따라서 BFCL 점수는 스키마가 표준화된 환경의 점수. 우리 같은 현장 도구 에서는 스키마 품질 자체가 변수.
3. 강점과 약점
섹션 제목: “3. 강점과 약점”| 강점 | 약점 |
|---|---|
| 좁고 깊은 측정 — 분리 가능 | 좁음 — 비즈니스 가치 와 거리 |
| 자동 채점 — 비용 低 | 함수 schema 품질에 의존 |
| 카테고리 분해 → 모델 프로파일 | 환경 의존 (RapidAPI 죽음 등) |
| Relevance 측정으로 환각 방지 검증 | Multi-turn 약 (v3에서 보강 중) |
4. 대안과의 비교
섹션 제목: “4. 대안과의 비교”| 벤치 | 측정 | 장점 |
|---|---|---|
| BFCL | 함수호출 정확도 (구문 + 의미) | 표준화, 카테고리 분해 |
| ToolBench | 다양한 진짜 API 사용 | 도메인 폭 |
| ComplexFuncBench | 함수호출 연쇄 | 진짜 어려움 |
| τ-bench (5장) | tool + user + policy | 멀티턴 + 정책 |
| AgentBench (6장) | 다양 환경 | 일반론 |
핵심 구별: BFCL은 함수호출 자체, τ-bench는 함수호출 + 대화 + 정책. 한 개 함수호출이 안 되면 이후도 안 됨 → BFCL이 기초 평가, τ-bench가 통합 평가.
5. 우리 실험에의 적용
섹션 제목: “5. 우리 실험에의 적용”본 실험의 OpenClaw 강점 주장은 “MCP/플러그인으로 외부 통합”. 즉 함수호출 정확성이 OpenClaw의 핵심 가치 명제다. BFCL 식 평가가 가장 직접 매핑.
5.1 자체 BFCL 미니 — 도구별 함수호출 정확도
섹션 제목: “5.1 자체 BFCL 미니 — 도구별 함수호출 정확도”T1–T10 태스크 실행 시 사용하는 외부 함수/툴 호출에 대해 다음을 자동 추출 (hook 로그 분석):
태스크: T1도구: OpenClaw호출 시퀀스: [1] discord_post(channel_id="...", message="...") [2] slack_post(channel_id="...", message="...") [3] kakao_send(room="...", text="...")채점 항목:
| 차원 | 측정 |
|---|---|
| 함수 선택 정확도 | 의도된 채널마다 올바른 도구 호출했나 (Discord 공지인데 Slack 호출 X) |
| 인자 완전성 | 필수 인자 누락 없나 |
| 인자 정확도 | channel_id/room이 가짜 워크스페이스의 진짜 ID인가 (환각 X) |
| Relevance | 불필요한 추가 함수 호출 X |
| Parallel 활용 | 3채널 송신을 병렬 로 했나, 직렬로 했나 |
이 5 차원 → fine-grained Y/N 체크리스트 형태로 4장 rubric에 추가 가능.
5.2 H3 가설과의 직결
섹션 제목: “5.2 H3 가설과의 직결”H3: “비개발자에게는 셋업 비용 자체가 진입장벽 — OpenClaw 셋업을 누가 해주냐에 따라 결과가 갈림.”
이걸 BFCL 어휘로 번역:
- 셋업이 잘 된 OpenClaw → 함수 schema가 깔끔 → 함수호출 정확도 高
- 셋업이 부실한 OpenClaw → 함수 schema 모호 → 정확도 低
따라서 함수호출 정확도 측정 자체가 셋업 품질 의 proxy. 민지가 셋업한 결과 (혼자/도움 받음/실패) 와 함수호출 정확도 점수의 상관을 보면 H3 검증.
5.3 Relevance 측정의 가치
섹션 제목: “5.3 Relevance 측정의 가치”OpenClaw의 과한 도구 노출 위험: 너무 많은 MCP 등록 → 모델이 부적절한 도구 를 호출. Relevance 카테고리 측정으로 잡힌다.
trajectory 로그에서 그 태스크와 무관한 도구 호출 횟수를 카운트. 5건 이상이면 셋업이 너무 어수선.
5.4 결정 — fine-grained 항목으로 흡수
섹션 제목: “5.4 결정 — fine-grained 항목으로 흡수”- 별도 BFCL 벤치 도입 X
- 위 5 차원을 정형 태스크(T1, T2)의 fine-grained Y/N 체크리스트에 추가
- relevance 위반 카운트는 trajectory 분석 스크립트에서 자동 산출
6. 더 읽을거리
섹션 제목: “6. 더 읽을거리”- Berkeley Function Calling Leaderboard (BFCL) 공식 사이트 — 카테고리별 점수·v1→v3 진화·모델 비교 leaderboard
- Qin et al., “ToolLLM (ToolBench)” (ICLR 2024) — 16,000+ 진짜 RESTful API 사용 능력 평가 원 논문
- “ComplexFuncBench: Exploring Multi-Step and Constrained Function Calling” — 함수호출 연쇄·long-context의 난이도 강화 벤치
- Patil et al., “Gorilla: Large Language Model Connected with Massive APIs” (2023) — 대규모 API 학습 LLM 시초 + BFCL의 모태
- Anthropic, “Tool Use” 공식 문서 — 스키마 작성 best practices, BFCL 점수에 직결되는 description 가이드
다음 장 미리보기
섹션 제목: “다음 장 미리보기”벤치마크 카탈로그를 마쳤다. 이제 현장에서 어떤 도구로 평가를 굴리나 로. LangSmith / Braintrust / Langfuse / Phoenix / Galileo — 5개 산업 플랫폼 비교. 11장.
이 장에서 확실히 알아야 하는 것
섹션 제목: “이 장에서 확실히 알아야 하는 것”- BFCL의 카테고리 (Simple / Multiple / Parallel / Relevance / Multi-turn) 5개를 외운다.
- Relevance 카테고리가 환각 호출 을 어떻게 잡는지 안다.
- BFCL 점수가 스키마 품질에 의존 함을 인식한다.
- ComplexFuncBench가 BFCL과 다른 점(연쇄·long context)을 안다.
- H3 가설과 함수호출 정확도의 매핑을 한 줄로 말할 수 있다.