← 최신 논문
🤖 AI

CODESKILL: Learning Self-Evolving Skills for Coding Agents

CODESKILL은 코딩 에이전트 궤적에서 다중 세분화 절차적 기술의 컴팩트한 뱅크를 추출하고 진화시키며 유지하도록 학습하는 강화 학습 기반 프레임워크로, 기존 프롬프트 기반 또는 메모리 접근 방식에 비해 SWE-Bench Verified와 같은 벤치마크에서 하류 작업 성능을 크게 향상시킵니다.

원저자: Yanzhou Li, Yiran Zhang, Xiaoyu Zhang, Xiaoxia Liu, Yang Liu

게시일 2026-05-26
📖 4 분 읽기☕ 가벼운 읽기

원저자: Yanzhou Li, Yiran Zhang, Xiaoyu Zhang, Xiaoxia Liu, Yang Liu

원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기

매우 똑똑한 로봇 조수에게 소프트웨어 버그를 수정하는 방법을 가르친다고 상상해 보세요. 로봇이 문제를 해결할 때마다 긴 과정을 거칩니다: 코드를 살펴보고, 명령을 시도하며, 오류를 확인한 후 다시 시도하고, 결국 (기대대로) 문제를 해결합니다. 이 전체 여정을 '궤적 (trajectory)'이라고 부릅니다.

문제는 로봇이 과거에 한 모든 일을 일기 형태로 그대로 기록하게 되면, 그 일기가 지저분하고 압도적인 종이 더미로 변한다는 점입니다. 그 중 대부분은 다음 버그에는 도움이 되지 않는 특정 버그에 대한 세부 사항에 불과합니다.

CODESKILL은 바로 그 지저분한 종이 더미를 로봇이 실제로 활용할 수 있는 세련되고 체계적인 사용 설명서로 변환하도록 설계된 새로운 시스템입니다.

다음은 이를 간단한 개념으로 분해한 작동 방식입니다:

1. 문제: 노이즈는 너무 많고 신호는 너무 부족함

현재 로봇이 과거의 실수에서 배우려 할 때, 종종 경직된 규칙이나 고정된 프롬프트 (예: "Y 를 보이면 항상 X 를 하라"라고 말하는 교사) 에 의존합니다. 하지만 소프트웨어 공학은 복잡합니다. 때로는 로봇이 우연히 성공하기도 하고, 때로는 기이한 이유로 실패하기도 합니다. 무엇이 재사용 가능한 기술 (예: "고장 난 인터넷 연결을 수정하는 방법") 이고 무엇이 일회성 우연 (예: "이 파일의 특정 오타를 수정하는 방법") 인지를 구분하기 어렵습니다.

기존 방법들은 책을 정리하지 않고 바닥에 그냥 쌓아두는 사서와 같습니다. 다음 독자에게 실제로 유용한 책이 무엇인지 알지 못합니다.

2. 해결책: '자기 진화하는 사서'

CODESKILL 은 로봇의 지식 베이스 (이를 **기술 은행 (Skill Bank)**이라고 함) 을 관리하는 똑똑한 사서 역할을 합니다. 단순한 원본 이야기를 저장하는 대신 다음과 같은 작업을 수행합니다:

  • 기술 추출: 로봇의 과거 여정을 읽어 다양한 상황에 적용 가능한 일반 규칙인 '황금 알'을 찾아냅니다.
  • 기술 진화: 로봇이 기술을 시도했다가 실패하더라도, 사서는 그 기술을 단순히 폐기하지 않습니다. 대신 사용 설명서를 업데이트하여 "아, 이 규칙은 작동하지만, 이 특정 오류 메시지를 보이면 예외다"라고 명시합니다.
  • 도서관 유지 관리: 도서관을 지속적으로 점검합니다. 두 권의 책이 같은 내용을 담고 있다면 이를 병합하고, 너무 구체적이거나 쓸모없는 책이라면 폐기합니다. 이를 통해 도서관을 작고 효율적으로 유지합니다.

