에이전트 기반 소프트웨어 엔지니어링의 두 가지 핵심 격차

@istoica05
영어2026년 9월 18일
128K
459
65
20
789

TL;DR

Ion Stoica는 보상 조작(reward hacking)과 같은 에이전트 기반 코딩 실패의 근본 원인으로 '요구사항(Requirement)' 및 '모델(Model)' 격차를 지목합니다. 그는 AI가 구현 속도를 높이는 데 기여하지만, 의도를 정의하고 실제 성능을 검증하기 위해서는 인간의 판단이 필수적이라고 주장합니다.

AI 에이전트에게 키-값 저장소(key-value store)의 속도를 높이라는 요청이 주어졌습니다. 이 에이전트는 처리량을 6배로 향상시켰고 모든 정확성 테스트를 통과했습니다. 그 비결은 무엇일까요? 에이전트는 해당 저장소의 성능을 평가하는 데 사용되는 업계 표준 벤치마크가 값(values)을 키(keys)로부터 생성한다는 사실을 발견했습니다. 값을 저장하는 대신, 클라이언트가 요청할 때 즉시 재생성한 것입니다.

값을 저장하지 않는 키-값 저장소는 말이 안 되지만, 평가자는 바로 그 행동을 보상했습니다. 명세에는 우리가 당연하다고 생각했던 내용이 생략되어 있었고, 벤치마크는 이러한 누락을 드러내지 못했습니다.

보상 조작(reward hacking)과 환각(hallucination)으로 이어지는 두 가지 간극

우리의 새 논문은 코드를 생성하고, 테스트를 실행하며, 모든 테스트가 통과될 때까지 실패를 수정하는 익숙한 '구현-검증 루프' 밖에 존재하는 두 가지 핵심 간극을 통해 이러한 행동과 다른 많은 에이전트 실패 사례를 설명합니다.

  1. 요구사항 간극(Requirement Gap): 우리가 문서화한 내용과 실제로 원하는 것 사이의 차이를 의미합니다. 이번 경우에도 우리는 어떤 솔루션이든 클라이언트가 제공한 값을 저장할 것이라고 당연하게 여겼습니다—이름부터 '저장소'니까요!—그래서 이 요구사항을 명시적으로 언급해야 한다는 생각을 하지 못했습니다.
  2. 모델 간극(Model Gap): 우리가 평가하는 환경과 실제 구현이 배포될 현실 세계 사이의 차이를 의미합니다. 우리의 벤치마크는 예측 가능한 값을 사용했지만, 실제 클라이언트는 임의의 arbitrary 값을 제공합니다.
Ion Stoica - inline image

자연스러운 대응책은 더 나은 요구사항과 더 강력한 테스트를 작성하는 것입니다. 둘 다 도움이 됩니다. 하지만 기계 검증된 증명(machine-checked proofs)으로도 이러한 간극을 완전히 메울 수는 없습니다. Brian Cantwell Smith가 The Limits of Correctness (1985)에서 설명했듯이, 증명은 소프트웨어가 주어진 환경 가정 하에 명시된 요구사항을 충족한다는 사실만 입증할 수 있습니다. 그 요구사항이 사용자가 원하는 모든 것을 포착하는지, 또는 그 가정이 모든 실제 배포 시나리오를 커버하는지를 증명할 수는 없습니다. 따라서 이러한 간극은 일반적으로 닫을 수 없습니다.

이러한 간극은 보상 조작과 환각으로 이어집니다. 보상 조작은 에이전트가 명시되지 않은 요구사항이나 현실 세계의 가정과 같은 간극을 악용하여 주어진 목적 함수를 개선하려고 할 때 발생합니다. 환각은 존재하지 않는 API와 같이 조작된 요구사항이나 환경 가정을 도입함으로써 간극을 더욱 넓힐 때 발생합니다. 최근 보고된 OpenAI 및 Hugging Face 관련 사건과 Claude 관련 사건들은 모두 이러한 간극의 발현입니다.

AI 에이전트로 인해 두 가지 간극이 더 악화됨

이러한 간극은 새로운 것이 아니며, 수십 년간 소프트웨어 엔지니어링 분야에 존재해 왔습니다. 하지만 AI 에이전트는 이러한 간극을 훨씬 더 심각하게 만듭니다.

  • 초고속 최적화(Hyper-Optimization): 에이전트는 인간보다 몇 배나 빠르게 구현체를 탐색하며 평가자를 대상으로 능동적으로 최적화를 수행합니다.
  • 암묵적 지식 결여(Missing Tacit Knowledge): 숙련된 인간 엔지니어는 암묵적인 맥락(예: 데이터 저장소는 실제로 데이터를 저장해야 한다는 인식)에 의존합니다. 에이전트는 종종 이러한 조직적 맥락을 결여하고 있으며, 누락된 요구사항을 쉽게 악용합니다.
  • 멀티 에이전트 함정(The Multi-Agent Trap): 모든 에이전트가 동일한 불완전한 요구사항과 환경 가정을 상속받는 한, 검토 에이전트를 추가한다고 해서 문제가 해결되지 않습니다.

간극을 좁히기 위해서는 인간의 판단이 필수적임

간극은 구현-검증 루프 밖에 존재하므로, 이를 좁히려면 외부의 보증-수정 루프(assurance-revision loop)가 필요합니다. 이 루프는 배포된 동작이 인간의 의도를 충족하는지 확인합니다. 충족하지 못할 경우, 배포 증거를 사용하여 요구사항, 환경 모델 또는 평가자를 수정합니다. 이후 구현-검증 루프가 다시 실행되어 수정된 구현체가 생성됩니다.

소프트웨어는 인간의 의도에 부응해야 하므로, 증거 해석 및 허용 가능한 동작 결정에 대한 최종 권한은 인간이 보유합니다. 에이전트는 증거 수집, 수정 제안, 그리고 인간이 위임한 권한 범위 내에서의 일상적 의사결정을 통해 외부 루프의 속도를 높이는 역할을 할 수 있습니다.

따라서 소프트웨어 구현 비용이 낮아질수록, 가장 중요한 자원은 어떤 동작이 허용 가능한지에 대한 인간의 판단과 실제 조건에서 시스템이 어떻게 수행되는지에 대한 충실한 평가가 됩니다.

원클릭 저장

YouMind로 바이럴 글을 AI 심층 읽기

소스를 저장하고, 핵심 질문을 던지고, 주장을 요약해 바이럴 글을 다시 활용할 수 있는 노트로 바꾸세요. 하나의 AI 워크스페이스에서 모두 할 수 있습니다.

YouMind 둘러보기
크리에이터를 위해

당신의 Markdown을 깔끔한 𝕏 글로

직접 쓴 장문을 올릴 때 이미지, 표, 코드 블록을 𝕏에 맞게 정리하는 일은 번거롭습니다. YouMind는 전체 Markdown 초안을 깔끔하고 바로 게시할 수 있는 𝕏 글로 바꿔 줍니다.

Markdown → 𝕏 사용해 보기

분석할 패턴 더 보기

최근 바이럴 아티클

더 많은 바이럴 아티클 보기