포스트

AI Agent에 관한 기본 개념 정리

AI Agent에 관한 기본 개념 정리

개요

최근 Agent 기반 서비스가 폭발적으로 증가하면서, “Agent”라는 용어가 다소 혼란스럽게 사용되는 경향이 있는 것 같습니다. 새로운 기술을 적극적으로 수용하는 것은 바람직하지만, 용어에 대한 충분한 이해 없이 무분별하게 사용하는 것은 추후에 큰 문제를 야기할 수 있습니다. 특히, 개발자와 비개발자 간에 동일한 용어에 대해 서로 다른 이해를 가질 경우, 서비스 개발 과정에서 의사소통 비용이 크게 증가한다는 것은 이미 많은 분들이 경험해 보셨을 겁니다.

저희 회사에서도 에이전트 기반 개발을 지향하는 움직임이 일면서, 심지어 개발자들 사이에서도 “에이전트”라는 용어에 대한 이해가 조금씩 다르다는 것을 발견하게 되었습니다. 이러한 상황에 약간의 우려를 느껴, “AI Agent”라는 용어에 대한 공감대를 형성하기 위한 자리를 마련하게 되었습니다. 이를 위해 AI Agent에 대한 자체 리뷰와 자료 준비를 진행하면서 정리한 내용을 공유하고자 이 글을 작성하게 되었습니다.

이 글이 부디 읽는 분들께 도움이 되기를 바라며, 저 또한 이 글을 작성하는 시점에서도 다소 모호하게 이해하거나 잘못 알고 있는 부분이 있을 수 있다고 생각합니다. 따라서 다양한 관점에서의 피드백이나 토론이 이루어지면 좋겠습니다.

AI Agent란 무엇일까요?

AI Agent는 특정 목표를 자율적으로 달성하도록 설계된 독립적인 실행 단위입니다. 이들은 작업을 수행하고, 사용자와 상호작용하며, 외부 도구를 활용하고, 다른 에이전트와 협력하는 능력을 갖추고 있습니다. 다음은 다양한 회사에서 ‘Agent’를 정의한 내용입니다.

  • Google은 AI Agent를 특정 목표를 달성하기 위해 자율적으로 행동하도록 설계된 독립적인 실행 단위로 정의합니다.
  • OpenAI는 AI Agent를 지침과 도구로 구성된 대형 언어 모델(LLM)로 정의합니다.
  • AWS는 환경과 상호 작용하며 데이터를 수집하고, 사전 정의된 목표를 달성하기 위한 작업을 스스로 결정하고 수행할 수 있는 소프트웨어 프로그램으로 설명합니다. 핵심은 사람이 목표를 설정하면, AI 에이전트가 목표 달성을 위한 최적의 조치를 독립적으로 선택한다는 점입니다.

AI Agent의 구조, 어떻게 생겼을까?

AI Agent는 크게 다음과 같은 요소들로 구성됩니다.

  • Model: 에이전트의 추론과 의사결정을 담당하는 LLM
  • Tool(s): 외부 시스템과 상호작용하거나 데이터를 수집·조작하는 API 또는 함수
  • Instruction: 에이전트의 행동 방식을 명확히 정의하는 명령
  • Optional 요소:
    • Context: 에이전트의 목적, 행동 및 제약을 정의
    • Output type: 에이전트가 반환할 결과의 형식 (기본값: 텍스트)
    • Guardrails: 사용자 입력에 대한 검사/검증 등

AI Agent의 핵심, Tool

Tool은 AI 에이전트가 다양한 작업을 수행할 수 있도록 지원하는 코드 구성 요소입니다. 이는 AI 에이전트가 외부 세계와 상호 작용하고 특정 행동을 수행할 수 있게 하여, 에이전트의 능력을 크게 확장합니다. 유능한 에이전트와 LLM의 차이는 “툴을 얼마나 효과적으로 사용하는지”에 달려있다고 해도 과언이 아닙니다. 기술적으로 툴은 특정 작업을 실행하도록 설계된 모듈형 코드 구성 요소(예: 파이썬 함수, 클래스 메서드, 다른 특화된 에이전트)로 볼 수 있으며, 기존에 사용되던 개념과 유사합니다. 앞으로는 에이전트가 수행해야 할 내부 로직이나 동작을 “Tool”이라고 지칭하는 것이 좋습니다. Richard 께서 말씀하신 최소한의 작업을 수행하는 에이전트가 Tool의 개념이라고 생각됩니다.

AI Agent, 어떻게 움직일까?

AI Agent의 동작 방식은 다음과 같은 단계로 이루어집니다.

  1. 사용자 요청 분석: 작업 목표, 필요한 데이터 및 작업 파악
  2. 의사 결정: 목표 달성을 위한 과정 및 Tool 선정
  3. 작업 수행 및 결과 반환: Tool을 사용하여 단위 작업을 수행하고, 그 결과를 사용자에게 반환

다음은 영화를 추천해주는 Agent가 존재한다고 가정하고 예시를 통해 이해를 도와보겠습니다.

영화 추천 에이전트의 동작 구조 예시

(출처: AWS “AI 에이전트란 무엇일까요?”)

