인포그랩은 엔터프라이즈 AI 에이전트 플랫폼 ‘NEXA’를 개발하고 있습니다. NEXA는 AI·데이터, 소프트웨어 개발, DevOps·인프라, 제품·기획, 생산성 등 다양한 분야에 업무 특화 에이전트를 제공합니다. 사용자는 Claude, GPT, Gemini 중 원하는 모델을 선택하고, 시스템 프롬프트를 설계해 맞춤형 에이전트도 만들 수 있습니다.

소프트웨어 개발자로서 저는 NEXA의 서비스 품질과 에이전트 응답 품질을 책임지고 있습니다. 그런데 적절한 에이전트 성능 평가 방법과 사례가 드물어 고민이었습니다.

LLM은 ‘Humanity's Last Exam’ 등 다양한 벤치마크와 데이터셋으로 평가할 수 있습니다. 그러나 전통적인 LLM 성능 평가 방식으로는 에이전트 성능을 제대로 측정하기 어렵습니다.

에이전트는 프롬프트, RAG, MCP, 도구 호출, 다단계 추론 등을 결합해 자율적으로 동작합니다. 에이전트 성능을 정확히 측정하려면 이러한 특성을 고려한 전용 평가 방법이 필요합니다.

저는 에이전트에 특화된 성능 평가 방법을 다각도로 탐색했습니다. 이 과정에서 평가 시 고려 사항, LLM-as-a-Judge 평가 방식, 도구 호출·사용 능력 평가 방법 등을 조사하며 실무 인사이트를 얻었습니다. 이 글에서는 그 내용을 정리하고, NEXA에 LLM-as-a-Judge를 적용해 에이전트 성능을 평가한 방법과 결과를 자세히 공유하겠습니다.

에이전트 유형과 특징

먼저 일반적인 에이전트의 유형과 특징을 살펴보려 합니다. 에이전트는 발전 단계에 따라 생성형 에이전트, 도구 사용 에이전트, 계획 수립 에이전트로 나뉩니다.

생성형 에이전트 (Generator Agent 단계)

생성형 에이전트 아키텍처. 출처=DeepEval | 인포그랩 GitLab
생성형 에이전트 아키텍처. 출처=DeepEval

오늘날 운영 중인 대부분의 LLM 애플리케이션이 생성형 에이전트에 해당합니다. 고객 지원 챗봇이나 RAG 기반 애플리케이션이 대표적인 예입니다. 이러한 에이전트는 사용자 쿼리에 반응해 응답하는 방식으로 동작합니다.

도구 사용 에이전트 (Tool-Calling Agent 단계)

도구 사용 에이전트 아키텍처. 출처=DeepEval | 인포그랩 GitLab
도구 사용 에이전트 아키텍처. 출처=DeepEval

도구 사용 에이전트는 현재 AI 개발의 주류를 이루는 단계입니다. 이 유형의 에이전트는 API, 데이터베이스, 검색 엔진에서 정보를 검색하거나, 외부 도구를 활용해 항공편 예약, 웹 브라우징, 계산 등 작업을 수행할 수 있습니다.

계획 수립 에이전트 (Planning Agent 단계)

계획 수립 에이전트 아키텍처. 출처=DeepEval | 인포그랩 GitLab
계획 수립 에이전트 아키텍처. 출처=DeepEval

계획 수립 에이전트는 단순한 도구 사용을 넘어 다단계 워크플로를 체계적으로 구조화하고 결과에 따라 실행을 선택합니다. 도구 사용 에이전트와의 차별점은 상태 변화를 탐지하고, 접근 방식을 지속적으로 개선하며, 작업 순서를 논리적으로 결정한다는 점입니다. 다만 사용자 요청 없이 능동적으로 행동하지는 못합니다. 한 작업이 끝나더라도, 그 경험과 학습이 다음 작업으로 이어지지 않습니다.

에이전트 성능 평가 시 고려 사항

이러한 에이전트 성능을 평가할 때는 에이전트의 고유한 특성을 기준에 반영해야 합니다. ‘작업 완료’와 같은 지표로 자율형 AI 워크플로의 성능을 측정하는 게 그 예입니다. 이는 전통적인 LLM 평가 방식과 본질적으로 다릅니다.

테스트 케이스가 평가할 컴포넌트에 배치되는 에이전트 아키텍처. 출처=DeepEval | 인포그랩 GitLab
테스트 케이스가 평가할 컴포넌트에 배치되는 에이전트 아키텍처. 출처=DeepEval

에이전트의 고유한 특성