3. 학습 방식: '코치와 선수'

CODESKILL 의 가장 독특한 점은 좋은 사서가 되는 방법을 학습하는 방식입니다. 단순히 추측하는 것이 아니라, '동결된' 선수 (코딩 로봇) 로부터 피드백을 받습니다.

  • 선수: 실제 문제를 해결하는 코딩 로봇입니다. 두뇌를 변경하지 않고 단순히 과제를 해결하려 노력합니다.
  • 코치 (CODESKILL): 기술을 관리하는 시스템입니다.
  • 훈련 루프:
    1. 코치는 과거 경험을 바탕으로 새로운 규칙을 생성합니다.
    2. 코치는 이 규칙을 선수에게 전달합니다.
    3. 테스트: 선수가 이 새로운 규칙으로 문제를 더 빠르고 잘 해결할 수 있는가?
    4. 보상: 선수가 성공하면 코치는 높은 점수를 받고, 실패하면 낮은 점수를 받습니다.
    5. 코치는 이 점수를 바탕으로 학습합니다: "좋아, 다음에는 더 나은 규칙을 작성해야겠다."

이 논문은 이를 **강화 학습 (Reinforcement Learning)**이라고 부릅니다. 개를 훈련하는 것과 같습니다. 개에게 무엇을 해야 하는지 단순히 말해주는 것이 아니라, 올바르게 행동했을 때 간식을 주어 그 행동을 반복하도록 학습시킵니다.

4. 두 가지 유형의 기술

CODESKILL 은 지식을 두 가지 유형의 지시 사항으로 조직화합니다. 마치 두 섹션으로 나뉜 요리책과 같습니다:

  • 작업 수준 기술 (큰 그림): 고수준 전략입니다. 예시: "자바 빌드가 실패하는 것을 보이면, 먼저 인터넷 연결을 확인한 다음 종속성을 확인하세요."
  • 이벤트 주도 기술 (빠른 수정): 특정 순간에 대한 반응입니다. 예시: "'파일을 찾을 수 없음'이라는 오류가 표시되면 즉시 파일 경로에 오타가 있는지 확인하세요."

5. 결과: 더 똑똑하고 빠른 로봇

연구진은 코딩 로봇이 실제 세계의 소프트웨어 문제를 해결해야 하는 세 가지 다른 '시험실' (벤치마크) 에서 CODESKILL 을 테스트했습니다.

  • 기준선: 사용 설명서가 없는 로봇 (단순한 원시 지능).
  • 경쟁자: 과거 작업을 기억하는 기존 방법 (일기 읽기나 고정 프롬프트 사용 등) 을 사용하는 로봇들.
  • CODESKILL: 자기 진화하는 기술 라이브러리를 사용하는 로봇.

결과:
CODESKILL 로봇은 다른 로봇들보다 훨씬 더 많은 문제를 해결했습니다.

  • 기술이 전혀 없는 상태에 비해 성공률이 약 9.7% 향상되었습니다.
  • 기존에 존재하던 가장 강력한 '기억' 방법들을 약 4% 능가했습니다.
  • 또한 더 나은 지시 사항을 따랐기 때문에 해결에 필요한 단계가 줄어들어 문제를 더 빠르게 해결했습니다.

결론

CODESKILL 은 코딩 로봇에게 학습하는 법을 배우는 것을 가르치는 프레임워크입니다. 일어난 모든 일을 단순히 암기하는 대신, 그 경험들을 압축되고 진화하는 규칙 집합으로 정제하는 법을 학습합니다. 이는 팀이 실제로 경기를 이겼는지에 따라 플레이북을 지속적으로 정제하는 코치처럼 작동하여, 로봇이 처음부터 다시 프로그래밍할 필요 없이 시간이 지남에 따라 더 나아지고 효율적으로 만들어 줍니다.

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →