검증과 자기 개선을 가르는 법: 에이전트 AI의 토대와 한계

에이전트 성능 향상을 더 오래 찾기, 더 많은 지원, 달라진 검증으로 나누어 읽는 연구 해설

원문 논문 보기
'검증과 자기 개선을 가르는 법: 에이전트 AI의 토대와 한계' 기사 커버 이미지

이번에 다룰 논문은 Verification and Self-Improvement in Agentic AI: Foundations and Limits로, arXiv에 2610.10611 번호로 공개된 연구입니다. 이 논문은 에이전트의 성능 향상이 더 오래 찾는 일과 더 많은 지원을 받는 일과 제안과 검증을 바꾸는 일을 한데 섞어 말하고 있다는 진단을 내놓고, 이를 가려내기 위한 검증 형식을 제안합니다. 원문은 제목 아래 걸어둔 링크에서 확인할 수 있습니다.

안녕하세요, 패트릭입니다.

저는 얼마 전 동료와 함께 고객 상담 기록을 검토하는 에이전트를 만지다가 비슷한 대화를 나눈 적이 있습니다. 답이 좋아졌다는 말은 들리는데, 어디서 좋아진 건지 손으로 짚이지 않는다는 이야기였습니다. 그렇다면 점수가 올랐다는 말은 어디까지 믿을 수 있을까요?

점수가 오르면 왜 다 잘된 것 같아 보일까

처음 이 논문을 펼쳤을 때 저는 점수표보다 그 앞의 문장에서 오래 멈췄습니다. 에이전트 시스템은 더 오래 찾거나, 곁에서 더 많은 도움을 받거나, 답을 만들고 가리는 방식을 바꾸는 것만으로 좋아질 수 있는데, 겉에 찍힌 성능 숫자 하나는 그 셋을 뭉뚱그려 보여준다는 대목이었죠. 숫자가 오르면 마음이 놓이는데, 그 숫자가 무엇을 가리키는지 모르면 다음 결정을 내리기 어렵습니다. 그래서 저는 이 진단을 꽤 실제에 가깝게 느꼈습니다.

생각해보면 사람 일도 비슷합니다. 신입 사원이 보고서를 잘 써왔다고 합시다. 밤을 새워 여러 번 고친 결과인지, 옆자리 선배가 자료를 건네준 덕분인지, 애초에 검토 기준이 느슨해진 탓인지 알 수 없으면 다음 달 일을 맡기기 어렵죠. 에이전트도 같은 처지입니다. 더 오래 생각하게 두었는지, 도구나 메모리 같은 곁자원을 더 쥐여주었는지, 아니면 답을 고르는 자 자체를 바꾼 것인지 나누어 보지 않으면 무엇을 더 사야 할지 알 수 없습니다. 저는 이 나누기가 이 글 전체를 이끄는 질문이라고 봅니다.

여기서 재미있는 질문이 생깁니다. 나누어 본다는 말은 구체적으로 무엇을 적겠다는 뜻일까요? 논문은 느낌보다 절차를 적자고 말합니다. 누가 무엇을 제안하고, 어디까지 도움을 받을 수 있고, 어떤 순서로 확인하고, 마지막에 어떤 검사로 문을 닫을지를 미리 적어두자는 것이죠. 이렇게 적어두면 좋아진 이유를 나중에 따져볼 수 있습니다. 점수 하나보다 과정의 기록이 남기 때문입니다.

제안과 검증과 최종 확인으로 이어지는 에이전트 고리를 그린 그림
제안과 검증과 최종 확인으로 이어지는 에이전트 고리를 그린 그림

오래 찾기, 곁두기, 바꾸기

에이전트가 나아지는 길은 겉으로 보면 하나로 보이지만, 가까이 가면 갈래가 나뉩니다. 첫째는 더 오래 찾는 일입니다. 같은 방식으로 더 많은 후보를 만들고 더 많은 시도를 해보는 것이죠. 시간과 계산을 더 쓰면 답을 맞힐 확률이 올라가는 경우가 있습니다. 그런데 이 길은 비용을 직접 치르는 길입니다. 밤새 일하면 결과가 좋아질 수 있지만, 아침에 전기요금이 날아오는 것과 같습니다.