에이전트의 특성을 구체적으로 이해하면 성능 평가 기준을 명확히 설정할 수 있습니다. 다음은 에이전트의 네 가지 주요 특성입니다.

  1. 아키텍처 복잡성

    에이전트는 여러 컴포넌트로 구성되며, 복잡한 워크플로로 연결됩니다. 성능을 평가할 때는 다중 컴포넌트 간의 상호작용을 고려해야 합니다.

  2. 도구 사용 능력

    에이전트는 외부 도구와 API를 호출해 작업을 수행합니다. 성능 평가는 단순한 텍스트 생성을 넘어 실제 행동과 상호작용까지 포함해야 합니다.

  3. 자율성

    에이전트는 다음에 수행할 작업을 동적으로 결정하며, 인간 개입은 최소화됩니다. 이러한 의사결정 과정도 성능 평가 대상입니다.

  4. 추론 프레임워크

    에이전트는 고급 계획이나 의사결정 전략을 바탕으로 행동을 가이드합니다. 성능 평가는 단순한 입출력 관계를 넘어 추론 과정의 품질도 측정해야 합니다.

도구 호출 평가 요소

앞서 언급했듯, 도구 사용 에이전트는 오늘날 AI 개발의 핵심 흐름을 이루고 있습니다. 도구 호출은 이 에이전트의 핵심 기능으로, 성능 평가에서 반드시 살펴봐야 할 요소입니다. 다만 호출 과정이 복잡하므로, 평가 시 다양한 요소를 함께 고려해야 합니다. 주요 내용은 다음과 같습니다.

시나리오 인식 능력

에이전트는 쿼리를 접할 때, 도구 사용의 필요성을 적절히 판단해야 합니다. 필요한 정보가 이미 대화 기록에 있으면, 불필요한 도구 호출을 피해야 합니다. 또 사용 가능한 도구가 작업에 불충분하거나 관련이 없으면, 억지로 호출하기보다 한계를 인정해야 합니다.

도구 선택 능력

에이전트는 필요한 도구를 정확히 식별하고, 불필요한 도구는 선택하지 말아야 합니다. 도구 선택은 ‘맞다/틀리다’의 문제가 아닙니다. 이는 정밀도와 재현율 두 가지 측면을 모두 포함합니다. 불필요한 도구를 선택하면 정밀도가 낮아지고, 필요한 도구를 빠뜨리면 재현율이 떨어집니다.

매개변수 처리 능력

에이전트는 도구 호출 시 매개변수를 정확히 처리해야 합니다.

  • 모든 필수 매개변수를 올바른 이름으로 제공합니다.
  • 선택적 매개변수를 적절히 처리합니다.
  • 매개변숫값의 정확성을 유지합니다.
  • 도구 사양에 따라 인자 형식을 지정합니다.

순차적 의사결정 능력

에이전트는 다단계 작업 수행 시, 다음과 같은 의사결정을 내려야 합니다.

  • 최적의 도구 호출 순서를 결정합니다.
  • 도구 호출 간의 상호 의존성을 처리합니다.
  • 여러 작업에서 컨텍스트를 유지합니다.
  • 부분적인 결과나 실패 상황에 적응합니다.

LLM-as-a-Judge 평가 방식

LLM-as-a-Judge 아키텍처. 출처=Arize AI, 자체 제작

현재 업계에는 에이전트 성능 평가 사례가 LLM 평가에 비해 부족합니다. 에이전트는 고유한 특성이 있기에 전통적인 LLM 평가 방식만으로는 성능을 측정하기 어렵습니다.

LLM-as-a-Judge 평가 방식을 활용하면 이 문제를 보완할 수 있습니다. 이는 LLM이 다른 LLM 애플리케이션의 품질을 평가하는 기술로, 멀티 에이전트 시스템 테스트에도 활용할 수 있습니다. LLM은 품질·정확성·관련성·일관성 등 기준에 따라 에이전트 응답을 평가합니다. 이 방식은 자동화와 확장이 가능하며, 수천 개의 응답을 빠르고 일관되게 대규모로 평가할 수 있습니다.

LLM-as-a-Judge는 실제 프로덕션 환경에서 LangfuseArize AI 등 플랫폼으로 사용할 수 있습니다.

장점

  • 확장성, 비용 효율성: 인간 평가자 패널을 구성하는 것보다 더 빠르고 저렴하게 수천 개의 출력을 평가합니다.
  • 인간 판단 유사성: 평가 기준이 명확할 때, 단순한 메트릭보다 유용성, 안전성, 일관성과 같은 미묘한 특성을 더 잘 포착합니다.
  • 반복 비교 가능성: 고정된 평가 기준을 사용하면 동일한 프롬프트를 다시 실행해 일관된 점수와 간결한 평가 근거를 얻을 수 있습니다.

