AI 코딩 에이전트: 진짜 비용이 발생하는 곳은 에이전트가 아니다
요약
AI 코딩 에이전트를 병렬로 실행할 때 발생하는 실제 비용은 API 토큰 비용이 아닌 인간의 관리 시간임을 지적합니다. 효율적인 운영을 위해 에이전트 간의 역할 분리(작성자 vs 리뷰어)와 인간의 최종 승인 프로세스가 중요함을 강조합니다.
핵심 포인트
- AI 에이전트 실행 비용은 토큰보다 인간의 상호작용 및 관리 시간에 의해 결정됨
- 효율성을 위해 에이전트의 수를 늘리고 인간은 디스패처 역할에 집중해야 함
- 품질 관리를 위해 작성 에이전트와 리뷰 에이전트를 분리하는 구조가 필요함
- 최종 코드 병합 권한은 반드시 인간이 보유하여 리스크를 관리해야 함
지난주에 저는 세 명의 AI 코더(AI coders)를 각각 별도의 파일에서 병렬로 실행했습니다. 몇 분 만에 세 개의 풀 리퀘스트(Pull Requests)가 돌아왔습니다.
그 후 청구서를 확인했습니다. 비용은 거의 변하지 않았습니다.
우리는 여러 AI 에이전트(AI agents)를 동시에 실행하면 비용이 꽤 많이 발생할 것이라고 예상했습니다. 하지만 수치는 달랐고, 그 이유를 파고들었을 때 우리는 AI를 실무에 투입하는 방식에 대한 생각을 바꿔놓은 지점을 발견했습니다.
1. 코더가 진짜 비용이 아니다
대부분의 사람들은 많은 양의 AI 코드 생성(codegen)을 실행하는 것을 토큰당 비용이 계속해서 올라가는 구조로 상상합니다. 왜냐하면 머릿속에 그려지는 이미지가 사용량에 따라 요금이 부과되는 API이기 때문입니다. 하지만 우리가 실행하는 코더들은 그런 방식으로 연결되지 않습니다. 우리는 각 코더를 구동할 엔진을 결정하는 에이전트 프레임워크(agent framework)를 통해 실행하며, 여기서 엔진은 실제 작업을 수행하는 모델(model)에 불과합니다. 우리가 연결하는 엔진은 토큰당 비용이 청구되는 API 키가 아니라, 이미 지불하고 있는 월간 구독을 통해 로그인합니다. 따라서 코더를 한 명을 실행하든 세 명을 동시에 실행하든, 라운드당 비용은 거의 변하지 않습니다.
그렇다면 진짜 비용은 어디로 갈까요? 바로 우리에게 갑니다. 초기에는 우리가 코더들을 돌보며(babysat), 몇 초마다 SSH로 접속해 상태를 확인했습니다. 자원을 잡아먹은 것은 코더가 아니라 바로 그 상호작용(back-and-forth)이었습니다. 해결책은 코더의 수를 줄이는 것이 아니라, 돌보는 행위를 멈추고 디스패처(dispatcher)가 작업을 배분하고 자동으로 종료하도록 만드는 것이었습니다. 사람은 문제를 설정하고 결정을 내리는 역할을 해야지, 앉아서 뚫어지게 쳐다보고 있어서는 안 됩니다.
이 점을 깨닫고 나면, 여러 명의 코더를 병렬로 실행하는 것은 더 이상 두려워하던 사치가 아니게 됩니다. 코더는 저렴하고 대체 가능합니다. 진짜 비싼 것은 인간의 시간과 주의력입니다.
2. 저렴하고 병렬적인 환경에서는 작성자가 아닌 검토자가 필요하다
코더가 저렴해지고 여러 명을 동시에 실행할 수 있게 되면, 리스크의 성격이 바뀝니다. 이제 문제는 돈이 아니라 품질입니다. 아무도 먼저 확인하지 않는다면, 빠르고 대량으로 나오는 결과물은 결함(defects)을 똑같이 쉽게 포함하게 됩니다.
우리가 선택한 경로: 코더(coder)가 작성하는 모든 것은 먼저 별도의 리뷰어(reviewer)를 거칩니다. 리뷰어의 임무는 단 하나, 읽고 플래그(flag)를 지정하는 것이며, 절대 직접 작성하지 않습니다. 작성자와 검사자가 동일한 에이전트(agent)가 되는 순간, 에이전트는 방금 자신이 놓친 바로 그 지점들을 대충 넘어가 버리기 때문입니다. 리뷰어를 분리함으로써, 방금 작성된 내용에 얽매이지 않는 제2의 시각을 확보할 수 있습니다.
우리가 더 개선하고 싶은 점: 리뷰어는 작성자와 다른 엔진(engine)을 사용해야 하며, 그래야 동일한 사각지대(blind spots)를 공유하지 않습니다. 리뷰어를 다른 엔진으로 교체해 보았으나, 시스템 내부에서 아무런 반응 없이 멈춰버려 단 하나의 리뷰도 생성하지 못했습니다. 그래서 결국 제대로 작동하는 것으로 확인된 엔진으로 되돌아갔습니다. 다른 엔진을 사용하는 것이 올바른 목표이지만, 아직 안정적이지 않은 이상적인 상태보다는 현재 실제로 작동하는 것이 더 낫습니다.
3. 인간이 병합 권한을 유지하며, 작업은 격리된 상태를 유지한다
코더들이 병렬로 실행되고 그 사이에 리뷰어가 있지만, 마지막으로 그어야 할 선이 하나 더 있습니다. 바로 누가 메인 코드(main code)로의 병합(merge) 버튼을 누를 것인가 하는 문제입니다. 우리의 답은 AI가 아닌 사람입니다. 코더는 작성하고 리뷰어는 플래그를 지정하지만, 실제로 반영할지 여부는 사람이 결정합니다. 우리는 이 마지막 관문을 'Gate A'라고 부릅니다. 이는 AI를 불신해서가 아니라, 코드를 메인 라인(main line)에 포함시키는 것은 되돌리기 어려운 결정이며, 누군가가 매번 그 책임을 맡아야 하기 때문입니다.
여러 에이전트를 동시에 실행할 때 즉시 설정해야 할 또 다른 사항은 다음과 같습니다. 각 코더는 모두가 동일한 파일을 작성하는 것이 아니라, 자신만의 워크스페이스(workspace)를 가져야 합니다. 여러 코더가 동시에 같은 공간을 편집하게 두면 작업이 엉키게 됩니다. 사후에 충돌을 해결하는 것이 아니라, 디스패처(dispatcher)의 역할은 사전에 각 코더를 위해 공간을 울타리로 분리해 두는 것입니다.
작게 시작하세요: 복제 가능한 형태
한 가지만 기억한다면 이것입니다. AI 코더 군단을 운영하는 것은 여러분이 두려워하는 것만큼 비용이 많이 들지 않습니다. 왜냐하면 코더가 진짜 비용이 아니기 때문입니다. 진짜 비싼 것은 인간의 시간과 걸러지지 않고 빠져나가는 결함(defects)이며, 이 두 가지 모두 동일한 구조를 통해 해결됩니다.
작게 시작하십시오. 첫날부터 군단 전체를 가동할 필요는 없습니다.
토큰당 비용을 지불하는 API 대신, 이미 지불하고 있는 구독 서비스로 실행되는 한 명의 코더(coder).
매번 작성자가 아닌, 읽고 문제를 제기하는 한 명의 리뷰어(reviewer).
당신이 직접 감시하는 대신, 디스패처(dispatcher)가 나머지 작업을 배분하고 머지 권한(merge authority)을 가진 한 명의 인간.
이러한 구조가 안정되면, 코더를 한 명씩 추가하십시오. 잠을 설치지 않고 전체 함대를 운영할 수 있게 해주는 것은 더 똑똑한 코더가 아니라, 검사자(checker)와 여전히 결정권을 쥐고 있는 인간이기 때문입니다.
실제 업무 경험을 바탕으로 작성되었습니다. 태국어판을 포함한 전체 버전은 productize.life에서 확인할 수 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기