둘째는 곁자원을 더 받는 일입니다. 검색 결과나 문서, 도구 출력, 사람 손길 같은 바깥 도움이 답 만들기에 들어오는 경우죠. 저는 이 부분을 읽으면서 상담 기록 검토 일이 떠올랐습니다. 에이전트 자체는 그대로인데 참조 문서 묶음을 바꿔주었더니 정답률이 훌쩍 뛴 적이 있기 때문입니다. 모델이 똑똑해졌다기보다 일할 환경이 좋아진 셈이죠. 이런 변화를 모델 능력 상승으로 읽으면 다음 판단이 어긋납니다.

셋째는 제안과 검증을 바꾸는 일입니다. 후보를 만드는 방식을 다듬거나, 그 후보를 가리는 자를 바꾸는 것이죠. 같은 시간과 같은 자료를 써도 고르는 눈이 달라지면 결과가 달라집니다. 문제는 앞의 둘과 이 셋째가 점수표 위에서는 똑같이 보인다는 점입니다. 그래서 논문은 세 갈래를 처음부터 이름 붙여 나누자고 제안합니다. 저는 이 구분이 현장에서 바로 쓸 수 있는 문장이라고 느꼈습니다. 좋아졌다면 무엇을 더 준 것인지, 아니면 가리는 법을 바꾼 것인지 먼저 묻는 일입니다.

검증을 절차로 적으면 무엇이 달라질까

그렇다면 검증을 형식으로 적는다는 말은 어떻게 받아들여야 할까요? 논문은 검증 한 단계를 네 가지로 적습니다. 허용된 기록과 다항식 제한과 번갈아 확인하는 절차와 맨 끝의 검사기가 그것입니다. 말이 어렵게 들리지만, 그림으로 풀면 꽤 손에 잡힙니다.

허용된 기록이라는 말은 오가는 대화와 중간 메모 가운데 어디까지를 증거로 칠지를 미리 정한다는 뜻입니다. 아무 말이나 받아적지 않고, 정해진 양식의 기록만 남기기 때문입니다. 회의록을 쓸 때 발언 전체를 받아쓰기보다 결정과 이유와 다음 할 일만 남기는 것과 비슷합니다. 이렇게 하면 나중에 누가 봐도 같은 기준으로 되짚을 수 있습니다.

다항식 제한은 일의 크기를 문제 크기 앞에서 너무 불어나지 않게 묶어둔다는 뜻입니다. 입력이 두 배가 되었다고 일이 백 배로 불어나면 운영이 서지 않습니다. 그래서 얼마까지는 감당하겠다는 상한을 걸어둡니다. 번갈아 확인하는 절차는 제안이 나오고 반박이 나오고 다시 답이 나오는 식으로 주거니 받거니 하면서 좁혀가는 흐름을 말합니다. 한 사람이 혼자 도장을 찍기보다 서로 다른 역할이 차례로 말을 보태기 때문입니다. 맨 끝의 검사기는 문을 닫는 마지막 손입니다. 앞에서 아무리 말이 오가도 마지막 문턱을 넘지 못하면 받아들이지 않습니다. 게다가 이 마지막 검사에는 바깥에서 보이지 않는 무작위성이 숨어 있습니다. 즉 동전 던지기처럼 안에서만 쓰는 운이 결과에 스며 있다는 뜻입니다. 저는 이 대목을 읽고 채점 방식을 떠올렸습니다. 중간 평가는 공개된 기준으로 여러 번 주고받되, 마지막 추첨 문제는 비공개로 섞어두는 셈입니다. 이렇게 적어두면 어느 단계에서 운이 끼어들었는지 나중에 물을 수 있습니다.

더 오래 찾기와 지원을 더하기와 검증 바꾸기를 나란히 비교한 그림
더 오래 찾기와 지원을 더하기와 검증 바꾸기를 나란히 비교한 그림

기본값으로 닿는 곳과 문을 열어둔 뒤에 닿는 곳

