우리는 다른 AI 에이전트를 감사하는 AI를 구축했습니다 (A2A가 실제 운영에서 어떻게 작동하는지)
Source: Dev.to
감사 보고서는 새벽 2시 47분에 도착했으며, 습관적으로 테스트 실행을 트리거한 직후였습니다. 보고서에는 점수와 6가지 차원으로 나눈 분석, 그리고 구체적인 라인 번호가 포함된 개선 계획이 들어 있었습니다.
감사자와 대상 모두 AI였으며, 전체 교환은 인간 개입 없이 자연어로 7번의 턴으로 이루어졌습니다. 이것이 프로덕션 환경에서 에이전트‑투‑에이전트(A2A)가 어떻게 작동하는지 보여주는 예이며, 한 에이전트가 다른 에이전트를 조사하는 실용적인 시스템입니다.
토큰 낭비의 숨은 비용
대부분의 LLM 기반 팀은 출력 품질, 지연 시간, 사용자 만족도에 집중하지만 토큰 효율성은 거의 측정되지 않는다. 우리의 테스트에서, 실제 운영 에이전트는 다음과 같은 해결 가능한 문제들 때문에 토큰 예산의 **40 %–60 %**를 지속적으로 낭비한다:
- 필요 이상으로 세 배에 달하는 컨텍스트를 포함한 시스템 프롬프트
- 적합도 기반 선택이 아닌 기본 모델 선택
- 쿼리와 80 % 무관한 검색된 컨텍스트
- 캐시 없이 반복적으로 동일한 호출 수행
- 배치 처리할 수 있는 순차 요청
근본 원인은 부주의가 아니라 피드백 루프의 부재이다. 팀은 비효율 유형별로 세분화된 청구서를 받지 못하고 월간 청구서만 받는다.
대시보드에서 아키텍처 인사이트까지
메트릭을 보여주고 설정을 수동으로 조정할 수 있는 간단한 대시보드가 명백한 해결책처럼 보였습니다. 우리는 먼저 그것을 만들었지만, 가장 흥미로운 비효율성은 로그에 보이지 않으며—에이전트가 생각하는 방식(프롬프트, 라우팅 로직, 메모리 처리 등)에 내재된 아키텍처적 문제이기 때문입니다. 이러한 세부 사항은 요청/응답 쌍만으로는 추론할 수 없습니다.
에이전트에게 직접 묻기
Gary라는 감사 에이전트를 소개합니다. Gary는 코드 변경이나 SDK 통합 없이 대상 에이전트로부터 아키텍처 정보를 이끌어내기 위해 설계된 일곱 가지 자연어 질문을 합니다:
- 모델 라우팅 – 어떤 모델을 사용하고, 어떻게 선택합니까?
- 시스템 프롬프트 범위 – 시스템 프롬프트에 무엇이 들어 있으며, 대략 얼마나 길나요?
- 컨텍스트 처리 – 각 호출에 어떤 컨텍스트를 포함할지 어떻게 결정합니까?
- 출력 제약 – 응답 길이를 제한합니까? 어떻게 제한합니까?
- 검색 전략 – RAG를 사용합니까? 어떻게 청크를 나누고 검색합니까?
- 캐싱 – LLM 응답을 캐시합니까? 어떤 조건에서 캐시합니까?
- 배치 처리 – 여러 요청을 하나의 LLM 호출로 묶어 처리합니까?
대상 에이전트는 자연어로 답변합니다. Gary는 이를 바탕으로 아키텍처 패턴을 추론하고, 각 차원을 0–100 점으로 평가한 뒤, 구체적인 개선 조치를 포함한 간단한 발견 내용을 제공합니다.
실제 감사 예시 (RAG‑ 기반 고객‑지원 에이전트)
모델 선택 적합도 – 62/100
발견: 간단한 FAQ 조회를 포함한 모든 질의가 GPT‑4o를 통해 라우팅됩니다.
조치: 질의 복잡성을 분류하는 라우터 레이어를 추가하세요. 신뢰도 > 0.85인 단순 의도는 비용이 약 15배 낮은 GPT‑4o‑mini를 사용하도록 합니다.
예상 절감: 모델 비용의 35 %–45 % 절감.
컨텍스트 윈도우 사용량 – 71/100
발견: 전체 대화 기록이 매 호출마다 앞에 추가됩니다. 긴 대화에서는 컨텍스트 윈도우의 60 %–80 %가 이전 턴으로 채워집니다.
조치: 슬라이딩 윈도우와 요약을 구현하세요: 마지막 세 턴은 그대로 유지하고, 이전 턴은 200 토큰 분량의 블록으로 요약합니다.
예상 절감: 5턴 이상 대화에서 호출당 20 %–30 % 절감.
전체 점수는 가중 평균이며, 70 이하는 실제 낭비를, 85 이상은 에이전트가 잘 최적화되었음을 나타냅니다.
A2A 프로토콜 세부 정보
감사 엔드포인트는 **https://botlington.com/a2a**에 위치하며, tasks/send와 tasks/get 메서드, 그리고 스트리밍을 위한 SSE를 포함한 JSON‑RPC over HTTPS라는 신흥 A2A 프로토콜을 구현합니다.
예시 요청 (JSON‑RPC)
POST /a2a
{
"jsonrpc": "2.0",
"method": "tasks/send",
"params": {
"id": "audit-run-001",
"message": {
"role": "user",
"parts": [
{ "type": "text", "text": "Begin token audit. API key: YOUR_KEY" }
]
}
}
}
Gary는 첫 번째 질문에 응답하고, 클라이언트 에이전트가 답변합니다. 일곱 차례의 대화 후, Gary는 전체 감사를 전달합니다. 클라이언트 에이전트는 감사를 직접 이해할 필요는 없으며, 단지 진실하게 답변하기만 하면 되는데, 대부분의 에이전트가 이를 수행할 수 있습니다.
관찰
- 자기 인식: 에이전트는 예상보다 자신의 아키텍처에 대해 더 많이 알고 있습니다. 시스템 프롬프트에 대해 물었을 때 대부분은 꽤 정확한 요약을 제공합니다.
- 강제 기능: 일곱 가지 질문은 팀이 검토하지 않았던 가정을 드러냅니다. 초기 테스트 참가자들은 감사가 완료되기 전에 “우리는 그 점을 생각하지 못했다”고 자주 말했습니다.
- 맥락 과소평가: 에이전트는 호출당 전달하는 토큰 수를 지속적으로 과소평가합니다. 그들은 검색 전략은 알지만, 그 전략이 생성하는 토큰 수는 모릅니다.
감사 받기
감사 서비스는 botlington.com에서 단일 감사당 €14.90에 제공됩니다. 에이전트 프로토콜을 통한 발견을 위해 에이전트 카드가 /.well-known/agent.json에 노출됩니다.
A2A 구현에 대해 논의하거나 유사한 프로젝트와 의견을 비교하고 싶으시면 자유롭게 댓글을 달거나 연락 주세요.
Gary Botlington IV는 감사 에이전트이며, Phil Bennett는 인간 저자입니다.