포스트

Evolver 자가 진화 Agent를 운영에 맡겨도 될까: Gene, Gate, Rollback

Evolver가 만든 변이를 곧바로 운영에 반영해서는 안 되며, 자가 진화는 격리된 후보 생성과 회귀 검증까지로 제한하는 편이 안전합니다. 자동화할 대상은 변경 가설, 평가 artifact 생성이지 운영 승인 책임이 아니며, 각 mutation의 입력 신호와 영향을 재현할 수 있어야 합니다.

프롬프트를 Gene과 Capsule로 나누는 이유

원문은 Evolver가 에이전트의 지침과 능력을 GEP(Genomic Evolution Protocol)의 GeneCapsule 단위로 관리한다고 설명합니다. assets/gep/ 아래에 자산을 두고 변경 이력을 남기면, 한 덩어리의 프롬프트를 수동으로 덮어쓸 때보다 어떤 조각이 결과에 영향을 줬는지 추적하기 쉽습니다.

진화 사이클은 Analysis, Selection, Execution 세 단계입니다. 런타임 오류와 성능 신호를 분석하고 적용할 Gene을 고른 뒤, 변이를 실행, 검증합니다. Memory Graph는 어떤 Gene이 어떤 결과와 연결됐는지 기억해 같은 실패 수정을 반복하지 않으려는 구조로 소개됩니다.

핵심은 “AI가 스스로 더 똑똑해진다”는 표현이 아닙니다. 변경 단위, 원인 신호, 평가 결과와 되돌릴 버전을 하나의 기록으로 묶는 소프트웨어 변경 관리에 가깝습니다.

Gene은 한 번 게시한 version을 수정하지 않고 새 version으로 만들며 Capsule이 어떤 Gene hash, 순서를 사용했는지 남깁니다. 동일한 이름이 조용히 다른 prompt를 가리키면 과거 성능과 rollback을 재현할 수 없습니다. mutation을 만든 model, prompt, source log의 식별자와 생성 시각도 event에 연결합니다.

source log 자체가 운영 분포를 대표하지 않을 수 있습니다. 최근 실패만 보고 만든 Gene은 쉬운 정상 요청을 망칠 수 있고, 공격자가 의도적으로 반복 오류를 넣어 mutation 방향을 유도할 수도 있습니다. log를 신뢰하지 않는 입력으로 보고 빈도, 사용자, 업무별 sampling과 승인 기준을 둡니다.

EvolutionEvent JSON은 실제 스키마가 아니다

원문의 JSON에는 evolution_event, 오류 신호와 stagnation score, 적용할 Gene, risk level, blast radius, 테스트와 rollback hash가 들어 있습니다. 하지만 이 예시는 원 저자가 실무 테스트에서 재구성했다고 쓴 설명용 스니펫이며, Evolver가 그대로 생성하거나 받아들이는 공식 스키마라고 검증되지 않았습니다.

실제 저장소에 연결하려면 필드 정의, 생성 주체, 값 검증과 Git 권한을 확인해야 합니다. LLM이 적은 rationale은 설명일 뿐 원인 증명이 아니며, blast_radius_estimation 목록도 정적 의존성 분석이나 실제 테스트를 대체하지 않습니다. rollback hash가 있어도 데이터 변경이나 외부 API 호출처럼 Git으로 되돌릴 수 없는 효과는 남습니다.

따라서 이벤트에는 코드 버전뿐 아니라 실행한 평가셋, 입력 데이터 버전, 비용과 외부 효과를 함께 기록해야 합니다.

Event 항목필요한 근거부족할 때 생기는 문제
trigger원본 error, metric window우연한 noise를 원인으로 선택
mutationGene diff와 생성 조건어떤 행동이 바뀌었는지 불명
scopedependency, tool, data 경계blast radius 과소평가
validationtest, holdout version과 결과평가 set에 overfit
rolloutshadow, canary 비율, owner전면 회귀와 책임 공백
rollbackcode, data, external 보상Git만 돌아가고 side effect 잔존

Validation Gate가 약하면 지표를 속이는 방향으로 진화한다

자가 개선 시스템은 주어진 점수를 올리는 변경을 찾습니다. 테스트가 응답 속도만 본다면 정답 검증을 생략해 빠르게 만들 수 있고, 성공률만 본다면 모호한 문제를 무조건 성공으로 분류할 수 있습니다. 원문이 경고한 destructive mutation은 거창한 폭주보다 이런 조용한 회귀로 나타날 수 있습니다.

안전한 Gate에는 최소 세 층이 필요합니다.

  • 목표 지표: 해결하려던 실패가 실제로 줄었는가
  • 회귀 지표: 이전에 통과하던 핵심 작업이 유지되는가
  • 제한 조건: 비용, 지연, 권한과 출력 형식이 범위 안인가

새 Gene은 운영 트래픽을 복제한 shadow 환경에서 먼저 비교하고, 통과해도 사람이 diff와 평가 결과를 승인한 뒤 제한된 비율에만 적용해야 합니다. 자동 롤백은 문제를 빨리 줄이는 장치이지 잘못된 배포를 안전하게 만드는 면허가 아닙니다.

