LLM의 상호작용 방법

체크해 볼 만한 AI 개념

LLM 상호작용(Interactions)

Function Call

graph TD
    A[User Query] --> B(LLM Analysis & Function Call Decision)
    B -- Function Call Request (JSON) --> C{Application Logic}
    C -- Execute Function --> D{External System}
    D -- Function Result --> C
    C -- Function Result --> E(LLM Response Generation)
    E --> F{User}
  • Function Call은 LLM이 미리 정의된 외부 도구나 API와 상호 작용

    • LLM은 사용자의 프롬프트에 담긴 의도를 분석하고, 필요한 경우 특정 함수를 호출하기 위한 인수를 생성(주로 Json)

    • 이때, LLM은 어떤 함수를 호출해야 하는지, 그리고 그 함수에 필요한 인수는 무엇인지 결정

    • 실제 함수의 실행은 LLM 자체에서 이루어지는 것이 아니라, LLM 외부 애플리케이션 로직에 의해 처리

  • LLM의 knowledge cut-off (최종 학습 데이터) 이후 정보를 웹에서 검색 하는 등으로 사용

    • 날씨, 최신 뉴스 등등

  • LLM의 약점인 수치 연산 등의 기능을 기존에 완성된 외부 시스템과의 소통을 통해 구현 가능

RAG

flowchart TD
    I[User Query] --> J[Query Processing]
    I --> P
    
    subgraph "RAG"
        J --> K[Query Embedding]
        K --> L[Vector Search]
        H[Vector DB] --> L
        L --> M[Relevant Documents Retrieval]
        M --> N[Context Selection]
        N --> P[Augmented Prompt]
        
    end    
    P --> Q[LLM]
    Q --> R[User]
  • 특정 데이터를 Prompt에 Augment(증강)시킨 형식으로 삽입해서 원하는 결과를 도출하는 방식

  • 기술적으로는 데이터를 제약하고 및 응답을 Prompt에 삽입하는 방식으로 구현한 Function Call의 특수한 형태라고 볼 수 있음

    • Context(처리를 위한 Input/Process/Ouput) 크기가 클 수록 유리

    • Context가 작으면 Vector DB에 데이터를 최대한 전처리(emebedding/index)해서 넣고, 그 과정에서 발생하는 누락 혹은 왜곡을 감수해야 함 (할루시네이션은 없어도 Miss Match 가능성은 항상 존재)


실무 데이터 플로우 버전. 임베딩, VectorDB 인덱싱 포함)

flowchart TD
    subgraph "Document Processing"
        A[Documents] --> B[Document Loader]
        B --> C[Document Chunking]
        C --> D[Text Preprocessing]
    end

    subgraph "Embedding Generation"
        D --> E[Embedding Model]
        E --> F[Document Vectors]
    end

    subgraph "Vector Database"
        F --> G[Vector DB Indexing]
        G --> H[(Vector Database)]
    end

    subgraph "Query Processing"
        I[User Query] --> J[Query Processing]
        J --> K[Query Embedding]
        K --> L[Vector Search]
        H --> L
    end

    subgraph "Content Augmentation"
        L --> M[Relevant Documents Retrieval]
        M --> N[Context Selection]
        N --> O[Prompt Engineering]
    end

    subgraph "Response Generation"
        O --> P[Augmented Prompt]
        I --> P
        P --> Q[LLM]
        Q --> R[Generated Response]
    end

MCP

graph TD
    subgraph LLM Flow
    LLM -- Request --> A
    A -- Response --> LLM
    end
    A[AI Agent: MCP Client] -- MCP Request --> B{MCP Server}
    B -- Process Request --> C{MCP Host/Chain}
    C -- Result --> B
    B -- MCP Response --> A
  • MCP는 AI 에이전트가 다양한 외부 도구와 리소스에 일관된 방식으로 접근하고 활용할 수 있도록 하는 것이 목표

  • Function Call의 External System으로의 호출을 표준화한 프로토콜

    • 따라서 json을 활용하는 것이 유리하기에 JSON RPC2 기반

  • 데이터 해석이 가능한 ‘프로토콜’임에 유의, 동작을 위해서는 ‘인터페이스’가 정의되어야 하는데 아직 격변기

  • Claude AI를 만든 Anthropic 주도

A2A

