AI 에이전트는 환경을 인지하고, 의사결정을 내리며, 특정 목표 달성을 위해 행동을 취할 수 있는 자율 시스템으로 정의됩니다. 에이전트와 어시스턴트의 미묘한 차이점도 설명되는데, 어시스턴트가 인간과의 대화형 상호작용에 초점을 맞추는 반면, 에이전트는 초기 지시를 받은 후 독립적으로 작업을 수행하는 백그라운드 작업과 유사합니다. AI 에이전트의 주요 활용 사례로는 일상적이고 반복적인 비즈니스 프로세스 자동화(예: 송장 생성, 경비 분류, 제안서 작성, JIRA 티켓 생성)가 있습니다.
AI 에이전트를 구축하기 위한 핵심 구성 요소는 다음과 같습니다:
- 계획 및 추론 (Planning & Reasoning): 인간이 목표 달성을 위해 단계를 계획하고 반성하는 과정과 유사합니다. ‘Chain of Thought’는 AI가 추론 과정을 단계별로 설명하도록 강제하여 더 정확한 답변을 유도하는 프롬프트 엔지니어링 기법입니다. ‘Role Play’는 AI가 특정 성격이나 행동을 채택하도록 유도하여 다양한 시나리오에 대응하게 합니다.
- 환경 인식 (Environment Perception): AI 에이전트가 작동하는 컨텍스트를 의미합니다. 실시간 데이터 접근이 없으므로, 현재 날짜와 같은 정보를 명시적으로 제공해야 합니다.
- 도구 호출 또는 함수 호출 (Tool/Function Calling): AI 에이전트가 외부 도구를 사용하거나 구조화된 출력을 생성하도록 하는 데 사용됩니다. 이는 외부 API에서 데이터를 가져오거나, 실시간 데이터를 얻거나, 개인/독점 데이터에 접근하거나, 확정적인 작업을 수행할 때 유용합니다. 특히, LLM은 확률론적 시스템이므로 정확한 산술 계산과 같은 확정적 작업에는 코드 인터프리터나 계산기와 같은 도구를 사용하는 것이 필수적입니다.
- 메모리 (Memory): AI 에이전트가 진행 상황, 환경, 행동을 기억하도록 하는 기능입니다. ‘RAG(Retrieval Augmented Generation)’는 데이터 소스에서 평문 데이터를 가져와 LLM이 해당 정보를 활용하도록 프롬프트에 삽입하는 단순하지만 효과적인 방법입니다.
AI 에이전트의 개발에는 여전히 몇 가지 과제가 존재합니다. 환각(hallucination) 현상, 추론 능력에 대한 논쟁, 그리고 불안정한 도구 호출 등이 그것입니다. 이러한 시스템의 성능을 평가하기 위해 공개 벤치마크나 LLM을 ‘판사’로 활용하여 자체 진행 상황을 평가하는 접근 방식이 사용될 수 있습니다.
강연자는 LLM 기반 애플리케이션 구축을 위한 오픈소스 Ruby 프레임워크인 langchainrb
를 소개합니다. 이 프레임워크는 다양한 LLM 제공업체를 통합된 인터페이스로 지원하여 쉽게 교체하고 테스트할 수 있게 합니다. 실제 시연에서는 ‘nerds and threads’라는 가상의 전자상거래 상점을 예시로 들어, AI 어시스턴트가 고객 관리, 재고 관리, 결제, 주문 관리, 배송 및 이메일 서비스 등 6가지 외부 서비스를 조율하여 신규 주문 처리 절차를 자동화하는 과정을 보여줍니다. 이는 AI 에이전트가 복잡한 비즈니스 로직과 표준 운영 절차를 효율적으로 자동화할 수 있음을 입증합니다.
마지막으로, AI 에이전트의 활용 가치로 요구사항의 즉각적인 변경 반영(예: 할인 정책 변경), 텍스트 기반으로 SQL 쿼리를 생성하여 데이터베이스와 상호작용하는 기능 등이 언급됩니다.