논문은 닿을 수 있는 범위를 두 겹으로 나눕니다. 하나는 기본 지원만 쓸 때 닿는 범위이고, 다른 하나는 주고받는 길목에서 이미 허락된 도움을 모두 쓸 때 닿는 범위입니다. 이름만 보면 비슷해 보이지만, 실제 운영에서는 차이가 큽니다.

기본 지원은 처음에 쥐여준 도구와 자료만 쓰는 상태입니다. 정해진 책상 위에서만 일하는 것이죠. 반면 바깥과 말을 주고받는 과정에서 허락된 것이 하나둘 쌓이면 쓸 수 있는 손이 늘어납니다. 논문은 이 둘을 가르는 선을 분명히 긋습니다. 그래서 처음 약속과 도중에 열린 길을 섞지 말자는 주문입니다. 저는 저희가 새 구조를 볼 때 쓰는 버릇과 겹쳐 읽었습니다. 저희는 숫자만 보지 않고 무엇이 바뀌었고 그 변화가 운영에서 어떤 비용 구조를 만드는지를 함께 봅니다. 기본값으로 닿은 것인지, 도중에 열린 길 덕분인지 가리지 않으면 비용 계산이 틀어지기 때문입니다.

여기서 드는 질문이 있습니다. 도중에 열린 길을 쓰면 안 된다는 말일까요? 그렇지 않습니다. 쓰되 어디까지가 처음 약속이었고 어디부터가 도중에 허락된 것인지 적어두라는 주문에 가깝습니다. 예를 들어 야간 상담 검토 라인에서 낮에는 쓰지 않던 외부 검색을 야간에만 열어주었다고 합시다. 정답률이 올랐을 때 그 상승을 모델이 똑똑해진 증거로 읽으면 낮 시간대 인력 계획을 잘못 세웁니다. 열린 길 덕분이라고 적어두면 다음에도 같은 길을 열면 된다는 처방이 나옵니다. 이 구분은 책임 소재를 가리는 일이기도 합니다. 기본값에서 막힌 것과 열린 길을 다 썼는데도 막힌 것은 고쳐야 할 곳이 서로 다르기 때문입니다.

번갈아 확인하는 절차와 허용된 기록과 다항식 제한을 층으로 그린 그림
번갈아 확인하는 절차와 허용된 기록과 다항식 제한을 층으로 그린 그림

다수결은 지키는데 운에 맡기면 왜 어긋날까

검증에 운이 들어오면 어떻게 다뤄야 할까요? 저는 이 대목을 읽으면서 운을 뺄지가 아니라 운을 어떻게 묶어둘지가 문제라고 느꼈는데, 논문은 그 답을 두 갈래로 또렷이 나눕니다. 하나는 따로따로 여러 번 돌려 다수결로 고르는 길이고, 다른 하나는 운 좋게 나온 한 번에만 기대어 받아들이는 길인데, 겉으로는 비슷해 보여도 받아들이는 범위를 지키는 방식이 전혀 다릅니다.

다수결은 여러 번의 시도를 모아 가장 많이 나온 쪽을 따르는 방식입니다. 이때는 받아들여지는 말의 범위와 받아들이지 않는 말의 범위가 함께 지켜집니다. 운이 섞여도 여러 번 모으면 흔들림이 가라앉기 때문입니다. 학급 회장을 뽑을 때 한 표만 보고 정하지 않고 전체 표를 모아 세는 것과 비슷합니다. 저는 이 결과가 마음에 들었지만, 여기까지만 믿고 넘어가기에는 조건을 더 봐야 한다고 느꼈습니다. 여러 번 돌린다는 말은 그만큼 시간과 비용이 든다는 뜻이기 때문입니다. 공짜로 얻는 안정은 없습니다.

반면 운이 좋게 나온 기록 하나에만 기대어 받아들이면 틀린 말이 들어올 수 있습니다. 즉 우연히 열린 문으로 들어온 답을 맞다고 도장을 찍는 꼴입니다. 처음에는 운이 좋아 보이지만, 같은 문을 다시 열면 다른 답이 들어옵니다. 논문은 이 차이를 수학으로 못 박습니다. 다수결로 키운 절차는 두 언어를 함께 지키지만, 운 좋은 기록 하나에 기대는 채택은 틀린 출력을 받아들일 수 있다는 것이죠. 저는 여기서 멈칫했습니다. 현장에서 한 번 잘 나온 데모를 그대로 믿고 싶은 유혹이 자주 생기기 때문입니다. 데모 한 번은 증거라기보다 운 좋은 기록에 가깝습니다. 여러 번 돌려 같은 말이 나오는지 묻는 버릇이 그래서 필요합니다.

