Ornith-1.0: Self-scaffolding LLMs for agentic coding
TL;DR Highlight
모델이 문제 풀이 전략(scaffold)을 직접 생성하고 개선하는 자기강화 학습 프레임워크를 적용한 오픈소스 코딩 특화 LLM으로, 9B 소형 모델부터 397B 대형 모델까지 라인업을 갖추고 SWE-Bench 등 주요 벤치마크에서 Claude Opus 4.7을 능가하는 성능을 보여줬다.
Who Should Read
오픈소스 LLM을 활용해 코드 자동화 에이전트를 구축하거나, 엣지 디바이스에 경량 코딩 모델을 배포하려는 ML 엔지니어 및 백엔드 개발자.
Core Mechanics
- Ornith-1.0은 Gemma 4와 Qwen 3.5를 베이스로 파인튜닝한 오픈소스 모델 패밀리로, 9B Dense, 31B Dense, 35B MoE, 397B MoE 네 가지 크기로 출시됐다.
- 핵심 혁신은 'Self-Scaffolding'이라는 학습 방식인데, 기존에는 사람이 직접 설계한 하네스(모델이 문제를 풀 때 따르는 실행 프레임)를 고정해서 쓰는 반면, Ornith-1.0은 모델이 그 scaffold 자체를 스스로 생성하고 RL(강화학습)로 함께 최적화한다.
- 학습의 각 RL 스텝은 두 단계로 진행된다. 먼저 모델이 이전에 쓴 scaffold를 보고 더 나은 scaffold를 제안하고, 그 scaffold를 바탕으로 실제 솔루션을 생성한다. 이 두 단계 모두에 리워드가 역전파되므로 scaffold와 풀이 품질이 동시에 개선된다.
- 이 구조 덕분에 태스크 카테고리별로 최적화된 전략이 자동으로 발견되고, 사람이 하네스를 손으로 설계할 필요 없이 지속적인 성능 향상이 가능하다.
- 리워드 해킹 방지를 3단계로 구현했다. 환경/도구 표면/테스트 격리는 모델이 수정할 수 없도록 고정하고, 결정론적 모니터가 허가되지 않은 경로 읽기나 검증 스크립트 수정 시도를 감지해 해당 트라젝토리에 리워드 0을 부여한다.
- 세 번째 방어층으로는 별도의 frozen LLM judge를 veto 역할로 사용한다. 도구 표면 안에서도 intent 수준의 게이밍(예: 테스트 파일을 읽어 답을 하드코딩하거나 오라클 솔루션을 복사하는 행위)을 걸러낸다.
- 플래그십 Ornith-1.0-397B는 Terminal-Bench 2.1에서 77.5, SWE-Bench Verified에서 82.4를 기록해 Claude Opus 4.7(70.3 / 80.8), MiniMax M3(66.0 / 80.5), DeepSeek-V4-Pro(67.9 / 80.6)를 모두 능가했다.
- 35B MoE 모델은 397B 파라미터인 Qwen 3.5-397B를 Terminal-Bench 2.1에서 64.4 vs 53.5로 앞섰고, 엣지용 9B 모델은 SWE-Bench Verified에서 69.4를 달성해 Gemma 4-31B와 동등하거나 더 좋은 성능을 보였다.
Evidence
- 실제 보안 버그 탐지 벤치마크(Mythos 기반)에서 테스트해봤는데, read/grep/ls만 허용했을 때는 성능이 저조했지만 full shell과 Python을 허용하자 탐지 건수가 두 배로 늘었다는 경험이 공유됐다. 이는 모델이 실제로 도구를 활용해 문제를 해결하는 방식을 취한다는 것을 실증한다고 볼 수 있다.
- 같은 테스트에서 Ornith-1.0-35B는 동일한 Qwen 3.6 MoE를 베이스로 agentic use에 맞게 파인튜닝한 'Qwen AgentWorld'보다 낮은 성능을 보였다는 보고도 있었다. 벤치마크 수치는 좋지만 특정 도메인에서는 아직 경쟁 모델에 미치지 못할 수 있음을 시사한다.
- 9B 모델이 Qwen 3.6 35B와 동등한 성능을 낸다는 주장이 'bonkers한 클레임'이라며 회의적인 반응도 있었다. 모델 크기 대비 성능 차이가 너무 크다는 점에서 벤치마크 설정이나 평가 방식에 의문을 품는 시각이다.
- Self-Scaffolding이 결국 '모델이 코드를 작성해서 실행하는 방식으로 질문에 답하도록 학습시킨 것'이고, 그렇다면 fancy한 프롬프트 최적화와 본질적으로 다른가 하는 의문이 제기됐다. 이에 대해 명확한 반론이나 저자의 답변은 댓글에서 확인되지 않았다.
How to Apply
- SWE-Bench 스타일의 GitHub 이슈 자동 해결 파이프라인을 구축 중이라면 Ornith-1.0-35B MoE를 먼저 평가해볼 것. 397B 대비 훨씬 적은 리소스로 비슷한 수준의 agentic coding 성능을 낼 수 있고, Qwen 3.5-397B보다 Terminal-Bench에서 높은 점수를 기록했다.
- 엣지 디바이스나 제한된 GPU 환경에서 코드 자동완성/버그 수정 에이전트를 돌려야 한다면 Ornith-1.0-9B를 검토해볼 것. 9B임에도 SWE-Bench Verified 69.4로 Gemma 4-31B와 동등한 성능을 내므로 배포 비용을 크게 낮출 수 있다.
- 모델에 shell, Python 실행 등 full tool access를 주는 환경을 설계할 때는 read/grep/ls만 허용하는 제한적 환경보다 성능이 크게 올라가므로, 보안 제약이 허용하는 범위 내에서 최대한 넓은 도구 접근을 부여하는 것이 효과적이다.
- 자체 agentic 학습 파이프라인을 설계할 때 scaffold를 고정하지 말고 학습 가능한 오브젝트로 다루는 접근을 참고할 수 있다. 단, 리워드 해킹 방지를 위해 환경 격리, 결정론적 모니터, LLM judge 세 레이어를 모두 갖추는 것이 필수다.
Terminology
Related Papers
Migrating a production AI agent to GPT-5.6: 2.2x faster, 27% cheaper
마케팅 웹사이트를 자동 생성하는 프로덕션 AI 에이전트를 Claude Opus 4.8에서 GPT-5.6 Sol로 전환한 실전 경험담으로, 단순 모델 교체가 아니라 eval 하네스, 툴 스키마, 캐싱, 추론 리플레이까지 손봐야 했던 과정을 구체적인 수치와 함께 정리했다.
What xAI's Grok build CLI sends to xAI: A wire-level analysis
xAI의 공식 코딩 CLI 도구 Grok Build가 사용자 동의 없이 전체 Git 저장소와 .env 시크릿 파일을 xAI 서버로 업로드한다는 사실이 네트워크 트래픽 분석으로 밝혀졌다.
Remember When It Matters: Proactive Memory Agent for Long-Horizon Agents
LLM 에이전트가 긴 작업 중 중요한 정보를 잊어버리는 문제를 별도의 메모리 에이전트가 '적절한 타이밍에' 끼어들어 해결하는 방법
WebSwarm: Recursive Multi-Agent Orchestration for Deep-and-Wide Web Search
복잡한 웹 검색을 재귀적으로 분해하고 각 노드에 적합한 검색 모드를 동적으로 할당하는 멀티에이전트 프레임워크
Show HN: Reverse-engineering web apps into agent tools
로그인된 웹 앱의 API 호출을 브라우저에서 감시해 자동으로 MCP 도구로 변환하는 에이전트를 만들었다. 소스 코드나 공식 API 문서 없이도 Jira, Spotify 같은 서비스에 AI 어시스턴트를 붙일 수 있다.
Show HN: FableCut – A browser video editor AI agents can drive (zero deps)
타임라인 전체를 JSON 파일 하나로 표현하고 MCP/REST로 AI 에이전트가 직접 편집할 수 있는 브라우저 비디오 에디터로, Claude 같은 AI가 프롬프트 하나로 영상을 자동 컷편집하고 결과를 실시간으로 UI에 반영해준다.