지능형 라우팅: AI 에이전트가 서로 대화하는 방식
라우팅은 멀티 에이전트 시스템의 숨은 인프라입니다. MadoHub이 에이전트 간 통신을 명시적이고, 검사 가능하고, 설정 가능하게 만드는 방법을 소개합니다.
모든 멀티 에이전트 시스템에서 가장 주목받는 것은 에이전트 자체입니다. 하지만 무엇을 어디로 보낼지 결정하는 라우팅 계층이야말로 시스템이 작동할지, 아니면 이해할 수 없는 소음으로 무너질지를 결정합니다.
라우팅의 진짜 의미
라우팅은 에이전트의 출력을 가져와 올바른 대상에게, 올바른 형식으로, 올바른 시점에 전달하는 과정입니다. 단순해 보이지만, 이 세 축 각각이 실제 복잡성을 만듭니다.
- 올바른 대상: 출력이 한 에이전트로 가는가, 여러 에이전트로 가는가? 내용에 따라 달라지는가?
- 올바른 형식: 그대로 전달할까, 요약할까, 변환할까?
- 올바른 시점: downstream 에이전트가 즉시 시작해야 할까, 여러 입력을 기다려야 할까, 업데이트를 폴링해야 할까?
트리거: 라우트가 발동되는 시점
MadoHub의 모든 연결에는 trigger가 있습니다 — 출력이 downstream으로 전달되는 시점을 결정하는 조건입니다. 네 가지가 있습니다.
- on-complete: upstream 에이전트가 현재 작업을 마치면 발동
- on-idle: upstream 에이전트가 명확한 완료 신호 없이 조용해지면 발동
- on-keyword: 타일 출력에서 지정한 키워드를 감시하다가 나타나면 발동
- always: 상태와 무관하게 계속 전달합니다. 실행 중인 프로세스를 엿볼 때 유용합니다
알아둘 만한 점 하나: on-complete와 on-idle은 실제로 속도가 다른 두 가지가 아닙니다. 내부적으로는 동일하게 처리되며, 둘 다 같은 idle 타이머를 시작해 신호 이후 약 8초의 정적을 기다린 뒤 전달합니다. 둘 다 즉시 발동하지 않습니다.
Transform 노드
어떤 에이전트의 원시 출력은 다음 에이전트에 적합하지 않을 때가 있습니다. code generator는 설명이 붙은 전체 파일을 만들 수 있지만, test writer는 함수 시그니처만 필요할 수 있습니다.
Transform 노드는 연결 위에 놓여 전송 중인 데이터를 다시 구성합니다. 각 연결은 다음 다섯 가지 transform 유형 중 하나를 가집니다.
- raw: 출력의 마지막 10줄을 그대로
- summary: AI가 생성한 출력 요약
- full-output: 출력의 마지막 30줄. 더 많은 맥락이 필요할 때
- prompt-wrap:
{output},{round},{maxRounds},{source}같은 변수를 쓸 수 있는 템플릿으로 출력을 감쌉니다 - ai-routing: downstream 에이전트를 위해 맞춤 제작된, AI가 생성한 컨텍스트 인지형 프롬프트 (API key 필요)
폭주하는 루프 막기
두 에이전트를 서로 연결하면 루프가 만들어집니다. 리뷰-수정 워크플로가 바로 이 루프로 동작하는 방식입니다 — 하지만 무제한 루프는 몇 분 만에 컨텍스트 윈도우나 예산을 다 써버리는 방법이기도 합니다.
MadoHub은 모든 라우트에 루프 보호 기능을 둡니다: 최대 라운드 수(기본값 5, 1~20 사이로 설정 가능), 전달 간 쿨다운(기본값 3초, 최대 30초까지 설정 가능), 그리고 선택적인 stop keyword — 대소문자를 구분하지 않는 부분 문자열을 지정하면, 그것이 에이전트 출력에 나타나는 순간 루프가 종료됩니다.
또 다른 종류의 안전장치로 Peer-Veto가 있습니다: 이것은 투표 시스템이 아니라 전달 게이트입니다. 에이전트들이 합의할 것을 요구하지 않습니다. 대상 타일이 없거나 프로세스가 이미 종료된 경우에만 전달을 막아서, 라우트가 받을 수 없는 타일로 조용히 전달되는 일이 없도록 합니다.
라우팅 계층을 들여다보기
대부분의 에이전트 오케스트레이션 시스템의 가장 큰 문제는 불투명성입니다. 뭔가 잘못됐을 때, 문제가 에이전트인지 프롬프트인지 라우팅인지 알 수 없습니다.
MadoHub은 모든 라우팅 결정을 기록합니다. 어떤 연결이든 클릭하면 전체 이력을 볼 수 있습니다. 무엇이 언제 전송되었는지, 어떤 trigger가 발동되었는지, 변환이 적용되었는지까지 확인할 수 있습니다. 덕분에 멀티 에이전트 워크플로 디버깅이 네트워크 트레이스를 읽는 것처럼 명확해집니다.
라우팅은 인프라입니다. 화려하진 않지만, 제대로 만드는 것과 그렇지 않은 것의 차이는 데모와 신뢰 가능한 시스템의 차이입니다.