00_What is an agent?

00_What is an agent?

본 시리즈는 OpenAI의 간단한 에이전트를 만드는 가이드를 바탕으로 작성되었습니다.

에이전트란 무엇인가 (What is an agent?)

에이전트(agent)는 LLM(대규모 언어 모델)의 발전으로 등장한 새로운 범주의 시스템입니다.

에이전트는 사용자를 대신하여 높은 수준의 독립성을 가지고 작업을 수행할 수 있는 시스템입니다. 이는 복잡하고 다단계적인 작업을 처리할 수 있는 LLM 기반 시스템입니다.

기존의 소프트웨어는 사용자가 워크플로우를 간소화하고 자동화할 수 있도록 하지만, 에이전트는 사용자를 대신하여 동일한 워크플로우를 실행할 수 있다는 점에서 차이가 있습니다.

워크플로우(Workflow)는 고객 서비스 문제 해결, 레스토랑 예약, 코드 변경 커밋, 보고서 생성 등 사용자의 목표를 달성하기 위해 실행해야 하는 일련의 단계들을 의미합니다.

에이전트의 특징

단순한 챗봇, 단일 턴 LLM, 또는 감정 분류기처럼 LLM을 사용하여 워크플로우 실행을 제어하지 않는 애플리케이션은 에이전트가 아닙니다.

에이전트가 사용자를 대신하여 안정적이고 일관되게 행동할 수 있도록 하는 핵심적인 특징은 다음과 같습니다:

  1. 워크플로우 실행 관리 및 의사 결정:
    • 에이전트는 LLM을 활용하여 워크플로우 실행을 관리하고 필요한 결정을 내립니다.
    • 워크플로우가 완료된 시점을 인식하며, 필요할 경우 자발적으로 행동을 수정할 수 있습니다.
    • 실패가 발생할 경우 실행을 중단하고 사용자에게 제어를 다시 넘길 수 있습니다.
  2. 도구 접근 및 동적 선택:
    • 에이전트는 컨텍스트를 수집하거나 조치를 취하기 위해 외부 시스템과 상호 작용할 수 있는 다양한 도구(tools)에 접근할 수 있습니다.
    • 워크플로우의 현재 상태에 따라 적절한 도구를 동적으로 선택합니다.
  3. 가드레일 내 작동:
    • 에이전트는 항상 명확하게 정의된 가드레일(guardrails) 내에서 운영됩니다.

에이전트 구축이 적합한 경우

에이전트는 전통적인 결정론적(deterministic) 또는 규칙 기반 접근 방식이 부족한 워크플로우에 특히 적합합니다. 에이전트는 복잡하고 모호한 상황을 효과적으로 관리할 수 있는 미묘한 추론 능력을 제공합니다.

에이전트가 가치를 더할 수 있는 주요 워크플로우는 다음과 같습니다:

  • 복잡한 의사 결정: 미묘한 판단, 예외, 또는 상황에 민감한 결정이 포함된 워크플로우 (예: 고객 서비스 워크플로우에서의 환불 승인).
  • 유지 관리가 어려운 규칙: 광범위하고 복잡한 규칙 집합으로 인해 업데이트 비용이 많이 들거나 오류가 발생하기 쉬워 다루기 어렵게 된 시스템 (예: 벤더 보안 검토 수행).
  • 비정형 데이터에 대한 높은 의존성: 자연어 해석, 문서에서 의미 추출, 또는 사용자 상호 작용이 대화 형식으로 이루어지는 시나리오 (예: 주택 보험 청구 처리).

에이전트 설계의 기본 요소 (Agent design foundations)

가장 근본적인 형태로, 에이전트는 세 가지 핵심 구성 요소로 구성됩니다:

구성 요소 설명
모델 (Model) 에이전트의 추론 및 의사 결정을 지원하는 LLM. 복잡한 작업에는 더 강력한 모델이 유용하며, 간단한 작업에는 더 작고 빠른 모델을 사용하여 비용과 지연 시간을 최적화할 수 있습니다.
도구 (Tools) 에이전트가 조치를 취하는 데 사용할 수 있는 외부 함수 또는 API. 도구는 에이전트의 역량을 확장합니다.
지침 (Instructions) 에이전트가 행동하는 방식을 정의하는 명시적인 가이드라인 및 가드레일. 명확한 지침은 모호함을 줄이고 에이전트의 의사 결정을 개선하여 워크플로우 실행을 원활하게 합니다.

도구의 세 가지 유형

도구는 에이전트의 기능을 확장하며 크게 세 가지 유형으로 나뉩니다:

  1. 데이터 도구 (Data Tools): 워크플로우 실행에 필요한 컨텍스트와 정보를 검색할 수 있도록 합니다.
    • 예시: 거래 데이터베이스 또는 CRM과 같은 시스템 쿼리, PDF 문서 읽기, 웹 검색.
  2. 액션 도구 (Action Tools): 데이터베이스에 새 정보를 추가하거나, 기록을 업데이트하거나, 메시지를 보내는 등 시스템과 상호 작용하여 조치를 취할 수 있도록 합니다.
    • 예시: 이메일 및 문자 보내기, CRM 기록 업데이트, 고객 서비스 티켓을 사람에게 인계.
  3. 오케스트레이션 도구 (Orchestration Tools): 에이전트 자체가 다른 에이전트의 도구 역할을 할 수 있습니다 (예: 환불 에이전트, 연구 에이전트).

지침 구성 모범 사례

고품질의 지침은 에이전트에게 특히 중요하며, 명확한 지침을 제공하기 위한 모범 사례는 다음과 같습니다:

  • 기존 문서 활용: 기존 운영 절차나 정책 문서를 사용하여 LLM 친화적인 루틴을 만듭니다.
  • 작업 분해 지시: 조밀한 자료를 더 작고 명확한 단계로 나누도록 에이전트에게 지시하면 모호성을 최소화하고 모델이 지침을 더 잘 따르도록 돕습니다.
  • 명확한 조치 정의: 루틴의 모든 단계가 특정 조치나 출력(예: 주문 번호를 사용자에게 요청하거나 API를 호출하여 계정 세부 정보를 검색)에 해당하도록 명시합니다.
  • 예외 상황 포착 (Edge Cases): 사용자가 불완전한 정보를 제공하거나 예상치 못한 질문을 할 때와 같은 결정 지점을 예상하고, 필요한 정보가 누락된 경우 대체 단계와 같은 조건부 단계로 처리하도록 지침에 포함합니다.

Read more

02_Orchestration

02_Orchestration

오케스트레이션 (Orchestration) 에이전트 설계의 기본 요소(모델, 도구, 지침)가 갖추어지면, 에이전트가 워크플로우를 효과적으로 실행할 수 있도록 하는 오케스트레이션 패턴을 고려할 수 있습니다. 점진적 접근 방식 복잡한 아키텍처를 가진 완전히 자율적인 에이전트를 즉시 구축하고 싶은 유혹이 있을 수 있지만, 고객들은 일반적으로 점진적인 접근 방식(incremental approach)을 통해 더 큰

By Yunseo
01_Agent design foundations

01_Agent design foundations

에이전트 설계의 기본 요소는 에이전트의 가장 근본적인 형태를 구성하는 세 가지 핵심 구성 요소를 다룹니다. 에이전트 설계의 기본 요소 (Agent design foundations) 에이전트는 세 가지 핵심 구성 요소, 즉 모델 (Model), 도구 (Tools), 그리고 **지침 (Instructions)**으로 구성됩니다. 구성 요소 설명 모델 (Model) 에이전트의 추론 및 의사 결정을 지원하는 LLM

By Yunseo