NEXA의 LLM-as-a-Judge 적용 사례

인포그랩은 NEXA에 Langfuse의 LLM-as-a-Judge Evaluator를 적용해 에이전트의 도구 사용 능력을 평가하고 있습니다. 평가 결과는 점수(Score)와 코멘트로 산출되며, 각 채팅 실행 시 로그로 기록됩니다.

도구 정확성: 올바른 도구 호출 여부

NEXA에서 Langfuse의 LLM-as-a-Judge Evaluator로 도구 정확성을 평가한 결과 | 인포그랩 GitLab
NEXA에서 Langfuse의 LLM-as-a-Judge Evaluator로 도구 정확성을 평가한 결과

도구 정확성 평가는 LLM-as-a-Judge 프롬프트로 ‘에이전트가 사용자 질문에 따라 올바른 도구를 호출했는지’를 평가합니다. 우선 도구 호출의 정확성(0=잘못, 1=정확)을 판정합니다. 아울러 도구 선택의 적절성, 매개변수 추출 정확성, 질문 외부 정보 사용 여부를 종합적으로 고려합니다. 또한 도구 호출의 실행 가능성과 질문에 따른 정확한 대응 여부를 함께 판단합니다. 각 평가에는 점수 근거 설명을 함께 제공합니다.

  • 프롬프트 예시:

    당신은 질문과 도구 호출을 평가하여 호출된 도구가 질문에 답할 수 있는지 판단하는 평가 어시스턴트입니다. 도구 호출은 별도의 에이전트에 의해 생성되었으며, 아래에 제공된 도구 목록에서 선택되었습니다. 해당 에이전트가 호출할 올바른 도구를 선택했는지 결정하는 것이 당신의 역할입니다.

    [BEGIN DATA]
    ************
    [Question]: {{query}}
    ************
    [Tool Called]: {{tool_called}}
    [END DATA]

    당신의 응답은 "1" 또는 "0" 중 하나여야 하며, 어떤 텍스트나 문자도 포함해서는 안 됩니다. "0"은 선택된 도구가 질문에 답하지 못하거나, 도구에 질문에 제시되지 않은 정보가 포함되어 있거나, 도구 시그니처의 매개변숫값이 아래 도구 시그니처에서 지정된 형식과 일치하지 않는다는 의미입니다.

    "1"은 올바른 도구 호출이 선택되었고, 질문에서 올바른 매개변수가 추출되었으며, 생성된 도구 호출이 실행 가능하고 정확하며, 질문에 제시되지 않은 외부 정보가 사용되지 않았다는 의미입니다.

    [Tool Definitions]: {{tool_list}}

    질문, 참조 텍스트, 그리고 답변을 주의 깊게 읽은 후, 답변이 정확한지 판단하는 방법을 단계별로 설명하여 작성하세요. 처음부터 단순히 점수를 말하는 것은 피하세요. 당신의 응답 점수는 1 또는 0이어야 하며, 해당 점수 외에는 어떤 텍스트나 문자도 포함해서는 안 됩니다. 점수 1은 질문이 답변에 의해 올바르고 완전히 답해졌다는 의미입니다. 점수 0은 질문이 답변에 의해 올바르지 않게 답해지거나 부분적으로만 답해졌다는 의미입니다.

    응답 예시:

    Score: 1.0
    Reasoning: Score 이유에 대한 당신의 추론 설명

    단계별로 생각하세요.
  • 평가 결과 코멘트 예시:

    - 예시 1
    web browsing 도구는 웹 검색 기능을 제공하며, 특정 지역의 날씨 정보를 검색하는 데 적합합니다.
    따라서 주어진 질문인 "서울 날씨를 알려줘"에 대한 팁을 찾기 위해 호출된 도구는 적절합니다.

    - 예시 2
    도구 호출이 빈 상태로 제공되었으므로 질문에 대한 적절한 도구가 호출되지 않았습니다.
    서울 날씨를 알기 위해서는 웹 브라우징 도구와 같은 기능이 필요했지만 호출된 도구가 없었습니다.

    - 예시 3
    제공된 도구 목록에 날씨 정보를 검색하고 제공하는 도구는 없습니다.
    사용자가 질문한 서울의 날씨에 대한 정보를 제공하기 위한 적합한 도구가 호출되지 않았습니다.
    또한 호출된 도구가 없는 상태에서 사용자 요구에 적절히 응답하지 않았으므로, 이는 잘못된 도구 호출입니다.

도구 효율성: 도구 사용의 효율 평가

NEXA에서 Langfuse의 LLM-as-a-Judge Evaluator로 도구 효율성을 평가한 결과 | 인포그랩 GitLab
NEXA에서 Langfuse의 LLM-as-a-Judge Evaluator로 도구 효율성을 평가한 결과