기본 지원으로 닿는 범위와 이미 열린 길을 모두 쓸 때의 범위를 겹쳐 그린 그림
기본 지원으로 닿는 범위와 이미 열린 길을 모두 쓸 때의 범위를 겹쳐 그린 그림

무작위 검증은 정확히 어디에 걸쳐 있을까

무작위를 쓰는 검증은 결정적인 검증보다 얼마나 넓을까요? 논문은 층을 이루는 포함 관계를 보여줍니다. k 단계의 결정적인 검증으로 가릴 수 있는 말들은 무작위를 쓰는 k 단계 검증으로도 가릴 수 있고, 그 말들은 다시 k 더하기 1 단계의 결정적인 검증으로 가릴 수 있다는 것입니다.

수식으로 적으면 Sigma k P 안에 Sigma k RV가 들고, 그 안에 Sigma k 더하기 1 P가 든다는 모양이 됩니다. 저는 이 숫자보다 그 뒤의 구조가 더 오래 눈에 남았습니다. 무작위를 쓰면 한 층을 통째로 뛰어넘지 못하고 반 층 정도 넓어진다는 감각이기 때문입니다. 계단으로 치면 한 칸을 완전히 오르기보다 중간 발판을 하나 더 얻는 셈이죠.

그런데 이 사이가 벌어지는지, 빈틈없이 붙어 있는지는 그냥 주어지지 않습니다. 엄격히 벌어진다는 말을 하려면 복잡도 가정이 따로 필요합니다. 가정 없이 공짜로 넓어진다고 말할 수 없다는 뜻이죠. 저는 이 조심스러움이 마음에 들었습니다. 무작위를 쓰면 무조건 좋아진다고 말하기보다, 어디까지는 보장되고 어디부터는 가정이 필요한지를 가르는 태도이기 때문입니다. 현장에서도 무작위 샘플링을 켜면 답이 좋아진 것처럼 보일 때가 있습니다. 이때 한 칸 오른 것인지 반 칸 넓어진 것인지 묻지 않으면 다음 설계가 흔들립니다. 온도를 올리고 여러 개를 뽑아 고르는 일이 능력을 키운 것인지, 그저 운 좋은 기록을 고른 것인지 나누어 보는 것이죠.

여기서 또 하나의 질문이 따라옵니다. 반 칸 넓어진 게 쓸모가 있을까요? 저는 쓸모가 있다고 봅니다. 층 하나를 통째로 오르지 못해도 문턱 앞에서 걸리는 일을 줄여주기 때문입니다. 다만 그 넓어짐을 공짜 점심처럼 말하지는 말아야 합니다. 운을 쓰는 만큼 반복 비용이 들고, 그 비용을 치렀을 때만 넓어짐이 손에 잡히기 때문입니다.

무작위를 빼도 같은 경계에 이를 수 있을까

그렇다면 운을 빼면 경계가 좁아질까요? 논문은 조건부 답을 내놓습니다. BPP가 P와 같다면, 정확한 검증으로도 무작위를 쓰는 검증과 같은 경계에 이르는 짝을 만들 수 있다는 것이죠. 말이 추상적이지만, 뜻은 이렇게 풀 수 있습니다.

BPP가 P와 같다는 말은 운에 기대어 빨리 푸는 일을 운 없이도 같은 정도로 빨리 풀 수 있다는 가정입니다. 이 가정이 서면 무작위를 쓰는 검증이 닿던 바깥 경계까지 정확한 검증으로도 따라갈 수 있습니다. 운으로 얻던 넓어짐을 꼼꼼한 절차로 메울 수 있다는 뜻이죠. 저는 이 대목을 읽고 번역기를 떠올렸습니다. 처음에는 여러 번 돌려 가장 자연스러운 문장을 고르던 일을, 나중에는 문법 검사기를 촘촘히 두어 한 번에 고르는 식으로 바꾸는 것과 비슷합니다. 겉 경계는 같아도 안에서 치르는 값은 다릅니다.