영화 추천 Agent는 사용자의 요청(“오늘 볼만한 영화 이메일로 보내줘”)을 받으면, 자신이 사용할 수 있는 툴과 사용자의 요청을 분석합니다. 분석을 통해 사용자의 요청 작업을 수행하기 위해 아래의 순서로 의사 결정을 진행할 수 있을 것입니다.

  1. (사용자 취향DB를 조회 할 tool이 있으니)사용자 취향을 파악하고,
  2. (영화에 관한 meta data를 조회할 tool이 있으니)영화 설명을 읽고,
  3. 위 정보를 토대로 추천할 영화를 선택하고,
  4. 이메일을 작성하여 (이메일 전송 tool을 사용하여) 사용자에게 보내자.

위 의사결정 내용을 토대로 에이전트는 Tool을 사용하여 작업을 수행하고, 사용자는 에이전트의 작업 결과로 영화 추천 이메일을 받게 될 것입니다.

이제 AI Agent가 어떻게 동작하는지 다소 감이 오실 것이라 생각합니다.

언제 AI Agent를 써야 할까?

AI Agent는 다음과 같은 상황에서 특히 유용합니다.

  • 복잡한 의사 결정: 예외 처리, 맥락에 따라 달라지는 판단이 필요한 워크플로우 (예: 환불 요청 처리 시, 고객 이용 내역, 환불 정책, 과거 이력 등을 종합적으로 고려해야 하는 경우)
  • 유지보수가 어려운 규칙: 규칙이 너무 많거나 복잡하여 관리가 비효율적인 경우 (예: 글로벌 기업의 공급업체 보안 심사)
  • 비정형 데이터 활용: 자연어 해석, 문서 의미 추출, 대화형 상호작용이 필요한 경우 (예: 보험 청구서 처리 시, 진단서, 진료 기록, 상담 대화 등 다양한 형태의 비정형 데이터 분석)

AI Agent, 이럴 땐 불리하다!

앞서 설명한 케이스에서 AI Agent의 강점을 확인하였습니다. 하지만, AI Agent가 항상 만능인 것은 아닙니다. 아래의 표에 AI Agent를 사용하는 것이 오히려 불리한 대표적인 3가지 케이스를 정리하였습니다. 쉽게 생각해서 굳이 이걸 LLM까지 써서 작업해야해? 라는 생각이 드는 작업은 AI Agent를 사용하지 않는 것이 유리할 수 있다고 이해하시면 될 것 같습니다.

Case예시설명
명확한 규칙신규 직원 입사 시, 사번 생성 → 계정 생성 → 환영 이메일 발송모든 단계가 고정된 순서와 조건에 따라 진행되며, 예외가 거의 없음. RPA나 워크플로우 자동화로 효율적으로 처리 가능
단순 반복 작업매일 오전 9시에 재고 데이터 추출 및 보고서 생성입력과 출력이 명확하고, 예외 상황이 거의 없어 규칙 기반 자동화가 가장 효율적임
데이터 유효성 검사고객 정보 입력 시, 전화번호가 11자리인지 확인단순한 if-then-else 규칙으로 처리 가능하며, 변경이나 예외가 거의 없음

Multi Agent System: AI Agent의 협업

Multi Agent System은 여러 AI Agent가 협력하여 작업을 수행하는 시스템을 의미합니다. 여기에는 다양한 패턴이 존재하며, 에이전트가 특정 역할을 하는 에이전트를 Tool처럼 호출하여 사용하는 “Agent as tool” 방식, 에이전트들이 상호작용하며 작업을 주고받는 “Sub Agents(또는 Handoff)” 방식 등이 있습니다. Google ADK와 OpenAI Agents SDK는 유사한 기능을 제공하지만 다른 명칭을 사용하며, Multi Agent System의 사용 패턴은 다양하게 분류될 수 있습니다.

주요 용어 정리 (개발 관점)

AI Agent 개발 시 혼란을 줄이기 위해 몇 가지 용어를 명확히 정의할 필요가 있습니다. 다음은 제가 나름대로 자주 사용되는 용어를 정의한 내용입니다. Google ADK, OpenAI Agent Development Kit 문서 각각에서 서로 다른 단어가 비슷한 의미를 지니는 경우가 있어 나름의 정의를 내린것이며 이후 에이전트 관련 글을 포스팅 할 때 아래의 이미를 기준으로 작성할 예정입니다.

  • Manager Agent: 중앙에서 사용자 요청을 처리하고 다른 에이전트들에 작업을 할당하는 에이전트
  • Sub Agent: Multi Agent System에서 Handoff 기능을 수행하는 에이전트
  • Tool: Agent가 작업을 수행하기 위해 필요한 “단위 기능”을 위한 코드/모듈/에이전트
  • Host Agent: A2A 통신 개념에서 필요한 에이전트를 “호출하는” 에이전트
  • Client Agent: A2A 통신 개념에서 “호출받는” 에이전트

Summary

AI Agent는 LLM 모델로 구동되어 실제 작업을 수행하는 소프트웨어이며, Tool은 AI Agent가 작업을 수행하는 데 필요한 단위 기능입니다. 개발 관점에서는 용어 통일을 통해 의사소통 비용을 최소화하는 것이 중요합니다.

Reference

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.