도구 효율성 평가는 LLM-as-a-Judge 프롬프트로 ‘에이전트가 도구를 얼마나 효율적으로 사용했는지’를 평가합니다. 구체적으로 중복 호출 여부, 목표 달성에 필요한 적정 호출 횟수, 불필요한 도구 사용, 과도한 호출 빈도를 체계적으로 점검합니다. 평가 결과는 0.0~1.0(값이 클수록 효율성이 높음)의 점수로 제시합니다. 각 평가에는 점수 근거 설명을 함께 제공합니다.

  • 프롬프트 예시:

    당신은 도구 사용의 효율성을 평가하는 평가 어시스턴트입니다. 주어진 질문에 대해 에이전트가 도구를 얼마나 효율적으로 사용했는지 판단하는 것이 당신의 역할입니다. 중복 도구 호출과 도구 사용 빈도의 적절성을 중심으로 평가하세요.

    [BEGIN DATA]
    ************
    [Question]: {{query}}
    ************
    [Tool Call Sequence]: {{tool_sequence}}
    [END DATA]

    도구 사용의 효율성을 다음 기준으로 분석하여 평가 근거를 설명하세요:

    1) 같은 작업을 위한 중복 도구 호출 여부 확인
    2) 목표 달성을 위한 적정 도구 호출 횟수 평가
    3) 불필요한 도구 사용이나 과도한 호출 빈도 검토를 통해 0.0~1.0 사이의 점수로 효율성을 평가하세요.

    응답 예시:

    Score: 1.0
    Reasoning: 점수 부여 근거에 대한 당신의 추론 설명

    단계별로 생각하세요.
  • 평가 결과 코멘트 예시:

    - 예시 1
    에이전트는 서울 날씨 정보를 얻기 위해 웹 브라우징 도구를 사용했지만,
    같은 작업에 대해 동일한 도구를 두 번 호출하고 세 번의 페이지 크롤링을 요구함으로써 중복 호출이 발생하였고,
    이는 효율성을 저하하는 요소입니다.

    - 예시 2
    에이전트는 웹 검색 도구를 통해 서울 날씨를 확인하기 위해 세 번의 페이지를 크롤링했지만,
    같은 정보를 얻기 위한 중복 호출은 없으며 목표를 달성하기에 적절한 횟수로 보입니다.

    - 예시 3
    에이전트는 웹 검색과 페이지 크롤링을 2회 호출하여 날씨 정보에 도달하는 데 필요한 효율성을 달성했지만,
    크롤링을 2회 한 것은 중복 호출로 평가 가능하여 불필요한 방식으로 보입니다.

맺음말

에이전트 성능 평가는 단순한 정확도 측정을 넘어, 복합적이고 다차원적인 접근이 필요합니다. NEXA의 LLM-as-a-Judge 적용 사례처럼 실제 비즈니스 환경에서는 도구 사용 현황, 작업 완료 여부, 추론 능력을 종합적으로 살펴봐야 합니다.

무엇보다 중요한 건 에이전트의 수준과 사용 사례에 맞게 적절한 평가 전략을 수립하는 일입니다. 빠르게 발전하는 에이전트 생태계에서는 지속적인 벤치마크 업데이트와 실전 테스트가 필수입니다.

결국 에이전트의 진정한 가치는 완벽한 성능이 아니라, 실제 업무 환경에서 신뢰할 수 있는 자동화 수준을 달성하는 데 있습니다. 적절한 평가 체계를 실무에 도입하면, 에이전트의 신뢰성과 활용도를 한층 더 강화할 수 있을 것입니다.

참고 자료

  1. Langfuse ‘Evaluation Overview’ 공식 기술 문서, https://langfuse.com/docs/evaluation/overview
  2. Arize AI, ‘Agent Evaluation’ 공식 기술 문서, https://arize.com/ai-agents/agent-evaluation/
  3. Pratik Bhavsar·Galileo Datasets, “Agent Leaderboard: Evaluating AI Agents in Multi-Domain Scenarios”, Hugging Face, 2025-02-12, https://huggingface.co/blog/pratikbhavsar/agent-leaderboard
  4. Humanity's Last Exam 홈페이지, https://agi.safe.ai
  5. Kritin Vongthongsri, “LLM Agent Evaluation: Assessing Tool Use, Task Completion, Agentic Reasoning, and More”, Confident AI, 2025-08-08, https://www.confident-ai.com/blog/llm-agent-evaluation-complete-guide

지금 이 기술이 더 궁금하세요? 인포그랩의 DevOps 전문가가 알려드립니다.