그래서 실제 시스템 관점에서 보면 다음 질문이 바로 생깁니다. 운을 빼는 대신 무엇을 더 치러야 할까요? 대개는 시간이나 설계 손품입니다. 검사기를 더 촘촘히 만들고, 기록 양식을 더 엄격히 다지고, 확인 순서를 더 길게 가져가는 것이죠. 공짜로 운을 덜어내기보다 비용의 자리를 옮기는 셈입니다. 이 대목은 낙관도 비관도 아닙니다. 운을 쓰는 설계가 영원히 앞서간다는 말도 아니고, 정확한 검증이 항상 가볍다는 말도 아닙니다. 가정이 서면 경계는 같아질 수 있지만, 그 길을 걷는 발품은 다르다는 것이죠. 저는 그래서 이 결과를 경계의 이야기이자 비용의 이야기로 읽었습니다.

스스로를 고쳐 쓰는 일은 어디까지 허용될까

에이전트가 스스로를 고쳐 쓴다는 말은 어디까지 믿을 수 있을까요? 논문은 bound를 걸어 답합니다. 같은 소리 나는 해석기를 함께 쓰고 검증 절차를 고정해둔 채, 고쳐 쓰기를 일정한 bound 안에 묶어두면 검증 층은 그대로 머문다는 것이죠.

말을 풀면 이렇습니다. 에이전트가 자기 몸을 조금씩 고쳐도 읽는 눈과 따지는 절차가 그대로이고 고치는 폭이 미리 정한 울타리를 넘지 않으면, 가릴 수 있는 말의 범위가 위층으로 뛰지 않는다는 뜻입니다. 옷을 고쳐 입어도 몸이 커지지 않는 것과 비슷합니다. 저는 이 선 긋기가 꽤 단단하게 느껴졌습니다. 스스로 고친다는 말이 나오면 곧잘 층을 뛰어넘는 상상을 하게 되는데, 논문은 울타리와 눈과 절차가 그대로면 층도 그대로라고 말하기 때문입니다.

(참고로 여기서 해석기라는 말은 에이전트가 남긴 고친 몸을 같은 방식으로 읽어 실행하는 장치를 가리키는데요. 읽는 눈이 바뀌면 같은 글도 다르게 실행됩니다. 그래서 읽는 눈을 고정한다는 조건이 붙습니다.)

그렇다면 현장에서는 무엇을 확인해야 할까요? 고쳐 쓰기를 켰다는 말보다 어떤 해석기로 읽었고 어떤 절차로 가렸고 울타리가 어디였는지를 먼저 묻는 것이죠. 울타리 없이 스스로를 고치게 두면 이야기가 달라집니다. bound가 풀리면 층이 그대로 머문다는 보장이 서지 않기 때문입니다. 저는 앞으로 보고 싶은 것이 바로 이 울타리의 실제 모양입니다. 고치는 횟수인지, 고칠 수 있는 부위인지, 한 번에 바꿀 수 있는 크기인지에 따라 운영 감각이 크게 달라질 테니까요.

다수결 반복으로 결과를 지키는 길과 운에 맡긴 채택이 어긋나는 길을 대비한 그림
다수결 반복으로 결과를 지키는 길과 운에 맡긴 채택이 어긋나는 길을 대비한 그림

끝없이 잘 찾아도 판정이 그대로인 경우가 있다

찾기 능력과 가리는 능력은 같은 것일까요? 논문은 다르다고 말합니다. 할당량을 지킨 XOR 합성 묶음이 그 증거로 나옵니다. 찾기 성공 비율은 끝없이 벌어지는데, 받아들여지는 말의 범위는 그대로 머무는 경우를 직접 만든 것이죠.

