까마귀의 철사 구부리기가 LLM 코딩 에이전트의 부재를 설명하는 이유
Why a crow bending wire explains what's missing in LLM coding agents
핵심 요약
LLM 에이전트에게 방대한 프롬프트 대신 물리적 피드백 루프를 제공해야 문제 해결 능력이 향상된다는 통찰.
- 유전적 병목 현상 — 생물은 모든 상황을 DNA에 저장하지 않고 발견의 과정을 진화시킴
- 나방 vs 까마귀 — 하드코딩된 반사보다 환경과 상호작용하는 탐색 루프가 중요함
- 피드백 루프의 힘 — 컴파일러 오류나 테스트 러너가 프롬프트보다 에이전트 교정에 효과적임
- 시스템 아키텍처 — 에이전트에게 제약을 강요하는 대신 현실과 부딪히며 학습하는 환경을 구축해야 함
최근에 뉴칼레도니아 까마귀 '베티'에 대해 생각해 봤다. 2002년 옥스퍼드에서 이 녀석한테 곧게 펴진 철사 조각이랑 깊은 통 속에 든 먹이를 줬거든. 훈련 같은 건 하나도 안 받았는데, 철사를 갈고리 모양으로 구부려서 먹이를 낚아채더라. 자연 상태에서 철사를 본 적 있는 까마귀 조상은 단 한 마리도 없었을 텐데 말이야.
콜드 스프링 하버의 앤서니 자도르는 이걸 '유전적 병목 현상(Genomic Bottleneck)'이라고 불렀어. 까마귀 게놈은 대략 12억 개의 염기쌍(~300 MB, CD-ROM 한 장보다 작음)인데, 그 안에 10억 개가 넘는 뉴런을 연결하는 설계도가 들어있다는 거지. DNA에 철사를 구부리는 법을 일일이 저장할 수는 없다는 소리야.
대신 진화는 정반대되는 두 가지 본능을 만들어냈어. 나방은 달빛에 맞춰 작동하는 하드코딩된 비행 반사(주광성)를 가지고 있는데, 현관 조명 같은 점광원을 만나면 죽음의 나선 비행을 하다가 타 죽잖아. 반면에 까마귀는 능동적인 탐색 루프를 가지고 있어. 막대기를 집어 들고, 틈새를 쑤셔보고, 물리적인 지렛대 원리를 테스트하는 거지.
지금 대부분의 AI 코딩 환경은 사실상 10조 개의 파라미터를 가진 나방을 키우는 거나 다름없어. 가중치만 잔뜩 늘려놓고, 정작 탐색 루프나 고통 반사는 하나도 안 넣어줬거든. 우리가 코딩 에이전트한테 20 KB짜리 Unix Makefile 루프랑 부정적인 고통 마커를 줬더니, 갑자기 문제 해결 능력이 튀어나오더라.
프롬프트 규칙을 덕지덕지 붙일수록 에이전트가 더 맛이 가버리고, 오히려 작은 기계적 피드백 루프 하나 넣어주는 게 환각 현상을 고쳐준다는 거, 다들 눈치챘냐?

