- Published on
claude plugin eval: ํ๋ฌ๊ทธ์ธ์ ๊ฐ์น๋ฅผ ์ซ์๋ก ์ฆ๋ช ํ๋ ์๋
ํ๋ฌ๊ทธ์ธ์ ๋ง๋ค์๋ค๊ณ ์น์. ๊ทธ๋ฐ๋ฐ ๊ทธ ํ๋ฌ๊ทธ์ธ์ด ์ ๋ง Claude๋ฅผ ๋ ์ ๋์ํ๊ฒ ํ๋๊ฐ? ์ถ์ธก์ด ์๋๋ผ ์ซ์๋ก ๋ณด๊ณ ์ถ๋ค. ์ด์ ๊ทธ๊ฒ ๊ฐ๋ฅํด์ก๋ค.
2026๋
9์ 11์ผ, Anthropic์ด Claude Code v2.1.269์ claude plugin eval ๋ช
๋ น์ด๋ฅผ ๊ณต๊ฐํ๋ค. ํ๋ฌ๊ทธ์ธ์ด ์ค์ ๋ก ์ผ๋ง๋ ํจ๊ณผ๊ฐ ์๋์ง ์ธก์ ํ๋ ์ ์ฉ eval ํ๋ค์ค๋ค.
ํต์ฌ ์์ด๋์ด: "ํ๋ฌ๊ทธ์ธ ์์ ๋ vs ์์ ๋"
ฮ(๋ธํ)์ ์๋ฏธ
claude plugin eval์ ํต์ฌ ์ค๊ณ๋ ๋จ์ํ๋ค. ๋ชจ๋ ํ
์คํธ ์ผ์ด์ค๋ฅผ ๋ ๋ฒ ์คํํ๋ค:
- with-arm: ํ๋ฌ๊ทธ์ธ์ด ๋ก๋๋ ์ํ
- without-arm: ํ๋ฌ๊ทธ์ธ์ด ์๋ ๊ธฐ๋ณธ ์ํ
๋ ๊ฒฐ๊ณผ์ ์ฐจ์ด, **ฮ(๋ธํ)**๊ฐ ํ๋ฌ๊ทธ์ธ์ ์ค์ ๊ธฐ์ฌ๊ฐ์ด๋ค. ์ ์๊ฐ ์ฌ๋์ผ๋ฉด ํ๋ฌ๊ทธ์ธ์ด ๊ธฐ์ฌํ ๊ฒ์ด๊ณ , ๋จ์ด์ก์ผ๋ฉด ์คํ๋ ค ๋ฐฉํด๊ฐ ๋ ๊ฒ์ด๋ค.
๊ธฐ์กด์๋ ํ๋ฌ๊ทธ์ธ์ด "์ ๋๋ ๊ฒ ๊ฐ๋ค"๋ ์ง๊ด์ ์์กดํ๋ค. ์ด์ ๋ ฮ = +0.23์ด๋ผ๊ณ ๋งํ ์ ์๋ค.
6๊ฐ์ง ๊ทธ๋ ์ด๋ ํ์
Anthropic์ 6๊ฐ์ง ๊ทธ๋ ์ด๋๋ฅผ ์ ๊ณตํ๋ค. 4๊ฐ์ง๋ ๋ฌด๋ฃ, 2๊ฐ์ง๋ ์ ๋ฃ(LLM ํธ์ถ ๊ธฐ๋ฐ)๋ค.
๋ฌด๋ฃ ๊ทธ๋ ์ด๋ (ํธ๋์คํฌ๋ฆฝํธยทํ์ผ ๊ธฐ๋ฐ)
| ๊ทธ๋ ์ด๋ | ์ธก์ ๋์ |
|---|---|
regex | ์ถ๋ ฅ ํ ์คํธ์์ ํจํด ์กด์ฌ ์ฌ๋ถ |
tool_used | ํน์ ๋๊ตฌ๊ฐ ํธ์ถ๋๋์ง ์ฌ๋ถ |
tool_order | ๋๊ตฌ๊ฐ ์ ํด์ง ์์๋ก ํธ์ถ๋๋์ง |
file_exists | ํน์ ํ์ผ์ด ์์ฑ๋๋์ง ์ฌ๋ถ |
์ ๋ฃ ๊ทธ๋ ์ด๋ (LLM ํธ์ถ)
llm: LLM์ด ์ถ๋ ฅ์ ์ฝ๊ณ ํ์ง์ ํ๊ฐbaseline: with-arm๊ณผ without-arm ์ถ๋ ฅ์ ์ง์ ๋น๊ตํด ๋ ๋์ ์ชฝ์ ์ ํ
CI ํ์ดํ๋ผ์ธ์ ํตํฉํ๊ธฐ
ํต์ฌ ํ๋๊ทธ
claude plugin eval --threshold 0.8 --max-cost-usd 20
--threshold 0.8: ์ด์ ์ด 0.8 ๋ฏธ๋ง์ด๋ฉด ๋น๋ ์คํจ--max-cost-usd 20: LLM ๊ทธ๋ ์ด๋ ๋น์ฉ์ด $20 ์ด๊ณผ ์ ์ค๋จ
์ด ๋ ํ๋๊ทธ๋ฅผ GitHub Actions๋ CI ํ์ดํ๋ผ์ธ์ ์ถ๊ฐํ๋ฉด, ํ๋ฌ๊ทธ์ธ ์ ์๊ฐ ๊ธฐ์ค ์ดํ๋ก ๋จ์ด์ง๋ ์ฝ๋ ๋ณ๊ฒฝ์ด ๋ณํฉ๋์ง ์๋๋ค.
๋ฆฌํฌํธ ํ์
์คํ ํ JSON + HTML ๋ฆฌํฌํธ๊ฐ ์์ฑ๋๋ค. HTML ๋ฆฌํฌํธ์์๋ ๊ฐ ํ ์คํธ ์ผ์ด์ค๋ณ with/without ๊ฒฐ๊ณผ๋ฅผ ์๊ฐ์ ์ผ๋ก ๋น๊ตํ ์ ์๋ค.
ํ๋ฌ๊ทธ์ธ ๊ฐ๋ฐ์์๊ฒ ๋ฌ๋ผ์ง๋ ๊ฒ
์ด ๊ธฐ๋ฅ์ด ๋ฑ์ฅํ๊ธฐ ์ , ํ๋ฌ๊ทธ์ธ ๊ฐ๋ฐ์ ํผ๋๋ฐฑ ๋ฃจํ๋ ๊ธธ์๋ค: ๋ง๋ค๊ณ โ ์ง์ ์จ๋ณด๊ณ โ "๊ด์ฐฎ์ ๊ฒ ๊ฐ๋ค"๋ ๋๋์ผ๋ก ๋ฐฐํฌ. ์ด์ ๋:
- ํ ์คํธ ์ผ์ด์ค ์์ฑ
claude plugin eval์คํ- ฮ ํ์ธ
- ์ ์ ๋ฎ์ ์ผ์ด์ค ๊ฐ์
- CI์ ์๊ณ๊ฐ ํตํฉ
ํ๋ฌ๊ทธ์ธ์ด ์ฝ๋์ฒ๋ผ ํ์ง ๊ด๋ฆฌ๋๋ ์๋๊ฐ ๋๋ค. ์ค๋ช ์ ์์ด "์จ๋ณด๋ฉด ์์์"๋ก ๋ฐฐํฌํ๋ ํ๋ฌ๊ทธ์ธ๊ณผ "ฮ = +0.31, ์ ํ๋ 87%"๋ฅผ ๋ณด์ฌ์ฃผ๋ ํ๋ฌ๊ทธ์ธ ์ค ์ด๋ค ๊ฒ์ ์ ํํ๊ฒ ๋๊ฐ.
๊ต์ก ๋๊ตฌ ๊ฐ๋ฐ์์์ ์์ฌ์
์๋ํ ํฌ ๊ด์ ์์ ์ด ๊ธฐ๋ฅ์ ์ค์ํ ๋ณ๊ณก์ ์ด๋ค. ๊ต์ก ํนํ Claude ํ๋ฌ๊ทธ์ธ(ํ์ ์ธ์ด ์์ค ์กฐ์ , ๊ต์ฌ ์์ ์ค๊ณ ์ง์, ์ค๋ต ํผ๋๋ฐฑ ์์ฑ ๋ฑ)์ ๋ง๋๋ ๊ฐ๋ฐ์๋ค์ด ์ด์ "์ด ํ๋ฌ๊ทธ์ธ์ด ๊ต์ก ๋งฅ๋ฝ์์ ๋ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ๋ด๋๊ฐ"๋ฅผ ์์น๋ก ์ฆ๋ช ํ ์ ์๋ค.
ํ์ฉ ํ
- ์ฒซ ํ ์คํธ ์ผ์ด์ค๋ 5๊ฐ๋ก ์์: ๋ฒ์๋ฅผ ์ขํ ํ์ดํ๋ผ์ธ ๋์์ ๋จผ์ ํ์ธํ๋ค.
- regex ๊ทธ๋ ์ด๋๋ก ๋น์ฉ ์์ด ์์: ๋ฌด๋ฃ ๊ทธ๋ ์ด๋๋ก ๊ธฐ๋ณธ ๋์์ ๊ฒ์ฆํ ๋ค ์ ๋ฃ llm ๊ทธ๋ ์ด๋๋ก ํ์ง์ ์ฌํ ํ๊ฐํ๋ค.
- --max-cost-usd ์ค์ ํ์: LLM ๊ทธ๋ ์ด๋ ๋น์ฉ์ ํ ์คํธ ์ผ์ด์ค ์์ ๋ฐ๋ผ ๊ธ์ฆํ ์ ์๋ค.
Sources: