열 살짜리 아이에게 지시 하나만 남겨두고 자리를 비워보라 — "점심 차리고, 부엌 치우고, 집 태우지 마." 요리 영상 세 편을 막 본 그 아이는 "다단계 요리 전략"을 선언하며 팬케이크 반죽을 천장에 발라버릴 것이다. 이것이 자율 AI의 핵심 문제를 한 장면으로 보여준다. 강력한 모델은 뒤집개를 거꾸로 쥔 채로도 레시피를 완벽하게 설명하며 자신만만하게 들릴 수 있다.
모델은 두뇌다. 자율 시스템에는 두뇌가 필요하지만, 그와 더불어 명확한 목표, 눈과 귀, 도구, 메모리, 경계, 피드백, 테스트, 그리고 소화기가 어디 있는지 아는 어른도 필요하다. 이것이 이 글 전체의 교훈을 압축한 문장이다:
자율성은 모델의 기능이 아니다. 시스템 아키텍처다.
이 페이지 하나에 논지가 다 들어 있다: 프롬프팅은 명령을 내리는 일이고, 아키텍팅은 마인드를 짓는 일이다. 미래는 더 나은 프롬프트가 아니라 더 나은 루프에 있다.
멘탈 모델: 닫힌 고리의 주방
챗봇은 레스토랑 평론가다. 오믈렛 만드는 법을 물으면 근사한 답을 써주고는 집으로 가버린다. 에이전트는 요리사다. 재료를 살피고, 팬을 고르고, 불이 너무 센 것을 알아채 줄이고, 맛을 보며 오믈렛이 실제로 완성될 때까지 계속 일한다. 그것이 바로 루프다.
목표 → 관찰 → 사고 → 행동 → 점검 → 학습 → 반복
중요한 단어는 사고가 아니라 루프다. 행동 없는 훌륭한 계획은 TED 강연에 불과하고, 관찰 없는 행동은 소파 밑에 낀 로봇 청소기이고, 교정 없는 관찰은 강도 사건을 4K로 촬영하기만 하는 감시 카메라다. 자율성은 시스템이 의도와 현실 사이를 반복해서 오갈 때에만 비로소 나타난다. (ReAct 계열 연구가 이를 공식화했다. 추론과 행동, 관찰을 서로 엮는 방식이 그 각각을 따로 쓰는 것보다 낫다.)
1 · 목표: 막연한 분위기가 아니라 목적지
"프로젝트 좀 도와줘"는 목표가 아니다. 비즈니스 캐주얼을 입은 안개일 뿐이다. 쓸모 있는 목표는 확인 가능한: "Upgrade this service from Java 11 to 17, preserve all public API behavior, pass the test suite, and open a PR explaining every breaking change." (번역: 이 서비스를 Java 11에서 17로 업그레이드하되, 모든 공개 API 동작을 그대로 유지하고, 테스트 스위트를 통과시키고, 모든 호환성 파괴 변경 사항을 설명하는 PR을 열어라.) 여기에는 원하는 결과, 제약 조건, 증거, 인도 조건이 모두 들어 있다.
에이전트는 그럴싸한 움직임을 만들어내는 데 탁월하다 — 파일 열두 개를 살펴보고, 변수 이름 두 개를 바꾸고, 노트 네 페이지를 만들어내면서, 정작 양말은 램프 위에 그대로 둔 채 생산성이라는 감정적 분위기만 조성한다. 그래서 실전에 투입되는 에이전트에는 목표-상태 계약: 성공 기준, 금지된 결과, 시간·비용 예산, 필요한 증거, 에스컬레이션 규칙, 그리고 "막혔다"의 정의. 계약이 정교할수록 상상 속 게임에서 이길 여지가 줄어든다.
2 · 인지(perception): 에이전트는 현실을 봐야 한다
요리사는 레시피만 들여다본다고 점심을 만들 수 없다. 냉장고를 열어야 한다. 에이전트에게는 파일, 데이터베이스, API, 로그, 페이지, 테스트 결과, 그리고 마지막 행동의 결과에 실시간으로 접근할 수 있어야 한다. 이것이 바로 그라운딩(grounding) — 이것이 없으면 에이전트는 현실을 다루는 게 아니라 현실에 대한 이야기를 다루는 셈이다. 이렇게 환각이 행동으로 이어진다. 챗봇이 파일명을 지어내는 건 짜증나는 일이지만, 에이전트가 파일명을 지어내고 실제 디렉터리를 삭제하는 건 법무팀과의 면담으로 이어지는 일이다.
가설은 값싸다. 증거는 비싸다. 이 둘을 결코 헷갈리지 마라.
그러므로 도구의 결과값, 로그, 검색 소스는 시스템 상태의 핵심 축으로 다뤄져야 한다 — 모델이 믿는 것, 도구가 반환한 것, 검증된 것, 그리고 아직 불확실한 것 — 이 넷은 서로 다른 것이다.
3 · 계획: 단계적으로 사고하되 첫 단계와 결혼하지 말라
냉장고에 계란은 있지만 우유는 없다. 우유 사기 → 섞기 → 조리 → 서빙, 이런 경직된 워크플로우는 곧 무너져 기획 회의를 요청하게 된다. 플래너는 이렇게 추론한다: "The goal is lunch, not obedience to Step 1. Scrambled eggs need no milk." (번역: 목표는 점심이지, 1단계에 대한 순종이 아니다. 스크램블드에그에는 우유가 필요 없다.) 이것이 바로 스크립트(알려진 경로를 따라가는 것)와 플래너 (알려진 목표까지 가는 경로를 탐색한다). 접촉 즉시 무너지는 거대한 계획을 고치는 처방은 바로 짧은 지평 계획(short-horizon planning)이다: 다음 구간만 계획하고, 실행하고, 관찰하고, 다시 계획한다 — 낯선 도시를 운전할 때 모든 회전을 미리 외우지 않는 것과 같은 방식이다.
강력한 자율성이란 미래 전체를 예측하는 것이 아니다. 미래가 협조를 거부할 때 회복하는 능력이다.
4 · 도구: 지능에는 손이 필요하다
모델은 볼트를 조이는 법을 설명할 수 있을 뿐, 실제로 조이는 것은 렌치다. 도구는 언어를 상태 변화로 바꾼다 — 검색, 코드, 데이터베이스 쓰기, 티켓, 배포. 도구야말로 에이전트를 경제적으로 흥미롭게 만드는 동시에 위험하게 만드는 요소다. 대략적인 법칙은 이렇다:
위험 = 불확실성 × 도구 위력 × 행동 범위
혼란에 빠진 모델이 계산기를 쥐고 있는 건 불편한 수준이다. 혼란에 빠진 모델이 운영 자격증명을 쥐고, 체인소를 물어 나르는 골든 리트리버처럼 근거 없는 자신감까지 갖췄다면 그건 곧 사고 보고서감이다. 그래서 도구 설계란 최소 권한 접근, 명시적 스키마, 검증, 샌드박싱, 속도 제한, 되돌릴 수 있고 멱등성을 갖춘 행동, 그리고 영향력 큰 단계에 대한 승인 관문을 뜻한다. 자율성은 이분법이 아니라 단계적이어야 한다: 자유롭게 둘러보되 이메일 전송 전에는 승인을 받고, 브랜치는 편집하되 운영 환경 병합은 안 된다.
5 · 메모리: 옳은 것을 기억하라
메모리가 없으면 매번 실행할 때마다 시트콤처럼 시작한다: "나는 누구지? 부엌은 왜 이렇게 연기가 자욱하지? 우리 이 팬케이크 전에 만난 적 있나?" 에이전트에게는 작업 메모리(지금 당장의 목표와 계획), 일화 메모리(과거 시도가 무엇을 했고 어떻게 실패했는지), 그리고 의미 메모리(안정적인 규칙, 관행, 정책)가 필요하다. 하지만 모든 것을 기억하는 건 1998년 이후로 케이블 하나 버린 적 없는 창고와 같다 — 잡음, 낡은 가정, 개인정보 노출, 비용. 좋은 메모리는 정선된다: 무엇을 남길지, 얼마나 오래, 누가 읽을 수 있는지, 언제 만료되는지. Reflexion 연구는 일화 메모리에 저장된 언어적 자기 피드백만으로도 에이전트가 개선되며, 가중치 변경이 전혀 필요 없다는 것을 보여줬다. 여기서 얻을 교훈은 "AI에게 일기를 쓰게 하라"가 아니다:
실패는 다음 시도를 바꿀 때에만 비로소 가치를 갖는다.
6 · 평가: 에이전트에게는 심판이 필요하다
우리의 어린 요리사는 새까맣게 탄 덩어리를 살펴보더니 이렇게 선언한다. "성공 — 오믈렛이 최대 구조적 확신을 달성했다." 그래서 에이전트는 자기 숙제를 스스로 채점하면 안 된다. 성공했는가, 계약을 만족했는가, 제약을 어겼는가, 증거는 충분한가, 재시도·수정·에스컬레이션·중단 중 무엇을 해야 하는가를 묻는 외부 평가자가 필요하다. 평가자는 생성자로부터 실질적으로 가능한 만큼 독립적인 편이 좋다 — 에이전트가 코드를 작성하면 test suite가 그것을 심판하고, 주장을 작성하면 citations가 그것을 심판한다. (OpenAI의 SWE-bench Verified 작업은 과업의 명확성과 채점 품질이 측정된 성능을 얼마나 크게 좌우하는지 보여주었다 — 채점자를 신뢰할 수 없다면 점수는 아무 의미가 없다.)
평가자가 생성자보다 더 중요한 경우가 많다. 생성은 가능성을 만들고, 평가는 방향을 만든다.
7 · 통제: 마력을 높이기 전에 브레이크를 달아라
일반 소프트웨어는 "코드가 작성된 대로 실행될까?"를 묻는다. 에이전트형 소프트웨어는 여기에 더해 "시스템이 다음에 무엇을 하기로 결정할지 모른다"는 물음까지 던져야 한다 — 그러려면 에이전트를 둘러싼 통제 평면이 필요한데, 여기엔 권한, 정책 집행, 예산, 감사 로그, 정지 조건, 인간의 오버라이드, 이상 탐지, 롤백, 에스컬레이션이 포함된다. 자율주행차를 떠올려보자: 모델이 경로를 고를 수는 있지만, 그래도 차선 경계, 속도 제한, 브레이크, 블랙박스 기록기, 그리고 핸들을 잡을 수 있는 인간이 필요하다. "자율적"이라는 말은 인간의 권한을 없앤다는 뜻이 아니다 — 인간의 자리를 상시 조작에서 설계된 감독으로 바꾼다는 뜻이다. 진짜 질문은 감이 아니라 엔지니어링으로 정해야 한다:
어느 위험 수준에서 권한이 다시 인간에게 돌아가야 하는가?
토스트 하나 만드는 데 위원회까지 꾸리지 마라
에이전트를 발견하면 위험한 생각이 하나 떠오른다: "열일곱 개를 만들면 어떨까?" 곧 플래너 하나, 리서처 하나, 크리틱 하나, 크리틱을 비평하는 크리틱 하나, 그리고 에이전트 사기를 북돋는 에이전트까지 생겨난다 — 그런데 토스트는 여전히 생 채로다. 여러 에이전트는 작업이 실제로 서로 다른 역할이나 병렬 탐색으로 나뉠 때 도움이 된다(하나는 보안을, 하나는 성능을, 하나는 요구사항을 점검하고, 오케스트레이터가 이를 병합한다). 하지만 에이전트가 늘어날 때마다 소통 오버헤드, 중복 작업, 불일치하는 가정, 지연, 비용, 실패 표면이 함께 늘어난다. Anthropic의 가이드는 복잡성을 가치에 맞추고, 충분할 때는 단순한 워크플로를 선호하라는 것이다.
역량 있는 에이전트 하나와 좋은 도구로 시작하라. 두 번째 에이전트는 그것이 없애는 병목을 정확히 짚어낼 수 있을 때만 추가하라.
지능의 진짜 단위는 루프다
업계는 마치 가장 똑똑한 모델이 자동으로 최고의 에이전트를 만드는 것처럼 모델들을 비교한다. 하지만 실제 성능은 전체 복합 시스템에서 나온다 — 모델, 지시문, 컨텍스트, 도구, 메모리, 제어 흐름, 평가자, 환경, 감독까지 전부다. 규율 있는 루프 안의 약한 모델이 혼란스러운 루프 안의 강한 모델을 늘 이긴다. 쓸모 있는 지능이란 하나의 답이 얼마나 훌륭한가가 아니라, 시도하고 관찰하고 간극을 진단하고 행동을 바꾸고 수렴해가는 시스템의 능력이기 때문이다.
지능은 예측이다. 자율성은 통제된 학습 루프다.
자율성의 사다리
자율성은 켜고 끄는 스위치가 아니다 — 사다리다. 그리고 가장 가치 있는 시스템들이 원하는 것은 무제한의 자율성이 아니라 적절한 자율성이다.
| 단계 | AI가 하는 일 | 예시 |
|---|---|---|
| 0 · 답변 | 정보를 산출한다 | "레시피는 이렇습니다." |
| 1 · 보조 | 추천하고, 사람이 실행한다 | "재료와 조리법은 이렇습니다." |
| 2 · 승인 후 실행 | 실행 준비를 하고, 결과가 중대한 경우 사람이 승인한다 | "장바구니 채웠습니다 — 구매 승인할까요?" |
| 3 · 범위 내 실행 | 정책, 예산, 모니터링 하에서 일상적인 작업을 완료한다 | "승인된 품목을 30달러 이하로 주문했습니다." |
| 4 · 목표 추구 | 장기 목표를 향해 계획하고, 실행하고, 점검하고, 회복하고, 상황을 에스컬레이션한다 | "점심 완료, 주방 청소 완료; 중단함 — 오븐 센서가 이상을 감지함." |
온도조절기는 아주 좁은 의사결정 공간 안에서는 고도로 자율적이다. CFO는 훨씬 넓은 공간에서 움직이지만, 법률과 감사와 이사회의 통제 아래 있다. 자율성이 많다고 지능이 자동으로 높아지지는 않는다 — 때로는 그저 밧줄만 길어질 뿐이다.
프로덕션 설계도
서로 연결된 일곱 개의 층, 그리고 그 사이를 도는 루프:
1 · 목표 계약 — 성공 기준, 제약, 예산, 증거, 에스컬레이션.
2 · 지각(perception) — 도구, 데이터, 사용자, 환경으로부터 얻는 신뢰할 수 있는 상태 정보.
3 · 추론 및 계획 — 목표와 근거로부터 다음 행동을 선택한다.
4 · 행동 — 세계를 바꾸는, 경계가 정해진 도구.
5 · 메모리 — 관련 상태, 결정, 결과, 교훈.
6 · 평가 — 실제 결과 대 요구된 결과.
7 · 거버넌스 — 권한, 모니터링, 감사, 오버라이드, 셧다운.
Contract → Observe → Plan → Act → Verify → Learn → Continue or Escalate. 언어 모델은 이 안에서 하나의 구성 요소에 지나지 않는다. 망가진 아키텍처에 더 큰 모델을 끼워 넣는 건 쇼핑 카트에 포뮬러원 엔진을 얹는 것과 같다 — 더 빨라지긴 하겠지만, 조향 성능은 나아지지 않는다.
기억해 둘 만한 다섯 가지 원칙
1 · 도구를 넘기기 전에 '완료'를 정의하라. 그러지 않으면 끝없이 돌거나, 너무 일찍 멈추거나, 인상적인 실패를 자축하게 된다.
2 · 중요한 행동은 모두 관찰 가능한 증거를 남긴다. "믿어줘, 데이터베이스가 만족스러워 보였어" 같은 건 안 된다.
3 · 위험한 행동은 안전한 행동보다 느리게 만들어라. 읽기는 자동으로, 쓰기는 검증을 거치고, 삭제는 승인과 되돌릴 방법이 필요하다.
4 · 작업자와 심판을 분리하라. 요리사는 요리하고, 온도계는 측정하고, 그래도 표를 던지는 건 손님이다.
5 · 자율성을 확장하기 전에 복구 방법을 설계하라. 실패를 어떻게 알아차리고, 재시도하고, 같은 실수를 반복하지 않고, 롤백하고, 도움을 요청하는가?
지니가 아니라, 관리되는 견습생을 만들어라
자율성에 대한 환상은 램프의 요정이다. 소원 하나로 왕국이 완성된다는 상상이다. 하지만 현실에서 정말 쓸모 있는 존재는 견습생이다 — 목표를 이해하고, 도구를 쓰고, 일을 하고, 실수를 알아채고, 배우고, 시간이 지날수록 감독이 덜 필요해진다. 그럼에도 작업장에는 여전히 명확한 업무 배정, 좋은 도구, 안전 규칙, 품질 검사, 기록, 그리고 책임을 지는 숙련공이 필요하다. 이것은 한계가 아니다. 능력이 신뢰할 만한 것으로 바뀌어 가는 과정 그 자체다.
이 시대의 우위를 차지하는 쪽은 가장 똑똑한 모델을 빌려 쓰는 쪽이 아니다 — 어차피 모두가 같은 두뇌를 빌려 쓰기 때문이다. 진짜 우위는 그 주위에 최고의 루프를 구축하는 쪽에 돌아간다. 현실을 보고, 경계 안에서 행동하고, 결과를 측정하고, 실패로부터 배우고, 판단이 가장 중요한 순간에는 통제권을 인간에게 돌려주는 루프 말이다. 말할 수 있는 두뇌는 인상적이다. 하지만 진짜 값어치를 하는 건 일을 끝내는 시스템 — 그리고 주방을 태우지 않았음을 증명하는 시스템이다.
이 글은 엔지니어링 쪽 절반이다 — 신뢰할 수 있는 에이전트 하나를 어떻게 만드는가에 관한 이야기다. 그 조직판 절반, 즉 에이전트를 둘러싼 회사가 왜 대개 진짜 병목인지, 그리고 그것을 어떻게 다시 세울 것인지는 짝을 이루는 다음 글에서 다룬다. Your AI has a Ferrari engine. Your company is still a horse-drawn cart. (번역: 당신의 AI는 페라리 엔진을 갖고 있다. 당신의 회사는 여전히 마차다.) 같은 큰 아이디어를 두 고도에서 바라본 것이다: 명령하지 말고, 설계하라 — 가치의 단위는 명령이 아니라 루프다.