XOR 합성이라는 말은 여러 조각을 특정한 규칙으로 엮어 답을 만들게 하는 과제 묶음이라고 읽으면 됩니다. 여기에 할당량이라는 울타리를 두어 어느 조각을 얼마나 쓸지를 묶어둡니다. 그러면 더 오래 찾으면 찾을수록 답을 맞히는 비율은 계속 올라가지만, 가리는 눈이 받아들이는 범위는 넓어지지 않습니다. 아무리 빨리 달려도 결승선 자체가 움직이지 않는 셈이죠. 저는 이 숫자보다 그 뒤의 구조가 더 오래 눈에 남는다고 봅니다. 찾는 일과 가리는 일이 서로 다른 축이라는 점을 눈으로 보여주기 때문입니다.

이 대목은 현장의 착시를 바로 겨눕니다. 데모에서 찾기 성공이 몇 배로 뛰면 곧잘 가리는 눈까지 좋아졌다고 말하고 싶어집니다. 하지만 이 묶음은 그 둘이 따로 놀 수 있음을 보여줍니다. 더 많은 후보를 뒤지고 더 오래 돌리면 맞히는 횟수는 늘어도, 받아들일 수 있는 말과 받아들일 수 없는 말을 가르는 선은 그대로일 수 있습니다. 그래서 점수표만 보고 구조를 샀다고 말하면 안 됩니다. 무엇을 산 것인지 묻는다면 찾기 시간을 산 것인지, 가리는 눈을 산 것인지 나누어 적어야 합니다. 저는 이 구분이 예산 싸움에서 특히 쓸모가 크다고 느꼈습니다. 찾기 시간을 사는 값과 검증 구조를 바꾸는 값은 서로 다른 주머니에서 나가기 때문입니다.

할당량을 지킨 합성 과제에서 찾기 성공은 크게 벌어지고 판정 경계는 그대로인 모습을 담은 그림
할당량을 지킨 합성 과제에서 찾기 성공은 크게 벌어지고 판정 경계는 그대로인 모습을 담은 그림

그래서 다음 실험 앞에 무엇을 적어두어야 할까

앞에서 미뤄둔 질문으로 돌아올 차례입니다. 점수가 올랐다는 말 앞에서 무엇을 먼저 적어야 할까요? 저는 이 논문을 읽고 나서 실험 노트 첫 줄에 세 칸을 만들었습니다. 더 오래 찾았는지, 곁자원을 더 주었는지, 제안과 검증을 바꾸었는지 적는 칸입니다. 그 다음 줄에 검증 절차를 적습니다. 어떤 기록을 남겼고, 일의 상한을 어디에 걸었고, 누가 어떤 순서로 확인했고, 마지막 문은 어떤 검사가 닫았는지를 적는 것이죠.

이 버릇이 생기면 다음 질문이 자연스럽게 따라옵니다. 기본값으로 닿은 것인지, 도중에 열린 길 덕분인지 말이죠. 여러 번 돌려 다수결로 얻은 안정인지, 운 좋은 기록 하나에 기댄 것인지도 묻게 됩니다. 무작위를 썼다면 반 칸 넓어진 것인지, 가정이 필요한 넓어짐까지 말한 것인지 가리게 됩니다. 스스로 고쳐 썼다면 같은 눈과 같은 절차와 울타리 안에서 한 일인지 확인하게 됩니다. 찾기 성공이 크게 올랐을 때는 판정의 선도 함께 움직였는지 끝까지 물어야 합니다.

그렇다면 사람의 역할은 무엇일까요. 저는 답을 고르는 눈을 설계하는 일에 더 가까워졌다고 봅니다. 더 오래 돌리는 일과 곁자원을 대는 일은 돈과 시간으로 살 수 있습니다. 하지만 무엇을 증거로 남길지, 어떤 순서로 확인하고 어떤 문으로 닫을지, 운을 어디까지 허락할지를 정하는 일은 여전히 사람의 판단에 닿아 있습니다. 점수가 올랐다는 말 앞에서 잠시 멈추고 그 세 갈래를 묻는 버릇이 쌓이면, 에이전트를 키우는 일도 조금 덜 흔들릴 것입니다.

참고 자료

  1. Verification and Self-Improvement in Agentic AI: Foundations and Limits · arxiv.org

    리뷰 원문