graph TD
    A[Client Agent] -- Discover --> B(Agent Card Registry)
    B -- Agent Card for Remote Agent --> A
    A -- Task Request (JSON-RPC) --> C
    C{Another Agnet} -- Process Task --> D
    D{Chain System} -- Result --> C
    C -- Task Result (JSON-RPC) --> A
  • AI 에이전트간 인터랙션을 수행시키는 것이 목표

    • MCP와 동일하게 JSON RPC2 기반

  • 데이터 해석이 가능한 ‘프로토콜’임에 유의, 동작을 위해서는 ‘인터페이스’가 정의되어야 하는데 아직 격변기

  • Google 주도. 기존 MCP 구현체와 동시에 발표.

    • 대체제가 아닌 보완재임을 강조

방법

주요 특징

작동 방식

주요 장점

주요 단점

주요 활용 사례

Function Call

LLM이 외부 도구나 API를 호출하여 특정 작업 수행

LLM이 사용자 프롬프트 분석 후 필요한 함수와 인수를 JSON 형태로 생성, 애플리케이션이 함수 실행, 결과 LLM에 전달하여 최종 응답 생성

실시간 데이터 접근, 작업 자동화, 외부 시스템 통합 용이, 구조화된 출력, 답변 정확성 향상, 모델 재학습 불필요, 복잡한 워크플로우 처리 가능

미리 정의된 API/함수 필요, 보안/개인 정보 우려, 오류 처리 필요, LLM의 오판 가능성, 다중 API 호출 필요, 오케스트레이션 복잡성 증가, 일부 LLM의 제한, 토큰 소비 증가 가능성

실시간 정보 검색, 작업 자동화, 데이터베이스 쿼리, 외부 API 연동, 맞춤형 추천, 복잡한 계산, 자연어-API/DB 쿼리 변환

RAG

외부 지식 소스를 활용하여 LLM 답변의 정확성 및 관련성 향상

사용자 질문에 대해 외부 지식 베이스에서 관련 정보 검색, 검색된 정보를 프롬프트에 추가하여 LLM이 답변 생성

최신/특정 도메인 정보 활용, 답변 정확성 향상, 환각 감소, 모델 재학습 불필요, 답변 근거 제시, 다양한 데이터 소스 지원, 맞춤형 답변 생성

외부 데이터 품질 의존성 높음, 시스템 복잡성 증가, 지연 시간 발생 가능성, 검색 편향/부적절한 문맥 위험, 답변 추출 어려움, 답변 형식 제약/불완전성 가능성

질문 답변, 챗봇/가상 비서, 콘텐츠 생성, 의료 진단/상담, 코드 생성, 판매 자동화, 금융 계획/관리, 고객 지원, 기업 지식 관리, 연구 개발, 맞춤형 추천

MCP

AI 모델과 외부 데이터/도구 간 상호작용 표준화 프로토콜

클라이언트(AI 모델)와 서버(외부 도구/데이터) 간 표준화된 인터페이스 및 메시지 형식 정의, 클라이언트가 MCP를 통해 서버 기능 요청 및 결과 수신

다양한 모델/데이터 소스 통합 용이, API별 맞춤 코드 감소, 재사용 가능 커넥터 제공, 다양한 LLM과 플러그 앤 플레이 통합, 유지 관리 용이, 에이전트 간 컨텍스트 유지 용이, 보안 연결 지원

새로운 프로토콜 학습 필요, 초기 단계로 생태계/지원 부족 가능성, 과도한 데이터 검색 시 성능 문제, 시스템 프롬프트 의존성, 일반 대중 접근성 낮음

AI 챗봇 도구, AI 코딩 도구, AI 개발 프레임워크, 클라우드 데스크톱 도구 통합, 다양한 플랫폼 통합

A2A

서로 다른 AI 에이전트 간 상호 운용성 확보를 위한 오픈 프로토콜

에이전트가 구축 방식/호스팅 위치/프레임워크에 관계없이 JSON-RPC 2.0 over HTTP(S) 및 SSE를 통해 통신, Agent Card를 통해 서로 발견, Task 객체를 통해 작업 요청 및 결과 교환

이기종 에이전트 간 상호 운용성 확보, 표준화된 통신 구조 제공, 다양한 콘텐츠 유형 지원, 에이전트 추가/제거 용이, 함수 호출 지원 (에이전트 간), 표준화된 오류 처리, 대화 스레딩 지원

새로운 프로토콜 학습/구현 필요, 에이전트 기능 구현/Agent Card 관리 필요, 메시지 라우팅/디버깅/재시도 등 고려 사항 존재, 프롬프트/응답 품질은 에이전트 기능에 따라 달라짐

온보딩 자동화, 다양한 AI 도구/서비스 통합, 복잡한 워크플로우 자동화, 자율 에이전트 시스템 구축