호출 수와 종료 조건을 예산으로 묶는다
에이전트 수, 도구 호출, 재시도와 검토 단계를 곱하면 지연과 비용이 빠르게 커집니다. 각 역할에 최대 반복 수를 두고, 실패 시 전체 Crew를 다시 시작할지 해당 Task만 재시도할지 정해야 합니다. 실시간 응답보다 리서치 보고서처럼 기다릴 수 있는 비동기 업무가 이 구조에 더 잘 맞습니다.
예산표에는 model call뿐 아니라 검색 API, browser 실행, code sandbox와 사람이 검토한 시간도 넣습니다. 평균 호출 수만 보면 timeout 뒤 폭증하는 tail을 놓치므로 p50, p95 완료 시간과 가장 비싼 작업을 함께 봅니다. 부분 실패 때 성공한 Task artifact를 재사용하지 못하고 전체를 다시 돌리면 비용이 급격히 커집니다.
실패 정책은 Task의 성격에 따라 달라야 합니다. 독립 조사 하나가 timeout되면 “근거 부족”으로 남기고 계속할 수 있지만, 입력 schema 검증이 실패했다면 뒤 단계 전체를 막아야 합니다. retry에는 같은 prompt 반복보다 실패 원인에 따른 수정이 있어야 하며, 동일 오류가 연속되면 사람에게 인계합니다.
모든 호출에는 입력, 사용한 도구, 출력, 다음 역할로 넘긴 값을 남겨야 합니다. 여러 에이전트가 같은 잘못된 전제를 공유하면 서로 동의했다는 이유만으로 정답이 되지 않습니다. 최종 검토자는 초안과 독립된 근거나 결정적 규칙을 가져야 합니다.
각 Agent에 모든 tool을 주지 않습니다. 조사자는 읽기 전용 검색, 작성자는 artifact 생성, 배포나 외부 message는 별도 승인 단계처럼 최소 권한을 둡니다. 웹 문서 안의 prompt injection이 다음 Agent의 지시로 섞이지 않도록 외부 content와 system 정책을 구조적으로 분리합니다.
trace에는 prompt 전체를 무조건 영구 저장하기보다 task ID, model, tool version, handoff artifact와 validation 결과를 연결합니다. 고객 데이터나 secret이 여러 Agent log로 복제될 수 있으므로 field별 masking과 보존 기한도 필요합니다. 결과를 재현할 최소 정보와 민감 원문 보존을 구분합니다.