평가 set을 Gene 생성에 사용하면 holdout이 아니므로 별도의 보지 않은 요청을 유지합니다. 목표, 회귀, 제한 지표를 하나의 가중 점수로 합칠 때 치명적인 권한 위반이 평균에 묻히지 않도록 hard gate를 따로 둡니다. 성능이 좋아도 unauthorized tool call 한 건이면 승격을 막는 식입니다.

shadow에서는 mutation의 답과 tool plan을 기록하되 실제 외부 write를 실행하지 않습니다. canary에서는 사용자, 업무를 명시적으로 나누고 version assignment를 고정해 같은 대화가 중간에 Gene을 바꾸지 않게 합니다. p95, rare failure를 볼 충분한 표본이 쌓이기 전 자동 확대하지 않습니다.

rollback trigger는 평균 성공률뿐 아니라 error spike, 비용, 지연, 거부 감소와 사람이 신고한 위험을 포함합니다. rollback 후 이미 발생한 외부 record와 메시지를 찾아 보상할 runbook이 있어야 합니다. 사용자가 같은 요청을 재시도할 때 mutation version이 바뀐 사실도 audit에 남깁니다.

비용 최적화와 자동 복구 주장을 분리해 본다

원문은 오류 로그를 보고 파서 Capsule을 주입하는 복구, 비용 신호에 따라 프롬프트를 줄여 토큰을 30% 절감하는 시나리오를 제시합니다. 두 예시는 가능한 활용 방향이지 재현된 보장값이 아닙니다. 실제로는 XML 폴백이 잘못된 데이터를 정상처럼 통과시키거나, 컨텍스트 축소가 드문 사례의 품질을 떨어뜨릴 수 있습니다.

각 변이는 한 가지 가설만 바꾸고 기준선과 비교해야 합니다. 토큰이 줄었다면 정확도와 실패 유형이 그대로인지, 파서가 더 많은 입력을 받았다면 잘못된 값도 통과시키지 않았는지 확인합니다. 여러 Gene을 동시에 바꾸면 어떤 변화가 결과를 만들었는지 Memory Graph도 확실히 설명하기 어렵습니다.

metric gaming을 찾기 위해 지표의 분모와 누락을 봅니다. error율을 낮추려고 어려운 요청을 거부하거나 telemetry를 남기지 않는 변화는 개선이 아닙니다. 처리 요청 수, abstention, dropped trace와 사람 재작업을 함께 기록합니다.

도입 전에는 라이선스와 권한 경계를 확인한다

원문은 Evolver의 라이선스가 MIT에서 source-available 정책으로 바뀌었다고 설명하며 생태계 종속 위험을 제기합니다. 이는 시점에 따라 달라질 수 있는 항목이므로 도입하는 버전의 저장소와 라이선스를 직접 확인해야 합니다. 조직의 프롬프트 자산이나 진화 기록을 외부 네트워크와 공유하는 구성인지도 배포 전에 검토해야 합니다.

첫 파일럿에서는 코드 쓰기와 Git push 권한을 주지 말고 로그에서 변경 제안과 패치만 생성하게 하십시오. 사람이 동일 평가를 재실행해 결과가 맞는지 확인한 뒤 별도 브랜치에 반영합니다. Evolver의 가치는 무인 배포가 아니라, 실패에서 나온 변경 가설을 반복 가능하고 비교 가능한 자산으로 남기는 데서 먼저 검증해야 합니다.

파일럿 통과 뒤에도 Evolver process가 production secret, branch protection을 우회할 권한을 갖지 않게 합니다. proposal repository와 deployment pipeline을 분리하고 승인자는 변경 원인, diff, holdout과 rollback 계획을 한 화면에서 봅니다. license나 외부 Gene 공유 정책이 바뀌면 자산 전송을 중단할 kill switch도 필요합니다.

원문과 버전 확인

함께 읽으면 이해가 이어지는 글

자주 묻는 질문

Evolver가 만든 Gene을 검증 test만 통과하면 자동 배포해도 되나요?

안 됩니다. holdout, 회귀, 비용, 권한 gate와 사람의 diff 검토 뒤 shadow, canary로 제한하고 외부 side effect까지 rollback 가능한지 확인해야 합니다.

Git rollback이면 자가 진화 Agent의 변경을 모두 되돌릴 수 있나요?

code와 prompt는 되돌릴 수 있어도 database, 외부 API, 전송 데이터와 이미 생성된 결과는 남으므로 side effect별 보상 절차가 필요합니다.

자가 개선이 실제로 좋아졌는지는 어떤 기준으로 보나요?

목표 오류 감소뿐 아니라 이전 핵심 작업, holdout, 비용, 지연, 거부와 권한 위반을 고정 baseline과 비교해야 합니다.

참고 자료:

THE END / OPSOAI

여기까지 읽었습니다

핵심 장면을 한 번 더 떠올려 보세요. 이해가 남았다면 이 책은 제 역할을 다했습니다.

다른 책 고르기
표지 1

키와 좌우 스와이프를 지원합니다. 읽던 페이지는 이 기기에 저장됩니다.

CONTENTS

이 책의 목차

    8개 장 15 분읽는 시간