SERA 오픈 소스 코딩 에이전트 완벽 가이드
개요
SERA(Soft-Verified Efficient Repository Agents)는 앨런 연구소(AI2)가 공개한 오픈 소스 코딩 에이전트로, 특정 코드 저장소(레포지토리)에 특화된 자동 버그 수정·PR 생성 작업을 수행하도록 설계된 시스템이다13.
대형 폐쇄형 모델 기반 코딩 에이전트가 보편화되는 가운데, SERA는 "저렴한 비용으로 내 코드베이스에 특화된 에이전트"를 목표로 하며, 데이터 생성 레시피, 학습 코드, 모델, 배포 도구까지 모두 공개한 것이 특징이다234.
SERA는 GitHub 이슈나 버그 리포트를 입력받아 코드 수정 패치를 만들고, 이를 기반으로 풀 리퀘스트를 생성하는 전 과정을 자동화할 수 있으며, 개인·기업 레포지토리에 맞춰 재학습(파인튜닝)해 성능을 끌어올리는 데 최적화돼 있다13.
SERA란 무엇인가
SERA는 "Soft-Verified Efficient Repository Agents"의 약자로, 코드 레포지토리 단위로 특화된 코딩 에이전트를 효율적으로 만드는 방법론이자, 그 방법으로 학습된 모델들의 이름이다34.
전통적인 코딩 에이전트는 일반적인 공개 코드 데이터로 학습된 반면, SERA는 특정 저장소에서 생성한 작업 이력(버그 → 패치) 데이터를 대량으로 만들어, 이를 바탕으로 에이전트를 그 레포지토리에 맞게 재학습하는 구조를 취한다23.
AI2는 이 방식을 통해 8B·32B 파라미터급 오픈 모델을 사용하면서도, 교사(teacher) 모델과 비슷하거나 그것을 능가하는 성능을 특정 코드베이스에서 달성할 수 있다고 보고한다23.
설계 철학과 '소프트 검증(soft-verified)' 개념
기존 코딩 에이전트 연구에서는 "하드 검증(hard-verified)"이 일반적이다. 즉, 버그를 고친 코드가 반드시 모든 테스트를 통과해야 데이터로 쓸 수 있다고 가정한다3.
SERA 팀은 이 관행을 의도적으로 깨고, 패치가 완벽하지 않더라도 "문제 해결을 향해 나아가는 중간 단계"를 학습에 활용하는 '소프트 검증(soft-verified)' 전략을 채택했다3.
이 접근법의 핵심은, 모델이 버그를 완벽히 고친 사례뿐 아니라 "부분적으로 개선된" 이력도 유용한 신호로 본다는 점이며, 이를 통해 데이터 생성 인프라를 단순화하고 비용을 크게 줄이면서도 기존 하드 검증 방식과 비슷한 수준의 성능을 얻었다고 보고한다23.
아키텍처와 모델 구성
공개된 SERA 모델은 Qwen 3 계열 기반으로 8B와 32B 두 가지 크기를 제공하며, 둘 모두 32K 토큰 컨텍스트 길이를 지원한다3.
이 모델들은 일반 언어 모델이 아니라 "코딩 에이전트 태스크"에 맞게 후속 학습된 버전으로, 코드 검색, 버그 분석, 수정, 패치 생성, PR 작성과 같은 일련의 워크플로를 하나의 통합 모델이 모두 처리한다는 점이 특징이다23.
교사 모델로는 AI2 내부 모델이 아니라 GLM-4.5-Air 같은 오픈 가중치 계열을 사용하여, 연구실·대학·소규모 팀도 4개 정도의 GPU만 있으면 자체적으로 distillation 파이프라인을 돌릴 수 있도록 설계했다34.
데이터 생성 및 학습 파이프라인
SERA의 핵심은 "아무 레포지토리에서나 에이전트 학습용 데이터를 자동으로 뽑아내는 파이프라인"이다24.
실제 구현은 sera/main.py를 중심으로 돌아가며, generate → distill_stage_one → distill_stage_two → eval → postprocess로 이어지는 스테이지 구조를 사용한다4.
예를 들어 Anthropic API를 교사 모델로 사용하는 경우, 이미 도커 이미지가 있는 레포지토리에서 데이터 생성을 시작하려면 다음과 같이 실행한다[^4]:
python sera/main.py name=test --config-name=config_specialize_existing_anthropic.yaml개인 레포지토리에서 데이터를 만들고 싶다면, GitHub 미러(org)와 Docker org를 준비한 뒤 다음과 같이 설정 값을 넘겨준다[^4]:
python sera/main.py --config-name=config_specialize_personal_anthropic.yaml \
--generate.docker.docker_org=YOUR_DOCKER_ORG \
--generate.docker.gh_mirror_org=YOUR_GITHUB_MIRROR_ORG로컬이나 자체 호스팅한 교사 모델(예: GLM-4.5-Air)을 사용할 수도 있으며, 이때는 모델 이름과 HTTP 엔드포인트(URL)를 인자로 전달해 distillation을 진행한다4.
대규모 실행과 샤딩(sharding) 전략
SERA는 대규모 레포지토리나 여러 레포지토리에 대해 동시에 데이터를 생성할 수 있도록 샤딩 메커니즘을 지원한다4.
config_fullscale.yaml 설정과 --distill.shard 인자를 활용하면, 전체 입력 데이터를 서로 다른 서버나 프로세스에 나누어 처리할 수 있으며, 예를 들어 3개 샤드로 나누어 병렬 실행하는 방식은 다음과 같다[^4]:
python sera/main.py --config-name=config_fullscale.yaml \
--generate.docker.docker_org=YOUR_DOCKER_ORG \
--generate.docker.gh_mirror_org=YOUR_GITHUB_MIRROR_ORG \
--distill.shard 0긴 작업이 중간에 멈추고 일부 trajectory만 완료된 경우, stage= 인자를 이용해 특정 단계부터 재시작하게 할 수 있도록 설계되어 있어, 비용이 큰 실험을 안정적으로 운영하도록 돕는다4.
GitHub 연동, 도커, 미러 레포지토리
개인 레포지토리에서 데이터를 생성하려면, 현재 구현상 GitHub 미러용 조직(organization)과 Docker 조직이 필요하다4.
SERA 프로젝트는 누구나 쓸 수 있는 공개 GitHub 미러 조직 oca-repos를 만들어 두었지만, 여기에 미러링된 레포지토리는 공개되므로, 민감한 코드는 별도의 사설 조직을 만드는 것이 권장된다4.
Docker 조직 생성에는 유료 구독이 필요해, 연구실이나 기업이 이미 보유한 계정을 사용하는 방식이 일반적이며, 프로젝트 팀은 더 많은 개발자들이 제약 없이 사용할 수 있는 대안을 찾고 있다고 밝히고 있다4.
기능과 사용 시나리오
SERA 에이전트는 GitHub 이슈나 버그 설명을 입력으로 받아 관련 코드 위치를 탐색하고, 라인 단위 패치를 생성한 뒤, 테스트를 수행하고, 최종적으로 풀 리퀘스트까지 만드는 자동화 워크플로를 지원한다13.
이 과정은 인간 개발자가 하는 일과 유사하다. 이슈를 읽고, 관련 파일을 찾고, 코드를 분석한 다음 수정안을 제시하고, 필요한 경우 재시도하며, 마지막에 패치를 제출하는 일련의 단계가 단일 에이전트 안에 내재화되어 있다23.
또한 AI2는 SERA를 Claude Code 환경과 통합해, 사용자가 별다른 LLM 지식 없이도 pip 패키지 설치 후 한 줄 명령으로 에이전트를 띄워 쓸 수 있는 경험을 제공하고자 했다23.
"내 코드베이스 특화"라는 가치
SERA가 강조하는 가장 큰 차별점은 "자기 코드베이스에 특화된 에이전트를 싸게 만든다"는 가치 제안이다23.
대형 클라우드·빅테크 기업은 내부 코드로 자체 에이전트를 학습하는 것이 가능하지만, 중소 규모 팀이나 개인 개발자는 폐쇄형 API 비용·프라이버시·인프라 문제 때문에 동일한 전략을 취하기 어렵다3.
SERA의 파이프라인은 오픈 가중치 모델과 상대적으로 적은 GPU 자원(예: 32B 모델 기준 몇 GPU일 정도의 GPU-days)만으로 특정 레포지토리에 특화된 에이전트를 만들 수 있도록 설계되어 있어, 소규모 팀도 교사 모델 성능을 따라잡거나 능가하는 전용 에이전트를 직접 구축하는 것을 목표로 한다23.
연구적 의의와 한계
SERA는 "코딩 에이전트 연구에서 데이터 스케일과 전문화(specialization)를 본격적으로 탐구할 수 있는 오픈 소스 레시피"를 제공한다는 점에서 의미가 크다23.
특히 소프트 검증 전략을 통해, 지금까지 상식으로 여겨지던 "완전히 검증된 고품질 데이터만이 유용하다"는 가설에 도전하며, 부분적으로 올바른 데이터도 대규모로 쌓이면 강력한 신호가 될 수 있음을 보여준다23.
한편, 현재 구현은 도커·GitHub 미러·GPU 인프라 등 개발·연구 환경이 갖춰진 사용자에게 최적화되어 있어, 완전 비개발자나 인프라가 전혀 없는 팀에게는 접근성 면에서 여전히 진입 장벽이 존재한다34.
시작하는 방법 요약
SERA GitHub 레포지토리를 클론하고 Python 환경(예: conda)에서
pip install -e .로 설치한다4.Anthropic API나 자체 호스팅한 GLM-4.5-Air 등 교사 모델 환경을 준비한다34.
대상 레포지토리를 도커화하고, 필요 시 GitHub 미러 org와 Docker org를 구성한다4.
sera/main.py와 제공된 config 파일을 기반으로 데이터 생성 → distillation → 평가 파이프라인을 실행한다24.완성된 SERA 모델을 Claude Code 통합 등 원하는 IDE·에이전트 환경에서 호출해 사용한다23.
참고
1Ai2 cooks up open-source coding agents with tech equivalent of 'hot ...
2My Journey Towards Coding Agents: Building SERA
4GitHub - allenai/SERA: SERA: Soft-Verified Efficient Repository Agents
이 노트는 요약·비평·학습 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.
