코딩 에이전트 benchmark를 볼 때 모델 이름만 확인하는 개발자가 많습니다. "Claude Code + Opus 5가 23/25, Codex + GPT-5.6 Sol이 21/25" — 다른 모델이 섞여 있으니 하네스 간의 비교가 불가능합니다.
Octomind의 benchmark는 다른 방식을 사용합니다. 같은 모델 glm-5.2를 여러 하네스에 넣어서 비교했습니다. 결과: Octomind가 24/25, OpenCode가 19/25. 모델은 동일하지만 하네스 성능 차이가 5문제입니다.
benchmark 구조: 실제 PR에서 가져온 25개 과제
Octomind는 octobench를 통해 merged PR에서 가져온 25개의 real fix cases를 사용합니다. 각 에이전트는 pre-fix repo에서 작업하고, merged fix에서 held-out test가 pass/fail을 결정합니다.
공식 benchmark 결과(2026년 7월 30일 공개)입니다.
| 하네스 + 모델 | 해결 | judge Σ / 2500 | 비용 | 시간 |
|---|---|---|---|---|
| Octomind + glm-5.2 | 24/25 | 2264 | $63.43 | 3.6h |
| Claude Code + Opus 5 | 23/25 | 2262 | $81.79 | 6.7h |
| Codex + GPT-5.6 Sol | 21/25 | 2127 | $14.86 | 1.0h |
| OpenCode + glm-5.2 | 19/25 | 2093 | $129.54 | 3.3h |
여기서 주목할 점은 두 번째 줄과 네 번째 줄입니다. 같은 glm-5.2 모델, 같은 엔드포인트를 사용했습니다. Octomind가 24문제, OpenCode가 19문제. 비용은 Octomind가 $63.43, OpenCode가 $129.54 — 거의 절반입니다.
이 차이는 모델이 아니라 하네스 설계에서 옵니다.
Octomind 하네스의 핵심 설계
Octomind는 "한 개의 바이너리, 모든 모델, MCP 네이티브"를 표방합니다. 실제로 어떤 설계가 24/25을 가능하게 했는지 살펴보겠습니다.
1. 정책은 코드, 팝업은 없음
# .agents/guardrails.toml
[[guard]]
match = "shell(command=^rm\\s+-rf?)"
message = "rm -rf blocked."
[[guard]]
match = "shell(command=git push)"
when = ["+shell(command=git status)"]
message = "Review changes before pushing."
TOML 파일에 선언된 guardrails는 결정론적으로 작동합니다. 승인 팝업이 필요 없고, CI에서도 동작하고, daemon에서도 동작합니다.
| 레이어 | 실행 시기 | 동작 |
|---|---|---|
| Guards | 도구 호출 전 | 능력, 인수 regex, 세션 기록으로 deny |
| Hooks | 도구 결과 후 | 비영구 exit 코드가 stdout을 agent inbox에 주입 |
| Validators | turn 후 | agent가 다음 turn에서 읽는 스크립트 |
Claude Code의 hooks를 아는 개발자에게는 guards가 PreToolUse deny, hooks가 PostToolUse, validators가 Stop입니다. 스크립트 없이 일반적인 경우에 작동합니다.
2. 한 하네스, 5가지 표면
# 인터랙티브
octomind run developer:general
# 파이프라인 — CI, 스크립트, 자동화
echo "Explain the auth module" | octomind run developer:general --format plain
# 데몬 — 백그라운드 에이전트
echo "watch the build" | octomind run --name watcher --daemon --format jsonl
octomind send --name watcher "run the test suite"
인터랙티브 CLI, stdin (CI), daemon, WebSocket, ACP — 동일한 엔진을 어디서나 사용할 수 있습니다.
3. 비용 제한과 세션 관리
[model]
name = "anthropic:claude-sonnet-5-5"
[supervisor.model]
name = "anthropic:claude-haiku-5-5"
[compression.model]
name = "anthropic:claude-haiku-5-5"
각 role마다 다른 모델을 지정할 수 있고, 요청당/세션당 지출을 제한할 수 있습니다. 예산을 초과하면 인터랙티브 세션은 y/N을 묻고, 비인터랙티브 실행은 exit code 75로 중단됩니다.
같은 모델, 다른 결과
benchmark에서 가장 중요한 인사이트는 "하네스가 중요하다"는 사실입니다.
OpenCode는 glm-5.2를 사용했지만 Octomind가 24문제를 풀었습니다. 둘 다 stock invocation, 튜닝 없음. 이 benchmark는 개별 모델 성능이 아니라 전체 하네스를 측정합니다.
더 흥미로운 것은 "worst-case pricing" 조건입니다. glm-5.2가 prompt caching 없이 실행되었고, Opus는 ~97%의 context re-read를 캐시 요금으로 청구했습니다. 그럼에도 Octomind가 해결 문제 수, 비용, 실행 시간 모든 항목에서 앞섰습니다.
개발자에게 주는 교훈
이 benchmark를 읽을 때 확인해야 할 것들:
- 동일 모델 비교: glm-5.2를 사용한 Octomind vs OpenCode 비교는 하네스 간의 순수한 차이를 보여줍니다.
- held-out 테스트: merged PR에서 가져온 held-out test는 contamination을 방지합니다.
- 비용 vs 성능 트레이드오프: Codex + GPT-5.6 Sol은 $14.86로 가장 싸지만 21/25입니다. Octomind + glm-5.2는 $63.43에 24/25입니다.
- 독립 재현 필요: 공식 benchmark는 7월 30일 공개된 결과이며, 현재 checkout의 측정 결과가 아닙니다.
모델 benchmark만 보고 "이 모델이 가장 좋다"고 결론내리는 것은 위험합니다. 같은 모델을 사용하는 하네스 간의 성능 차이는 5문제, 비용 차이는 2배에 달합니다. 에이전트 성능을 평가할 때는 모델 이름보다 하네스 설계를 먼저 확인하세요.