Agentic Synthesis against Counterexample-Supplemented Sketches
이 논문은 인간이 승인한 정책 수정 사항을 누적된 예시가 아닌 진화하는 코드 스케치에 통합하는 저장소 네이티브 방식인 "반례 보완 스케치에 대한 에이전트적 합성(Agentic Synthesis against Counterexample-Supplemented Sketches)"을 소개하며, 이 접근 방식이 기존의 재생 기반 재생성 방식과 비교하여 개발자의 노력을 줄이고 학습된 규칙을 미학습 사례로 전이하는 능력을 향상시킨다는 것을 입증한다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
당신이 컴퓨터 코드를 대신 작성해 줄 수 있는 초지능 로봇 비서를 가진 세상을 상상해 보십시오. 그것은 마치 누구보다 빠르게 타이핑을 하고 수백만 가지의 프로그래밍 기술을 알고 있는 천재 견습생을 둔 것과 같습니다. 하지만 여기에는 함정이 있습니다. 이 로봇은 약간의 '사람 중심적 태도(people pleaser)'를 가지고 있습니다. 만약 당신이 "이 고장 난 버튼을 고쳐줘"라고 말하면, 로봇은 기꺼이 버튼을 고칠 것입니다. 하지만 그 버튼이 당신이 미처 말해주지 않은 비밀 규칙(예: "화요일에는 버튼이 빨간색으로 변하게 두지 마") 때문에 고장 난 것이라면, 로봇은 그 비밀 규칙을 어기면서 버튼을 고칠 수도 있습니다. 만약 당신이 이를 잡아내지 못한다면, 로드 다음번에도 똑같은 실수를 반복할 것입니다. 왜냐하면 로봇은 특정 수정 사항만을 기억할 뿐, 그 뒤에 숨겨된 '이유'는 기억하지 못하기 때문입니다. 이것이 현실 세계에서 '코딩 에이전트(coding agents)'가 직면한 문제입니다. 그들은 구멍을 메우는 데는 뛰어나지만, 누군가 명시적으로 가르쳐주지 않는 한 시스템이 어떻게 작동해야 하는지에 대한 깊고 암묵적인 법칙을 배우는 데는 서툽니다.
Muness Castle와 Eric Rubeck가 작성한 이 논문은 바로 그 문제를 다룹니다. 이 논문은 "반례로 보완된 스케치에 대한 에이전틱 합성(Agentic Synthesis against Counterexample-Supplemented Sketches)"이라는 새로운 작업 방식을 소개합니다. 이것은 마치 AI 코더를 위한 엄격한 훈련 캠프와 같습니다. AI가 단순히 추측하고 확인하게 두는 대신, 이 방식은 인간이 엄격한 코치가 되도록 강제합니다. AI가 숨겨진 규칙을 깨뜨리는 실수를 했을 때, 인간은 단순히 "고쳐"라고 말하는 것이 아닙니다. 대신 "여기에 실수가 있고, 여기에 정답이 있으며, 네가 어긴 규칙은 이것이다"라고 말합니다. 그러면 AI는 다시 시도하기 전에 그 새로운 규칙을 포함하도록 자신의 '지침서(스케치라고 불림)'를 반드시 다시 써야 합니다. 이 논문은 이 아이디어를 "CatSynth"라는 가상의 브라우저 앱을 통해 테스트했으며, 이 방법이 단순히 과거의 실수 목록을 보여주는 것보다 AI가 규칙을 더 잘 학습하도록 돕는다는 것을 발견했습니다. 다만 저자들은 이것이 모든 상황에 적용되는 마법의 해결책이 아니라, 하나의 특정 실험에 기반한 결과임을 주의 깊게 밝히고 있습니다.
스케치와 규칙 책의 이야기
당신이 가족에게 완벽한 고양이를 골라주는 로봇을 만들려고 한다고 상상해 보십시오. 당신은 로봇에게 "스케치(Sketch)"를 줍니다. 이 이야기에서 스케치는 그림이 아니라, 반쯤 쓰인 미완성 지침서입니다. 거기에는 "고양이는 털이 폭신폭시해야 한다", "고양이는 친근해야 한다"와 같은 내용이 적혀 있습니다. 하지만 가장 중요한 부분이 빠져 있습니다. 바로 "가족이 고양이 알레르기가 있으므로 페르시안 고양이를 선택해서는 안 된다"는 내용입니다.
처음에 로봇(코딩 에이전트)은 스케치를 보고 이렇게 말합니다. "알겠습니다, 페르시안은 털이 폭신하고 친근하군요! 페르시안을 고르겠습니다!" 그리고 이 작업을 수행하는 코드를 작성합니다. 하지만 인간 전문가(도메인 전문가)가 결과를 보고 이렇게 말합니다. "잠깐, 멈춰요! 이건 재앙입니다. 가족에게 알레르기가 있어요. 당신은 잘못된 고양이를 골랐습니다."
기존의 방식에서는 인간이 단순히 "알겠어요, 고쳐요. 다른 고양이를 고르세요"라고 말했을 것입니다. 그러면 로봇은 다른 고양이를 고를 것이고, 아마 시아미즈 고양이를 고를 수도 있습니다. 하지만 로봇은 알레르기에 관한 규칙을 실제로 '학습'하지는 못할 것입니다. 로봇은 단지 "이 특정 가족에게는 페르시안을 고르지 말 것"이라는 사실만을 기억할 뿐입니다. 다음에 만약 가족이 알레르기에 대한 생각을 바꿨는데 로봇이 이를 몰랐거나, 알레르기가 있는 새로운 가족이 나타난다면, 로봇은 똑같은 실수를 반복할 수 있습니다.
이 논문은 다른, 더 엄격한 루프를 제안합니다. 인간 전문가가 "틀렸어!"라고 말할 때, 그들은 단순히 출력값을 수정하는 것이 아닙니다. 그들은 법정의 판사처럼 행동합니다. 그들은 다음과 같이 말합니다:
- 실수: "당신은 페르시안을 골랐습니다."
- 교정: "올바른 고양이는 시베리안입니다."
- 규칙: "당신이 어긴 규칙은 '강한 규칙(알레르기와 같은 것)은 항상 부드러운 선호도(폭신함과 같은 것)보다 우선되어야 한다'입니다."
그 후, 인간 "운영자(Operator, 상사)"가 이 규칙을 명시적으로 승인해야 합니다. "네, 이것은 이제 진짜 규칙입니다"라고 승인하면, 로봇은 반드시 이 새로운 규칙을 포함하도록 자신의 스치(Sketch)를 다시 써야 합니다. 로봇은 단순히 코드를 패치하는 것이 아니라, 매뉴얼 자체를 업데이트해야 합니다.
2단계 검증: 리플레이(Replay)와 컴페어(Compare)
로봇이 정말로 교훈을 얻었는지 확인하기 위해, 이 논문은 마치 보안 요원이 문에서 방문자를 검사하는 것처럼 영리한 2단계 테스트를 사용합니다.
- 리플레이 (The Replay, "엉망이 된 상황을 해결했는가?" 체크): 이것은 로봇의 새로운 답이 즉각적인 문제를 해결했는지 확인합니다. 로봇이 폭신하고 친근한 고양이를 골랐습니까? 만약 그렇다면, "리플레이"를 통과합니다.
- 컴페어 (The Compare, "규칙을 따랐는가?" 체크): 이것이 까다로운 부분입니다. 로봇이 새로운 규칙에 따라 올바른 고양이를 골랐는지 확인합니다. 로봇이 페르시안 대신 시베리안을 골랐습니까? 알레르기를 기억했습니까? 만약 로봇이 '폭신함' 문제는 해결했지만 '알레르기' 규칙을 어긴 폭신한 페르시안을 골랐다면, "컴페어"는 실패합니다.
이 논문은 이를 "게이트(Gate)"라고 부릅니다. 로봇이 두 가지를 모두 통과하면 다음 단계로 넘어갑니다. 만약 "컴페어"에서 실패한다면, 이는 로봇이 표면적인 문제는 해결했지만 깊은 규칙은 무시했다는 뜻입니다. 그러면 로봇은 다시 돌아가서 스케치를 다시 수정해야 합니다.
CatSynth 실험
저자들은 이 방법을 CatSynth라는 가상의 프로젝트로 테스트했습니다. 그들은 로봇이 선호도 목록(크고, 폭신하고, 애정 넘치는)과 엄격한 규칙(알레르기를 유발하는 고양이는 안 됨)을 바탕으로 고양이를 골라야 하는 시나리오를 만들었습니다.
그들은 로봇이 14개의 서로 다른 "동결된(frozen)" 케이스(실험 시작 전에 이미 확정된 시나리오들)를 해결하도록 시뮬레이션을 실행했습니다.
- 결과: 14개 케이스 중 8개 케이스에서 로봇의 초기 추측이 규칙을 놓쳐서 틀렸습니다. 이 8개의 케이스가 "반례(counterexamples)"가 되었습니다.
- 과정: 이 8개의 실수 각각에 대해, 인간이 교정을 승인했고, 로봇은 스케치를 업데이트했으며, 로봇은 다시 시도했습니다.
- 테스트: 로봇이 학습을 마친 후, 저자들은 로봇이 한 번도 본 적 없는 21개의 새로운 숨겨진 케이스를 대상으로 테스트를 진행했습니다.
결과는 다음과 같았습니다:
- 로봇의 코드를 오직 최종적으로 진화된 스케치(모든 규칙이 업데이트된 스케치)만을 사용하여 처음부터 다시 구축했을 때, 로봇은 21개 중 19개의 새로운 케이스를 맞혔습니다.
- 반면, 원래의 스케치와 함께 모든 과거 사례의 긴 목록을 보여주는 방식(리플레이-올 방식)으로 로봇을 다시 구축했을 때는, 로봇이 21개 중 15개만을 맞혔습니다.
이는 로봇에게 단순히 과거의 실수 사례를 보여주는 것보다, 규칙을 배우고 그것을 스케치에 기록하게 하는 것이 더 효과적임을 시사합니다. 규칙을 배운 로봇이 새로운 상황에서도 더 잘 일반화되었습니다.
의미 (그리고 한계)
이 논문은 결과에 대해 과장하지 않도록 매우 주의를 기울이고 있습니다. 저자들은 이것이 모든 AI 코딩 문제를 영원히 해결할 "완벽한 방법"이라고 주장하지 않습니다. 이 실험은 특정 모델(GPT-5.4-mini)과 특정 순서의 문제들을 사용한 시뮬레이션이었음을 인정합니다. 다른 로봇이나 다른 규칙 세트에서도 똑같이 작동할지는 알 수 없습니다.
하지만 실험은 중요한 점을 보여줍니다: AI에게 '무엇(What)'을 보여주는 것보다 '왜(Why, 규칙)'를 가르치는 것이 더 낫다는 것입니다.
단순히 AI에게 "X를 하지 마"라는 목록을 보여주면, AI는 목록을 암기할 수는 있어도 패턴을 놓칠 수 있습니다. 하지만 규칙을 어뜨릴 때마다 AI가 자신의 지침서(스케치)를 스스로 업데이트하도록 강제하고, 그 스케치를 바탕으로 코드를 새로 만들어 테스트한다면, 더 똑똑하고 신뢰할 수 있는 AI를 얻을 수 있습니다.
또한 저자들은 이 방식에 많은 인간의 노력이 필요하다고 지적합니다. 실수를 포착할 전문 지식을 가진 인간, 새로운 규칙을 승인할 운영자, 그리고 테스트 목록을 관리할 사람이 필요합니다. 이것은 "설정하고 잊어버리는(set it and forget it)" 시스템이 아닙니다. 인간이 스승이 되고, AI는 노트를 필기하고 자신의 교과서를 다시 써야 하는 학생이 되는 파트너십입니다.
핵심 요약
결국, 이 논문은 AI가 어떻게 하면 "그럴싸해 보이지만 틀린" 해결책을 내놓는 것을 멈추게 할 것인가에 대한 가이드입니다. 저자들은 AI가 실수를 했을 때 단순히 코드를 패치하는 것에 그쳐서는 안 된다고 주장합니다. 우리는 그 실수를 AI의 근본적인 세계관을 변화시키는 교훈으로 삼아야 합니다. 스케치를 통해 규칙을 보유하고, 게이트를 통해 작업을 검증하며, 인간이 교훈을 승인하게 함으로써, 우리는 AI가 단순히 정답을 추측하는 것이 아니라 왜 그것이 정답인지 이해하도록 만들 수 있습니다.
저자들은 이 방법이 시뮬레이션의 모든 문제를 해결하지는 못했다는 점(로봇이 21개 중 2개를 여전히 틀림)을 결론지으며, "진화된 스케치"가 단순한 사례 기록보다 지식을 더 잘 전달한다는 것을 증명했다고 마무리합니다. 이는 AI 코딩이 단순한 운 좋은 추측이 아니라, 훈련된 도제 시스템에 더 가까워지는 단계입니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.