Claude Code μμ€ν ν둬ννΈκ° λ€λ₯Έ λͺ¨λΈ μ±λ₯μ μ¬λ¦΄ μ μμκΉ?
2026λ 3μ Claude Code npm μμ€λ§΅ μ μΆλ‘ 곡κ°λ μμ€ν ν둬ννΈ(νλμ€)λ₯Ό λ°λλΌ Qwen3.5-27Bμ μ μ©νλλ μ½λ νμ§μ΄ +26.5% ν₯μλμ΅λλ€. μ΄ λ ν¬λ κ·Έ μ€νμ λꡬλ μ¬ννκ³ , μκΈ° λͺ¨λΈ/ν둬ννΈλ‘ νμ₯ν μ μκ² λ§λ λ²€μΉλ§ν¬ νλ μμν¬μ λλ€.
6κ° μ€ν, μ΄ μλ°± νμ LLM-as-judge νκ°λ₯Ό ν΅ν΄ νμΈν κ²°κ³Όμ λλ€.
| λ°κ²¬ | μμΉ |
|---|---|
| νλμ€λ₯Ό μ μ©νλ©΄ λ°λλΌ Qwen μ±λ₯μ΄ μ€λ₯Έλ€ | 6.83 β 8.64 (+26.5%) |
| Distillation(νμΈνλ) λλ¬Έμ΄ μλλ€ | λ°λλΌ β Distilled (μ°¨μ΄ 0.11) |
| νλμ€ νμλ μ±λ₯μ μν₯μ μ€λ€ | μ μ½λ§(8.97) > MDμ‘°κ°ν(8.5) > μ°μν μ€νΈ(8.33) |
| λ κΈΈλ€κ³ λ μ’μ 건 μλλ€ | 21K ν ν° < 500 ν ν° (β11%) |
| μ½λ©μμλ Claudeλ₯Ό λμ΄μκΈ°λ νλ€ | λ°λλΌ 27B + μ μ½λ§: 9.83 vs Claude Opus: 9.14 |
ν΅μ¬ μΈμ¬μ΄νΈ: Claude Codeμ κ²½μλ ₯μ λͺ¨λΈ ν¬κΈ°κ° μλλΌ "νμ§ λ§λΌ"λ μ μ½ 12μ€μ μλ€.
git clone <repo-url>
cd harness-bench
pip install -r requirements.txtcp .env.example .env.env νμΌμ μ΄μ΄μ ν€λ₯Ό μ
λ ₯νμΈμ:
# Alibaba Cloud DashScope (Qwen λͺ¨λΈ μ¬μ© μ νμ)
# λ°κΈ: https://dashscope.console.aliyun.com/apiKey
DASHSCOPE_API_KEY=sk-μ¬κΈ°μμ
λ ₯
# OpenAI (GPT λͺ¨λΈ μ¬μ© μ)
OPENAI_API_KEY=sk-μ¬κΈ°μμ
λ ₯npm install -g @anthropic-ai/claude-code
claude # λ‘κ·ΈμΈjudgeλ κ° μλ΅μ 6κ° κΈ°μ€μΌλ‘ μ±μ νλ μν μ λλ€. Claude Code CLIκ° μμΌλ©΄
--no-judgeμ΅μ μΌλ‘ μλ΅λ§ μμ§ν μ μμ΄μ.
python dashboard.pyλΈλΌμ°μ μμ http://localhost:5000 μ μ.
쑰건·과μ λ₯Ό 체ν¬λ°μ€λ‘ κ³ λ₯΄κ³ μ€ν λ²νΌ νλλ©΄ λ©λλ€.
![λμ보λ ꡬμ±]
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β harness-bench [μν λ°°μ§] β
βββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββ€
β β ν: [μ€ν λ‘κ·Έ] [κ²°κ³Ό νμ€ν 리] β
β β
쑰건 μ ν β β
β β
κ³Όμ μ ν β μ€ν μ§ν μν© μ€μκ° μ€νΈλ¦¬λ° β
β λͺ¨λΈ/API μ€μ β κ³Όμ Β·μ‘°κ±΄λ³ μ μ μ¦μ νμ β
β Judge μ€μ β β
β ββββββββββββββββββββββββββββββββββββββββββ€
β [βΆ μ€ν μ€ν] β μ’
ν© μ μ λΉκ΅ λ° β
β [βΉ μ€λ¨] β β
βββββββββββββββββββ΄βββββββββββββββββββββββββββββββββββββββββ
# κΈ°λ³Έ μ 체 μ€ν
python run.py
# 쑰건 μ§μ
python run.py --conditions raw restrictions_only
# κ³Όμ μ§μ
python run.py --tasks coding_group_by coding_lru_cache
# λ€λ₯Έ λͺ¨λΈλ‘
python run.py --provider openai --model gpt-4o
python run.py --provider vllm --model Llama-3.1-8B-Instruct
# λΉ λ₯Έ νμΈ (judge μμ΄ μλ΅λ§ μμ§)
python run.py --conditions restrictions_only --tasks coding_group_by --no-judge| ν€ | μ€λͺ | ν ν° | μ½λ© μ μ |
|---|---|---|---|
raw |
μμ€ν ν둬ννΈ μμ (baseline) | 0 | 7.39 |
continuous |
μ°μ ν μ€νΈ νλμ€ (μ€ν 1~4 κΈ°λ³Έ) | ~500 | 9.0 |
fragmented |
# ν€λ 7μΉμ
β μ μΆ μλ³Έ ꡬ쑰 μ¬ν |
~480 | 9.22 |
restrictions_only |
"Don't X" κ·μΉ 12μ€λ§ | ~120 | 9.83 |
μ μλ λ°λλΌ Qwen3.5-27B + Claude Opus 4.6 judge κΈ°μ€μ λλ€.
CONDITIONS dictμ νλͺ©μ μΆκ°νλ©΄ CLIμ λμ보λμ λ°λ‘ λ°μλ©λλ€.
CONDITIONS: dict[str, dict] = {
# κΈ°μ‘΄ νλͺ©...
# λ΄ νλμ€ μΆκ°
"my_harness": {
"name": "My Custom Harness",
"system": """
# κ·μΉ
μμ²ν κ²λ§ ꡬννμΈμ.
νμ
ννΈλ docstringμ μμ²νμ§ μμΌλ©΄ μΆκ°νμ§ λ§μΈμ.
κ°κ²°νκ² λ΅νμΈμ.
""",
"description": "λ΄κ° λ§λ 컀μ€ν
νλμ€",
},
}python run.py --conditions raw my_harnessTASKS: list[dict] = [
# κΈ°μ‘΄ νλͺ©...
{
"id": "coding_fibonacci", # κ³ μ ID (CLIμ κ²°κ³Ό JSONμμ μ¬μ©)
"name": "Fibonacci with memoization",
"category": "coding", # "coding" λλ "non-coding"
"prompt": "Write fib(n) using memoization. No imports.",
},
]python run.py --tasks coding_fibonacciOpenAI νΈν μλν¬μΈνΈλΌλ©΄ λͺ μ€μ΄λ©΄ λ©λλ€:
PROVIDERS: dict[str, dict] = {
# κΈ°μ‘΄ νλͺ©...
# Together AI
"together": {
"description": "Together AI",
"default_model": "meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo",
"caller": _make_openai_caller(
base_url="https://api.together.xyz/v1",
api_key_env="TOGETHER_API_KEY",
default_model="meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo",
),
},
}.envμ ν€ μΆκ° ν:
python run.py --provider together --model meta-llama/Meta-Llama-3.1-8B-Instruct-Turboμ체 vLLM μλ² μ°κ²°:
# .envμ μΆκ°
VLLM_BASE_URL=http://λ΄μλ²:8000/v1
VLLM_MODEL=Qwen3.5-27b
python run.py --provider vllmpython run.py [μ΅μ
]
--conditions KEY [...] μ€νν 쑰건 ν€ λͺ©λ‘ (κΈ°λ³Έ: λͺ¨λ)
--tasks ID [...] μ€νν κ³Όμ ID λͺ©λ‘ (κΈ°λ³Έ: λͺ¨λ)
--provider NAME νλ‘λ°μ΄λ μ ν: alibaba | openai | vllm | claude_cli
--model NAME λͺ¨λΈλͺ
(μλ΅νλ©΄ νλ‘λ°μ΄λ κΈ°λ³Έκ°)
--judge-model NAME judgeμ μΈ Claude λͺ¨λΈ (κΈ°λ³Έ: claude-opus-4-6)
--no-judge νκ° μμ΄ μλ΅λ§ μμ§
--temperature FLOAT μνλ§ μ¨λ (κΈ°λ³Έ: 0.3)
--output PATH κ²°κ³Ό JSON μ μ₯ κ²½λ‘
--list-conditions μ¬μ© κ°λ₯ν 쑰건 λͺ©λ‘ 보기
--list-tasks μ¬μ© κ°λ₯ν κ³Όμ λͺ©λ‘ 보기
--list-providers μ¬μ© κ°λ₯ν νλ‘λ°μ΄λ λͺ©λ‘ 보기
harness-bench/
β
βββ run.py CLI μ§μ
μ
βββ dashboard.py μΉ λμ보λ (Flask)
β
βββ bench/ β 컀μ€ν°λ§μ΄μ§μ μ¬κΈ°μλ§
β βββ harnesses.py νλμ€(쑰건) μΆκ°Β·μ κ±°
β βββ tasks.py λ²€μΉλ§ν¬ κ³Όμ μΆκ°Β·μ κ±°
β βββ providers.py λͺ¨λΈΒ·API μλν¬μΈνΈ μΆκ°
β βββ judge.py LLM-as-judge λ‘μ§ (건λ릴 μΌ μμ)
β
βββ templates/
β βββ index.html λμ보λ UI
β
βββ results/ μ€ν κ²°κ³Ό μλ μ μ₯
β βββ run_TIMESTAMP.json
β βββ FINAL_COMPREHENSIVE_REPORT_v4.md
β
βββ .env API ν€ (git μ μΈ)
βββ .env.example API ν€ ν
νλ¦Ώ
βββ requirements.txt
βββ README.md μ΄ νμΌ
βββ MANUAL.md μμΈ λ§€λ΄μΌ
μΈ νμΌ(
harnesses.py,tasks.py,providers.py)λ§ μμ νλ©΄ λλΆλΆμ 컀μ€ν°λ§μ΄μ§μ΄ κ°λ₯ν©λλ€.
λͺ¨λ μλ΅μ Claude Opus 4.6μ΄ 6κ° κΈ°μ€ κ° 1-10μ μΌλ‘ μ±μ ν©λλ€.
μ½λ© κ³Όμ
| κΈ°μ€ | λμ μ μ 쑰건 |
|---|---|
correctness |
μ½λκ° μ νν λμνλ€ |
efficiency |
μκ³ λ¦¬μ¦μ΄ ν¨μ¨μ μ΄λ€ |
conciseness |
κ΅°λλκΈ° μ½λκ° μλ€ |
no_overengineering |
μμ²νμ§ μμ νμ ννΈΒ·docstringΒ·μΆμνλ₯Ό μΆκ°νμ§ μμλ€ |
response_bloat |
μ½λ μ μ€λͺ μ°λ¬Έμ΄ μλ€, λ°λ‘ μ½λλ§ μ€λ€ |
instruction_following |
μ§μν μκ·Έλμ²Β·μ건μ μ νν λ°λλ€ |
λΉμ½λ© κ³Όμ
| κΈ°μ€ | λμ μ μ 쑰건 |
|---|---|
accuracy |
μ¬μ€μ΄ μ ννλ€ |
completeness |
μ§λ¬Έμ ν΅μ¬μ λΉ μ§μμ΄ λ€λ€λ€ |
conciseness |
λ°λ³΅Β·ν¨λ©μ΄ μλ€ |
no_overexplaining |
λ¬»μ§ μμ λ°°κ²½ μ€λͺ μ λμ΄λμ§ μμλ€ |
response_bloat |
ν€λ λ¨λ°, μ§λ¬Έ μ¬μ§μ μ΄ μλ€ |
actionability |
μΆμμ μ‘°μΈμ΄ μλ μ€μ λ‘ μΈ μ μλ λ΅μ΄λ€ |
μ΄ λ ν¬μμ μ§νλ 6κ° μ€νμ νλ¦μ λλ€.
μ€ν 1 (2026-04-03) νλμ€κ° μλνλκ°?
β Distilled Qwen 27Bμ μ μ© β +34% (5.93 β 7.97) β
μ€ν 2 (2026-04-05) νμΈνλ λλ¬Έμ΄ μλκ°? (Inverse Prompt)
β λ°λ μ§μλ₯Ό 쀬λλ νλμ΄ μμ λ¨ β ν둬ννΈ μ체μ ν β
μ€ν 3 (2026-04-05) κΈ°λ³Έ ν
νλ¦Ώμ΄ κ²°κ³Όλ₯Ό μ€μΌμν€λ? (5-way Ablation)
β Default system ν¨κ³Ό = +0.04μ β 무μ κ°λ₯ β
μ€ν 4 (2026-04-06) νμΈνλ μ λ λ°λλΌ λͺ¨λΈμμλ λλ?
β μ리λ°λ° 곡μ Qwen3.5-27B μ¬μ© β +26.5% (6.83 β 8.64) β
μ€ν 5 (2026-04-06) Claude Code μ 체 λ°νμ(~21K ν ν°)μ΄ λ μ’μκΉ?
β μΆμΆ νλμ€(8.64) > μ 체 νλμ€(7.67) β κΈΈμλ‘ μ’μ 건 μλ β
μ€ν 6 (2026-04-08) νμμ΄ λ¬λΌμ§λ©΄ κ²°κ³Όκ° λ¬λΌμ§λ?
β μ μ½λ§(8.97) > MDμ‘°κ°ν(8.5) > μ°μν
μ€νΈ(8.33) β νμλ μ€μ β
μμΈ κ²°κ³Ό β results/FINAL_COMPREHENSIVE_REPORT_v4.md
Q. Alibaba Cloud κ³μ μ΄ μμ΄μ. OpenAIλ‘ ν΄λ λλμ?
λ©λλ€. .envμ OPENAI_API_KEY λ£κ³ --provider openai --model gpt-4oλ‘ μ€ννλ©΄ λ©λλ€.
Q. λ‘컬 λͺ¨λΈλ‘ μ€ννκ³ μΆμ΄μ.
vLLM λ±μΌλ‘ OpenAI νΈν μλ²λ₯Ό λμ°λ©΄ λ©λλ€:
vllm serve Qwen/Qwen2.5-7B-Instruct --port 8000
# .envμ VLLM_BASE_URL=http://localhost:8000/v1 μ€μ
python run.py --provider vllmQ. Claude Code CLI μμ΄λ μ€νν μ μλμ?
νλ¨(judge) μμ΄ μλ΅λ§ μμ§ν μ μμ΅λλ€:
python run.py --no-judgeQ. λ΄κ° λ§λ μμ€ν ν둬ννΈλ₯Ό ν μ€νΈνκ³ μΆμ΄μ.
bench/harnesses.pyμ νλͺ© μΆκ° ν λ°λ‘ μ¬μ© κ°λ₯ν©λλ€. λμ보λλ₯Ό μ¬μμνλ©΄ μλ λ°μλ©λλ€.
- Piebald-AI/claude-code-system-prompts β μ μΆλ Claude Code μμ€ν ν둬ννΈ 254κ° νμΌ μ 리
- Gitlawb/openclaude β Claude Code μ 체 λ°νμ μ€νμμ€ ν¬ν¬
- μμΈ λ§€λ΄μΌ:
MANUAL.md - μ’
ν© λ¦¬ν¬νΈ:
results/FINAL_COMPREHENSIVE_REPORT_v4.md