저는 자체 격리된 설정 폴더를 가진 10개의 에이전트를 테스트했습니다. 이들을 헤드리스(headless) 모드로 실행하고, 자동 확인 기능을 사용했으며, 가능한 곳에서는 원격 측정(telemetry)을 비활성화했습니다. 각 에이전트는 adapters/<agent>.sh로 실행했습니다. 아이디어는 간단했습니다. 각 에이전트에게 5가지 기본 작업을 주고, 작업당 10분을 할애하며, 매번 새로운 테스트 환경(fixture) 사본을 제공하고, 자동 확인 스크립트(check/check.sh)를 사용하는 것이었습니다. 작업 내용은 다음과 같습니다: T1 YAML에서 DB 포트를 읽어와 파일에 쓰기 (캐시 포트와 혼동하지 말 것), T2 stats.py 스크립트를 작성하고 실행하여 출력을 저장하기, T3 slugify의 버그를 수정하여 테스트가 통과하게 하기; 숨겨진 예제는 과적합(overfitting)을 잡아내고, T4 세 개의 로그 파일에 걸쳐 ERROR 라인 수를 계산하고 가장 빈번한 오류 찾기, T5 프로그램 출력을 변경하지 않고 세 개의 파일에 걸쳐 함수 이름 바꾸기
결과 1. Pi (v1.3.0)
총 시간: 1분 36초. 5가지 작업을 모두 완료하는 데 가장 적은 시간이 걸렸습니다. 모델이 어떤 도구 형식(tool formats)에 대해 생각할 필요가 거의 없었습니다.
T1 T2 T3 T4 T5 총합 ✅ 10s ✅ 14s ✅ 24s ✅ 19s ✅ 29s 5/5
2. goose (v1.55.0)
총 시간: 2분 51초. 견고하고 일관성이 있었습니다. 헤매지 않고 다섯 가지 작업을 완료했습니다.
T1 T2 T3 T4 T5 총합 ✅ 16s ✅ 18s ✅ 26s ✅ 45s ✅ 66s 5/5
3. Crush (v0.98.1)
총 시간: 3분 31초. 깔끔한 실행이었습니다. 추론 과정에서 약간 더 장황했지만, 문제없이 모든 것을 완료했습니다.
T1 T2 T3 T4 T5 총합 ✅ 24s ✅ 26s ✅ 64s ✅ 38s ✅ 59s 5/5
4. Atomic Agent (v0.6.9)
총 시간: 4분 38초. 다섯 가지 작업 모두 완료했습니다. T3와 T5에서 시간이 더 오래 걸렸습니다. 모델이 다중 파일 편집을 처리하는 데 추가 단계가 필요했지만, 매번 성공적으로 해냈습니다. 깨진 도구 호출(broken tool calls)은 없었고 거짓 완료도 없었습니다.
T1 T2 T3 T4 T5 총합 ✅ 11s ✅ 22s ✅ 77s ✅ 48s ✅ 104s 5/5
5. Cline (v3.0.73)
총 시간: 5분 56초. 스크립트를 올바르게 작성하기 전에 T2에서 2분 이상 막혔습니다. 그 외의 모든 것은 괜찮았습니다.
T1 T2 T3 T4 T5 총합 ✅ 22s ✅ 137s ✅ 51s ✅ 69s ✅ 77s 5/5
6. OpenClaw (v2026.10.5)
총 시간: 5분 44초. 기본적으로 소형 모델 프리셋인 --local-model-lean 모드로 실행되었습니다. 그 자체로는 잘 작동했지만, T3와 T4에서 제가 기대했던 것보다 느렸습니다.
T1 T2 T3 T4 T5 총합 ✅ 29s ✅ 32s ✅ 107s ✅ 116s ✅ 60s 5/5
7.
OpenCode (v1.19.3) 총 시간: 17분 43초. 모든 것을 완료했지만, 작업당 거의 4분이 걸렸습니다. 모델이 간단한 단계에서 명확하게 과도하게 생각했습니다. 그래도 작업을 해냈지만, 효율적이지는 않았습니다. T1 T2 T3 T4 T5 총합 ✅ 241s ✅ 225s ✅ 178s ✅ 289s ✅ 130s 5/5 8. Hermes (v0.22.2) 총 시간: 4분 36초. 가시적인 테스트 케이스만 수정했기 때문에 T3에서 실패했습니다. 숨겨진 예제 C++ 및 Rust 2026은 c-rust-2026 대신 c++-&-rust-2026으로 변환되었습니다. 전형적인 테스트에 대한 과적합(overfitting)입니다. T1 T2 T3 T4 T5 총합 ✅ 31s ✅ 37s ❌ 120s ✅ 45s ✅ 43s 4/5 9. Qwen Code (v0.25.3) 총 시간: 6분 00초. T4에서 43개 대신 40개의 ERROR 라인을 계산했습니다. 순수한 모델의 오계산이었지만, 가장 빈번한 오류는 올바르게 식별되었습니다. T1 T2 T3 T4 T5 총합 ✅ 47s ✅ 32s ✅ 123s ❌ 59s ✅ 99s 4/5 10. Codex CLI (v0.163.0) 모델에 도달하지도 못했습니다. 버전 0.163은 Responses API만 사용하며, llama.cpp는 채팅 형식으로 번역되고, Qwen3.5 (4B Q4_K_M) 템플릿은 요청이 전달되기 전에 500 'System message must be at the beginning' 오류를 발생시킵니다. T1 T2 T3 T4 T5 총합 ❌ ❌ ❌ ❌ ❌ 0/5 제가 실제로 배운 점 A 4B 모델이면 거의 모든 프레임워크에서 기본적인 에이전트 작업에 충분합니다. 일곱 개의 에이전트가 다섯 가지 작업을 모두 완료했습니다. 이 난이도 수준에서의 병목 현상은 모델 자체가 아니라 주변의 하네스(harness)입니다. Codex CLI는 채팅-완성(chat-completions) 기능을 다시 추가하지 않는 한, 현재 로컬 설정에서는 사실상 사용 불능 상태입니다. 예전에 작동했기 때문에 그 점은 아쉬웠습니다. 오류 복구 능력(Error recovery)이 순수한 성능보다 더 중요합니다. 점수를 잃은 두 에이전트(Hermes, Qwen Code)는 불가능한 작업에서 실패한 것이 아니라, 모델이 문자 그대로가 아닌 약간 창의적이 되어버린 엣지 케이스(edge cases)에서 실패했습니다. 벤치마크에 다른 내용이 궁금하거나 (실제로 2B 미만 모델로 시도해 본 사람이 있나요?) 알려주세요. /u/GapNew4766 제출 [링크] [댓글]