AI 에이전트, 어디까지 맡길 수 있을까?
AI 에이전트에 업무를 위임할 때 판단 기준은 모델의 성능이 아니라 '검증의 용이성'과 '복구 비용'입니다. 이 두 가지 기준을 바탕으로 작업을 4가지 자율성 수준으로 나누어 적용하면, 위험을 최소화하면서도 에이전트를 안전하게 실무에 도입할 수 있습니다. 개발자 및 실무자들은 작업의 특성에 맞춰 에이전트의 통제 범위를 전략적으로 조절해야 합니다.
AI 에이전트, 어디까지 맡길 수 있을까? 에이전트 자율성에 대한 간단한 가이드 (Jina Yoon, 2026년 7월 27일)
사람들은 감독 없이 에이전트에게 더 많은 업무를 맡기고 싶어 하지만, 언제 에이전트를 믿어야 할지 어떻게 결정할 수 있을까요? 어떤 사람들은 그 답이 모델의 성능에 달려 있다고 생각합니다. 즉, 모델이 더 좋아지면 더 많은 것을 맡길 수 있다는 것이죠. 하지만 모델이 똑똑해졌다고 해서 에이전트를 무작정 믿는 것은, 자동차가 더 좋아졌다고 안전벨트를 매지 않는 것과 같습니다.
진짜 해답은 모델과는 아무 상관이 없으며, 오직 '작업(Task)' 자체와 관련이 있습니다. 언제, 얼마나 많이 업무를 위임할지 결정하는 멘탈 모델을 구축하고 이를 상황에 맞게 적용해야 합니다. 다음은 문제없이 빠르게 결과물을 내기 위해 에이전트 자율성을 극대화하는 간단한 가이드입니다.
한계를 결정하는 두 가지 요소 먼저 스스로에게 두 가지 질문을 던져봐야 합니다.
에이전트의 작업 결과를 확인하기 쉬운가? 에이전트가 스스로 안전하게 작동하려면, 잘못되었을 때 즉각적인 피드백을 받을 수 있어야 합니다. 이는 단위 테스트(Unit test) 및 통합 테스트(Integration test)와 같은 결정론적 검사가 가능한 대부분의 코드에 적용할 수 있습니다. 하지만 가독성을 높이기 위해 파라미터 이름을 변경하는 것과 같은 주관적인 작업은 인간의 안목과 판단 없이는 더 어렵습니다.
에이전트의 실수를 되돌리는 비용이 저렴한가? 전통적인 소프트웨어 엔지니어링과 마찬가지로, 감독 없이 에이전트를 실행하고 싶다면 최악의 시나리오를 대비한 확실한 실행 취소(Ctrl+Z) 보장이 필요합니다. 그래서 저희의 PR 승인 에이전트인 StampHog는 거부 키워드(deny-list)가 포함된 모든 작업을 인간에게 전달합니다.
이 두 가지 요소를 통해 모든 작업을 다음 4가지 수준 중 하나로 분류할 수 있습니다:
- 레벨 0: 보조자로서의 에이전트 (Agent as assistant). 결과를 확인하기 어렵고 되돌리기 어려운 작업. 까다롭고 민감한 코드를 다룰 때 필요합니다.
- 레벨 1: 인간 개입 (Human-in-the-loop). 확인하기 어렵지만 되돌리기는 쉬운 작업. 주로 주관적인 평가가 필요할 때 해당합니다.
- 레벨 2: 에이전트 위임 (Agent delegation). 확인하기 쉽지만 되돌리기 어려운 작업. 오늘날 대부분의 개발 작업에 대한 기본 한계입니다.
- 레벨 3: 자율 주행 모드 (Self-driving mode). 확인하기 쉽고 되돌리기도 쉬운 작업. 모든 것이 이 수준을 향해 가속화되고 있습니다.
이 네 가지 수준을 매우 간단한 의사결정 트리로 매핑하여 모든 작업에 적용할 수 있습니다. 이를 통해 에이전트에게 얼마나 많은 업무를 위임할지 결정하는 데 도움을 받을 수 있으며, 동시에 파이프라인을 엔지니어링하여 특정 작업의 자율성을 더 높일 수도 있습니다.
레벨 0: 보조자로서의 에이전트 (작업 결과를 확인하기 어렵고 + 되돌리는 비용이 큰 경우) 이것은 에이전트 자율성이 가장 낮은 수준입니다. 2024년의 좋았던 시절처럼 ChatGPT에게 조언을 구하거나 Cursor에서 자동 완성 기능을 사용하는 것을 생각해 보세요. 하지만 구식이라고 해서 나쁜 것은 아닙니다. 이 모드는 민감한 코드 영역에서 까다로운 문제를 다룰 때 이상적입니다.
예를 들어, Dylan이 작년에 일반적인 속성 타겟팅을 지원하기 위해 기능 플래그(Feature flag) 엔진을 업데이트했을 때, 그는 PostHog의 모든 기능 플래그에 간접적으로 포함된 가정을 마이그레이션해야 했습니다. 이 내용은 grep 명령어로 검색할 수 없었기 때문에 에이전트가 결정론적으로 확인하기에는 매우 어려운 일이었습니다. 또한 이 업데이트는 실제 고객 플래그, API 응답 형태 및 이유 평가 함수에 영향을 미쳤기 때문에 파급력(blast radius)이 매우 컸습니다.
여기서 한 단계 레벨을 높이는 방법 작업을 세분화하세요. 작은 단위로 쪼개면 어느 부분을 위임하는 것이 안전한지 명확해집니다. Dylan은 위험도가 높은 핵심 마이그레이션은 직접 수행하면서, 새로운 타겟팅 로직을 JavaScript, PHP, Ruby 및 Flutter SDK에 전파하는 것과 같이 중요도가 떨어지는 작업은 에이전트에게 넘겼습니다.
레벨 1: 인간 개입 (Human-in-the-loop) (작업 결과를 확인하기 어렵고 + 되돌리는 비용이 저렴한 경우) 이 수준의 에이전트 자율성은 주관적인 평가가 필요한 작업에서 흔히 볼 수 있습니다. (적어도 현재로서는) 에이전트에게 안목과 판단력을 가르치기는 어렵기 때문입니다. 인간 개입 작업은 코드가 초안(Draft) 상태를 유지하고 사람이 확인하기 전까지는 병합되지 않기 때문에 되돌리는 비용이 저렴한 것으로 간주됩니다. 여기서 되돌린다는 것은 단순히 다른 반복 작업을 시작한다는 것을 의미합니다. Thomas가 진행한 코드 가독성 리팩토링은 대부분 수작업으로 이루어졌지만, 에이전트가 어떻게 평가해야 할지 알지 못하는 작업의 좋은 예입니다. 이는 사람이 이해하기 쉽도록 만드는 코드 몇 줄을 추가하는 것이었습니다.