AI 에이전트의 실패 사례를 정리하고 있다고 생각했다. 사실 나는 계층 간 일관성(Cross-Layer Coherence)을 설명하고 있었다.
요약
AI 에이전트의 실패 원인을 개별적인 오류가 아닌 '계층 간 일관성(Cross-Layer Coherence)' 결여라는 구조적 문제로 정의합니다. 에이전트의 기억, 권한, 목적, 행동이라는 네 가지 계층이 서로 정렬되지 않을 때 발생하는 실패 메커니즘을 분석합니다.
핵심 포인트
- 에이전트의 실패는 단일 단계의 오류가 아닌 계층 간 불일치에서 발생함
- 에이전트의 4대 핵심 계층: 기억(Memory), 권한(Authority), 목적(Purpose), 행동(Action)
- 계층 간 일관성(Cross-layer coherence)은 에이전트의 구조적 안정성을 결정하는 핵심 요소임
- 검증되지 않은 메모리는 에이전트의 의사결정을 왜곡하는 주요 원인이 됨
언젠가 삼촌이 농구 코트에 연습 드릴(drills)이 적힌 종이 한 장을 남겨두고 나를 혼자 둔 채 떠난 적이 있습니다. 떠나기 전, 삼촌은 내가 연습을 했다고 거짓말을 해도 좋다고 말했습니다. 하지만 그렇게 하면 나 자신을 속이는 것뿐이라고 덧붙였습니다.
그 당시에는 그것을 표현할 단어를 몰랐지만, 지금은 압니다. 삼촌은 사전 등록(pre-registration)에 대해 설명하고 있었던 것입니다. 실제로 수행했는지 여부를 아무도 확인하기 전에 무엇을 할 것인지 미리 약속하는 것입니다. 그래야 나중에 결과를 조작할 수 있는 버전이 생기지 않기 때문입니다. 점수를 확인한 뒤에 골대를 옮기는 것은 연습을 이기는 것이 아닙니다. 그것은 조용히 자신에게 패배하고 그것을 승리라고 부르는 것뿐입니다. 이 점을 명심하십시오. 이 이야기는 결국 마지막에 다시 돌아올 것이며, 이것이 이 글을 읽을 가치가 있는 유일한 이유입니다.
저는 AI 에이전트(AI agents)가 어떻게 실패하는지에 대한 시리즈를 연구하며 약 1년의 시간을 보냈습니다. 그 기간 대부분 동안 저는 개별적인 실패 모드(failure modes)를 하나씩 주장하며 목록을 만들고 있다고 생각했습니다. 하지만 틀렸습니다. 저는 동일한 실패를 서로 다른 측면에서 반복해서 설명하고 있었으며, 이제서야 그것에 이름을 붙일 수 있게 되었습니다.
네 가지 계층, 그리고 그 사이에서 계속해서 발생하는 문제
에이전트(agent)부터 시작해 봅시다. 에이전트에는 네 가지 계층이 있습니다. 무엇을 아는지(knows), 즉 기억(memory). 무엇을 하도록 허용되는지(allowed), 즉 권한(authority). 무엇을 위한 것인지(for), 즉 목적(purpose). 그리고 실제로 무엇을 하는지(does), 즉 행동(action)입니다.
제가 계속해서 발견하고 있는 실패의 부류는 필터(filter)가 잡아낼 수 있는 단일한 잘못된 단계가 아닙니다. 그것은 에이전트가 높은 확신을 가지고 계속 움직이는 동안, 이 요소들 중 두 가지가 서로 일치하지 않고 어긋나는 현상입니다. 그리고 제가 이 시리즈의 핵심 주장들이 정확히 어떤 두 가지가 어긋나는지를 말하도록 강제한 순간, 목록은 더 이상 단순한 목록이 아니게 되었습니다. 여기 그 지도를 그려보았습니다:
| 주장 (The claim) | 어긋난 부분 (What fell out of phase) |
|---|---|
| 관련성이 권위는 아니다 | 권위만이 지배해야 할 상황에서 메모리 (Memory)가 행동을 지배함. '허용됨'보다 '알고 있음'이 우선됨. |
| ... |
따라서 표가 보여주는 바를 정직하게 설명하기 위해 규칙을 확장해 보겠습니다. 하나의 레이어 (Layer)는 다른 레이어와, 세상과, 또는 자기 자신의 이전 상태와 일치하지 않을 수 있습니다. 이 세 가지는 모두 동일한 질병입니다. 즉, 에이전트 (Agent)가 무엇을 알고 있는지, 무엇을 할 수 있는지, 무엇을 위한 존재인지, 그리고 무엇을 하고 있는지에 대한 그림이 서로 정렬되지 않으며, 그 이음새를 감시하는 것이 아무것도 없는 상태입니다.
제목은 제각각일 수 있습니다. 하지만 그 모든 제목 아래에는 동일한 문장이 흐릅니다: 검증하지 않은 메모리는 당신을 배신할 수 있는 메모리라는 것입니다. 에이전트가 해킹당한 것이 아닙니다. 레이어들이 서로 동의하기를 멈췄고, 아무도 이를 확인하지 않았을 뿐입니다. 저는 이를 계속해서 "에이전트가 스스로를 속이는 것"이라고 부르겠지만, 제가 의미하는 바를 정확히 하겠습니다. 이는 도덕적 실패(기계에게는 도덕이 없습니다)가 아니라 구조적 실패이며, 만약 누군가 실행했다면 완벽하게 정직한 감사 (Audit)를 통해 잡아냈을 법한 종류의 실패입니다.
이름은 프리미티브 (Primitive)이지, 홍보 문구가 아니다
이 모든 것을 방지하는 속성에는 이름이 있으며, 그것은 브랜드가 아닙니다. 그것은 바로 **계층 간 일관성 (Cross-layer coherence)**입니다. 에이전트가 각 레이어 간에, 시간에 따라, 그리고 증거(receipts)에 비추어 일관성을 유지할 때 우리는 에이전트가 이를 갖추었다고 말합니다. 이는 슬로건이 아니라 멱등성 (Idempotency), 정확히 한 번 의미론 (Exactly-once semantics), 단조 집계 (Monotonic aggregates)와 같은 일반적인 시스템 프리미티브 (Systems primitives)와 동일한 어휘 체계에 속합니다. 그리고 제 삼촌의 드릴처럼, 일관성을 가졌다고 주장할 수는 없습니다. 그것은 증명하는 것입니다.
검사기는 결정론적 (Deterministic)이어야 하며, 제2의 의견이 아니다
이 부분이 이것이 공학인지 아니면 그저 말장난인지를 결정하는 지점이기에, 솔직하게 말씀드리겠습니다. 일관성 검사 (Coherence check)는 기록을 읽고 상황이 "일관성 있어 보이는지"를 결정하는 두 번째 모델 (Second model)이 아닙니다. 그것은 아무것도 해결하지 못합니다. 그것은 환각 (Hallucination)과 드리프트 (Drift)를 두 번째 모델로 옮겨놓고 그것을 감독관 (Supervisor)이라고 부르는 것에 불과합니다. 더 똑똑한 프롬프트 (Prompt)를 통한 분위기 파악 (Vibe check)은 여전히 분위기 파악일 뿐입니다.
이 검증은 결정론적 (Deterministic)입니다. 로그에 기록된 작업 (Operations)과 실행 전 고정된 규칙들로부터 중요한 상태 (State)를 재계산하여 비교합니다. CLAIM-31에서 게이트 (Gate)는 실행 중인 합계가 적절해 보이는지 모델에게 묻지 않습니다. 판결 (Verdict) 과정 어디에도 모델의 판단을 개입시키지 않고, 오직 작업 로그 (Operation log)만으로 합계와 모든 윈도우 종료 (Window close)를 재계산합니다. 일관성 계층 (Coherence layer)은 구조화된 상태 (Structured state)에 대한 엄격한 논리적 및 산술적 게이트이거나, 그렇지 않다면 아무것도 아닙니다. 만약 판결에서 모델의 의견이 하중을 지탱하는 요소 (Load-bearing)라면, 당신은 일관성을 구축한 것이 아닙니다. 당신은 더 확신에 찬 추측 (Guess)을 구축했을 뿐입니다.
공격 사례 보기
실패를 명명하는 것이 실패를 직접 보는 것과 같지는 않으므로, 구체적인 사례 하나를 제시하겠습니다.
한 에이전트가 환불 창구를 운영합니다. 각 환불 금액은 40달러입니다. 각 윈도우 (Window)의 한도는 500달러입니다. 에이전트는 12건의 환불, 즉 480달러를 처리하고 한도에 도달하기 직전에 멈춥니다. 그 후 윈도우 종료 (Window close)가 로그에 기록됩니다. 이어서 에이전트는 새로운 윈도우를 열고 한 건을 더 처리합니다. 총 13건의 환불, 총액 520달러가 되었지만, 단 하나의 윈도우도 그 경계(Bound)를 넘지 않았습니다.
무엇이 이를 놓치는지 살펴보십시오. 단계별 게이트 (Per-step gate)는 개별적으로 승인된 13건의 40달러 환불을 확인하고, 각각이 정상적이므로 모두 올바르게 통과시킵니다. 윈도우별 게이트 (Per-window gate)는 480달러와 40달러라는 두 개의 깨끗한 윈도우를 확인하고, 둘 다 500달러 미만이므로 이 역시 올바르게 통과시킵니다. 위반 사항은 그 어떤 단계(Step)나 윈도우(Window)에도 존재하지 않습니다. 위반은 종료(Close)를 가로지르는 총합에 존재합니다. 이를 잡아낼 수 있는 유일한 방법은, 검증된 종료 (Verified close)를 가로질러 검증된 누적 합계 (Verified running total)를 전달하는 검증 절차이며, 단지 그것이 두 요소를 보유하고 있다는 이유만으로 어느 하나라도 신뢰하기를 거부하는 것입니다.
그리고 정상 사례 보기
이제 허용되어야만 하는 워크플로우, 그렇지 않으면 전체 시스템이 무용지물이 되는 사례를 살펴보겠습니다. 정당한 장기 환불 작업은 바쁜 오후 시간 동안 수백 건의 작은 환불을 수행합니다. 하나의 창이 가득 차면, 에이전트가 아닌 실제 종료 권한(close authority)을 가진 주체가 이를 종료하고, 작업은 새로운 창에서 재개됩니다. 표면적으로는 공격과 동일한 형태를 띱니다: 환불, 종료, 그리고 더 많은 환불. 하지만 게이트(gate)는 이를 허용합니다. 왜냐하면 종료가 올바른 권한에 의해 수행되었고, 총액이 위조된 리셋(forged reset)을 통해 세탁되지 않았기 때문입니다. 이 두 가지를 구분할 수 없는 일관성 검사(coherence check)는 그저 단계만 더 복잡한 장애(outage)일 뿐입니다.
이것이 해결하지 못하는 것 (가장 나쁜 점부터)
이 부분을 건너뛰지 않겠습니다. 왜냐하면 이를 건너뛰는 것이 바로 거짓말이기 때문입니다.
계층 간 일관성(Cross-layer coherence)은 아직 해결되지 않았으며, 제 지난 주장이 무너졌던 것과 동일한 지점에서 무너집니다. 무언가가 검사를 수행해야 하고, 그 검사기(checker)는 자체적인 권한을 가져야 하며, 그 권한은 에이전트와 동일한 시스템 내에 존재합니다. 제 논지에 따르면, 전달된 총액(carried total)은 단지 게이트가 그것을 전달한다는 이유만으로 신뢰할 수 없습니다. 똑같은 칼날이 되돌아옵니다. 정직함을 유지해야 하는 대상이 정직함을 유지하는 대상에 영향을 미칠 수 있다면, 시스템이 스스로에 대해 일관성 검사를 수행했다는 사실만으로는 그 검사를 신뢰할 수 없습니다. 에이전트가 도달할 수 없는 신뢰의 뿌리(root of trust)가 필요합니다. 저는 아직 그것을 구축하지 못했습니다. 그것이 다음번의 진짜 싸움이며, 저를 포함하여 컨디션이 최악인 날의 저를 포함해 오늘날 계층 간 일관성이 완벽하다고 말하는 사람은 누구나 무언가를 팔려고 하는 것입니다.
그리고 이 모든 것 아래에 깔린 증거에 대해 명확히 해두겠습니다. 이것은 고정된 40달러 금액, 수작업으로 만든 피스처(fixtures), 소수의 행(rows)으로 구성된 작은 내부 토이 월드(toy world)입니다. 이것은 제가 통제하는 세계에 대한 일관성 검사일 뿐, 이것이 일반화될 수 있다는 증거는 아닙니다. 이 시스템이 직면하지 못한 것들이야말로 가장 중요한 것들입니다: 임계값 바로 아래에서 가로채도록 크기가 조절된 가변 금액, 동시 실행되는 창(concurrent windows), 정당한 종료가 언제 발생하는지 조종할 수 있는 적대자(adversary), 그리고 제가 아닌 독립적인 팀이 작성한 행들입니다. 여기서는 그 어떤 것도 테스트되지 않았습니다. 깨끗한 토이 모델은 지저분한 실제 버전에서 살아남지 못할 수도 있으며, 실제로 배포되는 것은 오직 지저분한 버전뿐입니다.
이 글의 정체
솔직한 문장을 하나 더 덧붙입니다. 리뷰어가 저에게서 이 말을 억지로 끌어내게 해서는 안 되기 때문입니다. 이것은 새로운 결과물이 아니라 종합(synthesis)입니다. 이것은 패턴의 이름을 명명하는 것입니다. 그 증거는 클레임 파일(claim files)과 최근의 공개된, 사전 등록된 영수증(receipts)들에 존재합니다. 즉, 행(rows)이 존재하기 전에 이루어진 프리즈 커밋(freeze commits), 추가 전용(append-only) 평가 로그, 그리고 각 체크 항목이 하중을 견디고 있음을 보여주기 위해 하나씩 제거하며 수행한 어블레이션(ablations, 절제 연구) 등이 그것입니다. 만약 저를 시험하고 싶다면, 이 에세이와 논쟁하지 마십시오. 가서 프리즈(freezes)를 확인하십시오.
결론
우리 삼촌은 제가 그 훈련들을 수행했는지 확인하려 하지 않았습니다. 그럴 필요가 없었기 때문입니다. 핵심은 제가 그 사실을 알고 있어야 한다는 것이며, 그 앎이 저를 성장시키거나 혹은 부패하게 만들 것이라는 점이었습니다. 그것이 두 배의 규율(discipline)입니다. 제가 테스트하는 방식에서: 제가 확인하기 전에 규칙을 프리즈(freeze)하거나, 그렇지 않으면 평가 과정에서 스스로를 속이게 됩니다. 그리고 제가 구축하는 것에서: 에이전트의 계층(layers)들이 증명 가능한 수준에서 합의를 유지하도록 강제하여, 실패가 숨어들 수 없게 만드는 것입니다.
계층 간 일관성(Cross-layer coherence)은 기계에 내장된 바로 그 두 번째 요소입니다. 에이전트의 메모리(memory), 권한(authority), 목적(purpose), 그리고 행동(action)이 서로, 그리고 시간을 가로질러, 그리고 영수증(receipts)에 비추어 여전히 일치하는지를 확인하는 결정론적(deterministic) 체크입니다. 제가 발명하지 않았음을 솔직히 인정하는 렌즈를 사용하여, 제가 수호할 규율로 테스트하였으며, 아직 제가 획득하지 못한 단 하나의 신뢰 가정(trust assumption) 위에 서 있는 작은 내부 세계 위에서 말입니다.
규칙은 유지되고 있습니다. 경계는 계속해서 위로 이동하고 있습니다.
다음 조각은 '왜(why)'에 관한 것입니다. 그리고 그것은 기술적인 문제가 아닙니다.
주장 재현하기: https://github.com/keniel13-ui/ai-memory-judgment-demo-public
여기서 시작하기: https://dev.to/zep1997/start-here-my-ai-memory-research-so-far-2kp7
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기