1. AI 에이전트 개발의 핵심: 기본기부터 최신 기술까지 [0]

thumbnail AI 에이전트 개발의 핵심은 복잡한 AI 에이전트 개발을 위해 LangChain, LangGraph, RAG, MCP 등 다양한 프레임워크와 프로토콜을 이해하고 활용하는 것이며, 이를 통해 개발 생산성을 극대화하고 복잡한 워크플로우를 효율적으로 구축할 수 있다.

1.1. AI 에이전트 개발의 기초: LLM과 컨텍스트 이해 [0]

  1. AI의 기본 구성 요소: 대규모 언어 모델 (LLM) [5]
    • AI 모델은 질문에 답하는 대규모 언어 모델(LLM)을 기반으로 한다. [6]
    • LLM은 2022년 말 ChatGPT 출시와 함께 인기를 얻었으며, 성능 향상을 위해 모델 크기가 커졌다. [7]
    • GPT-4, Claude, Gemini와 같은 LLM은 방대한 데이터셋으로 학습된 트랜스포머 모델이다. [9]
    • 이 모델들은 수조 개의 토큰으로 구성된 데이터셋으로 학습되며, 의료, 법률, 코딩, 과학 등 다양한 분야의 데이터를 포함한다. [10]
  2. LLM의 한계와 컨텍스트 창의 중요성 [11]
    • LLM은 학습 데이터 외의 정보를 처리하기 위해 컨텍스트 창을 통해 데이터를 입력받는다. [12]
    • 컨텍스트 창은 대화 기록과 유사하게 작동하며, 대화 중 모든 정보를 기억한다. [13]
    • 컨텍스트 창의 크기는 토큰으로 측정되며, 영어 텍스트의 약 3/4 단어에 해당한다. [15]
    • 모델마다 컨텍스트 창의 크기가 다르며, 일부 모델은 256,000 토큰에서 최대 100만 토큰까지 지원한다. [17]
    • 하지만 컨텍스트 창의 크기에도 불구하고 LLM이 모든 정보를 완벽하게 처리하는 데는 한계가 있다. [19]
    • 이는 마치 사람에게 많은 숫자를 외우라고 하면 어려움을 겪는 것과 유사하다. [20]
    • 작은 모델은 2,000~4,000 토큰의 작은 컨텍스트 창을 가지는 반면, 큰 모델은 100만 토큰까지 지원하여 약 7,500 단어 또는 5만 줄의 코드를 처리할 수 있다. [23]
    • 따라서 작업에 맞는 모델 선택이 중요하며, 큰 문서를 다룰 때는 큰 컨텍스트 창을 가진 모델이, 빠른 응답이 필요할 때는 작은 모델이 적합하다. [25]
  3. 정보 처리의 효율성: 임베딩의 역할 [42]
    • 500GB에 달하는 방대한 기업 문서를 LLM이 한 번에 처리하기는 어렵다. [39]
    • 이 문제를 해결하기 위해 임베딩 기술이 사용된다. [42]
    • 임베딩은 텍스트를 단어가 아닌 숫자로 변환하여 의미를 표현한다. [44]
    • "직원 휴가 정책"과 "직원 휴가 지침"처럼 다른 단어를 사용해도 의미가 유사하면 같은 벡터로 표현된다. [45]
    • 임베딩 모델은 텍스트를 벡터로 변환하며, 이는 일반적으로 1536개의 숫자로 구성된다. [48]
    • 유사한 개념은 수학적으로 가까운 벡터 값을 가지게 된다. [50]
    • 이를 통해 단어의 정확한 일치 여부뿐만 아니라 의미 기반으로 관련 문서를 찾을 수 있다. [51]
    • 예를 들어, "바지에 입고 출근해도 되나요?"라는 질문에 대해 시스템은 '청바지'라는 단어가 없더라도 복장 규정 정책을 찾을 수 있다. [52]

1.2. AI 에이전트 구축 프레임워크: LangChain [54]

  1. AI 에이전트 개발의 복잡성과 LangChain의 등장 [54]
    • 기업은 고객 문의 응대, 제품 정보 제공, 지원 문제 해결 등을 위한 챗봇 구축이 필요하다. [54]
    • 챗봇은 대화 기록 유지, 지식 기반 접근, 복잡한 다단계 상호작용 처리가 요구된다. [55]
    • 단순히 OpenAI SDK를 사용하여 챗봇을 구축하려 하면, 대화 메시지 저장, 컨텍스트 유지, 내부 지식 기반 연결, 향후 LLM 제공업체 변경 등 복잡한 문제에 직면한다. [57]
    • 이러한 문제들을 해결하기 위해 LangChain이라는 추상화 계층이 등장했다. [60]
    • LangChain은 최소한의 코드로 AI 에이전트를 구축할 수 있도록 돕는다. [61]
  2. LLM과 에이전트의 차이점 [63]
    • LLM은 학습 데이터 기반으로 질문에 답하는 정적인 뇌와 같다. [64]
    • 반면, 에이전트는 자율성, 기억력, 도구를 갖추고 요청을 완료하기 위해 필요한 작업을 수행한다. [65]
    • 예를 들어, 고객이 "손상된 제품 환불 정책은 무엇인가요?"라고 질문하면, 에이전트는 스스로 응답 방법을 결정한다. [66]
  3. LangChain의 주요 기능 및 이점 [67]
    • LangChain은 다양한 사전 구축된 구성 요소를 제공하여 개발 부담을 줄인다. [67]
    • 챗 모델: OpenAI, Anthropic, Google 등 다양한 LLM 제공업체에 직접 접근할 수 있으며, 모델 변경 시 코드 수정이 용이하다. [68]
    • 메모리 관리: MemorySaver를 사용하여 대화 기록을 자동으로 저장하고 검색하며, 자체 데이터베이스 스키마나 세션 관리가 필요 없다. [72]
    • 벡터 데이터베이스 통합: Pinecone, ChromaDB 등 다양한 벡터 데이터베이스와 표준화된 인터페이스를 통해 연동된다. [73]
    • 텍스트 임베딩: OpenAI Embeddings 등을 사용하여 문서를 벡터로 변환하며, API 연결 및 데이터 변환을 수동으로 관리할 필요가 없다. [75]
    • 도구 통합: 에이전트가 외부 시스템(예: 고객 데이터베이스)에 접근할 수 있도록 도구를 생성하고 호출할 수 있다. [77]
    • LangChain 없이는 API 관리, 벡터 데이터베이스, SDK, 임베딩 파이프라인, 의미 검색 로직, 상태 관리, 메모리 시스템, 도구 라우팅 등 복잡한 인프라를 직접 구축해야 한다. [79]
    • LangChain의 구성 요소 라이브러리는 다양한 기능을 포함하며, 에이전트는 대화 컨텍스트, 메모리, 시스템 프롬프트 등을 기반으로 이러한 구성 요소를 조율한다. [82]

1.3. OpenAI API 연동 실습: 기본 API 호출부터 비용 관리까지 [86]

  1. 환경 설정 및 OpenAI 소개 [89]
    • 가상 환경 활성화, Python 설치 확인, OpenAI 라이브러리 사용 가능 여부 확인, API 키 설정 등 환경 검증을 진행한다. [91]
    • OpenAI는 ChatGPT를 개발한 회사로, GPT-4, GPT-4.1 Mini, GPT-3.5 등 다양한 AI 모델을 제공한다. [97]
  2. 기본 API 호출 실습 [99]
    • Python 스크립트에서 OpenAI 라이브러리와 OS 라이브러리를 임포트한다. [101]
    • API 클라이언트, API 키, 기본 URL의 중요성을 이해하고, 환경 변수를 사용하여 클라이언트를 초기화한다. [105]
    • 챗 완성(Chat Completions) API를 사용하여 메시지를 주고받는 방식을 학습한다. [114]
    • 대화의 세 가지 역할(시스템, 사용자, 어시스턴트)과 요청 형식을 이해한다. [116]
    • 모델, 역할, 내용을 정의하고 스크립트를 실행하여 AI의 첫 응답을 받는다. [119]
    • 응답 객체에서 response.choices.message.content 경로를 통해 AI의 텍스트 응답을 추출하는 방법을 배운다. [123]
  3. 토큰 및 비용 관리 [128]
    • 토큰은 모델이 사용하는 텍스트 조각이며, 모든 요청이 토큰을 소비한다. [129]
    • 프롬프트 토큰은 입력, 완성 토큰은 AI 출력이며, 출력 토큰이 입력 토큰보다 더 비싸다. [130]
    • 따라서 간결한 표현이 비용 절감에 도움이 된다. [133]
    • 스크립트를 수정하여 토큰 사용량(프롬프트, 완성, 총 토큰)을 추출하고 API 호출 비용을 계산한다. [134]
    • API 호출 비용 계산을 통해 AI API 사용에 대한 실질적인 이해를 높인다. [139]

1.4. LangChain을 활용한 멀티모달 지원 및 프롬프트 엔지니어링 [142]

  1. LangChain의 멀티모달 지원 및 코드 간소화 [143]
    • LangChain은 여러 AI 제공업체와의 연동을 단순화하고 가속화한다. [143]
    • 특정 제공업체의 SDK에 종속되지 않고, 단 한 단어 변경으로 OpenAI, Google Gemini, XAI Gro 등으로 전환할 수 있다. [144]
    • 환경 검증 스크립트를 통해 LangChain 및 종속성 설치, API 키, 기본 URL, 모델 제공업체 접근성을 확인한다. [146]
    • 기존 OpenAI SDK 방식은 API 호출에 10줄 이상의 코드가 필요하지만, LangChain은 3줄로 줄여준다. [149]
    • 이는 코드 양을 70%까지 줄이는 효과를 가져온다. [155]
  2. 다양한 모델 비교 및 프롬프트 템플릿 활용 [156]
    • OpenAI GPT-4, Google Gemini, XAI Gro 등 세 가지 제공업체를 동일한 클래스 구조로 설정하고 동일한 프롬프트를 실행하여 응답을 비교할 수 있다. [157]
    • 이는 A/B 테스트나 비용 최적화를 위해 여러 모델을 즉시 평가하는 데 유용하다. [160]
    • 프롬프트 템플릿을 사용하면 다양한 프롬프트 변형을 위해 별도의 하드코딩된 프롬프트를 작성할 필요가 없다. [161]
    • 플레이스홀더가 있는 재사용 가능한 템플릿을 생성하고, Python의 f-string처럼 변수를 동적으로 채울 수 있다. [163]
    • 수백 개의 약간 다른 프롬프트 파일을 유지보수하는 번거로움을 없앨 수 있다. [164]
  3. 출력 파서와 체인 컴포지션 [166]
    • 출력 파서는 AI의 자유 텍스트 응답을 리스트나 JSON 객체와 같은 구조화된 객체로 변환한다. [167]
    • 이를 통해 애플리케이션에서 직접 사용할 수 있는 깔끔한 Python 리스트나 딕셔너리에 접근할 수 있다. [169]
    • 체인 컴포지션은 파이프 연산자를 사용하여 구성 요소를 연결한다. [170]
    • 프롬프트 생성, 모델 호출, 응답 파싱 등 여러 단계를 하나의 라인으로 연결하여 간결하고 확장 가능한 AI 파이프라인을 구축할 수 있다. [172]
  4. 프롬프트 엔지니어링 기법 [176]
    • AI 에이전트에게 보내는 프롬프트의 품질은 응답 품질에 직접적인 영향을 미친다. [180]
    • 구체적인 프롬프트는 더 정확한 결과를 얻는 데 도움이 된다. (예: "정책이 무엇인가요?" vs "국제 직원을 위한 회사의 원격 근무 정책은 무엇인가요?") [182]
    • 역할 정의 또한 에이전트의 행동을 제어하는 데 중요하다. (예: "당신은 기술 고객 지원 전문가이며, 항상 글머리 기호로 응답해야 합니다.") [184]
    • 프롬프트 엔지니어링은 이러한 기법들을 포함한다. [187]
    • 제로샷(Zero-shot) 프롬프팅: 예시 없이 AI에게 작업을 수행하도록 요청한다. (예: "유럽 고객을 위한 데이터 개인 정보 보호 정책을 작성하세요.") [188]
    • 원샷(One-shot) 및 퓨샷(Few-shot) 프롬프팅: 프롬프트 내에 예시를 제공하여 AI가 특정 형식, 톤, 스타일을 따르도록 유도한다. [192]
    • 퓨샷 러닝(Few-shot learning)은 LLM이 학습 데이터에서 보지 못한 고유한 요청을 처리하는 능력을 보여준다. [196]
    • 연쇄적 사고(Chain of Thought) 프롬프팅: 복잡한 문제를 해결하기 위해 단계별 사고 과정을 제공한다. (예: "데이터 보존 정책을 수정하세요" 대신, 수정 과정을 단계별로 제시한다.) [197]
    • LangChain을 사용하여 제로샷, 원샷, 퓨샷, 연쇄적 사고 프롬프팅 기법을 실습하며, 각 기법의 효과를 비교한다. [205]
    • 적절한 프롬프트 기법 선택은 AI 응답의 10배 향상을 가져올 수 있다. [237]

1.5. 벡터 데이터베이스와 의미 검색: 방대한 데이터 탐색 [240]

  1. 벡터 데이터베이스의 필요성 및 기본 개념 [241]
    • 500GB 규모의 방대한 기업 문서를 효율적으로 검색하기 위해 벡터 데이터베이스가 필요하다. [244]
    • 기존 SQL 방식의 키워드 검색은 "휴가 정책"과 "휴가 지침"과 같이 유사한 의미를 가진 단어를 놓칠 수 있다. [248]
    • 벡터 데이터베이스는 단어의 의미를 저장하고 검색하여 이러한 한계를 극복한다. [254]
    • Pinecone, ChromaDB와 같은 벡터 데이터베이스는 임베딩을 대규모로 처리하고 의미론적 유사성을 기반으로 효율적인 검색을 제공한다. [257]
  2. 벡터 데이터베이스 구축의 핵심 요소: 임베딩과 차원성 [268]
    • 임베딩은 텍스트를 수치 벡터로 변환하여 의미를 표현하는 핵심 기술이다. [269]
    • "휴일"과 "휴가"와 같이 의미가 가까운 단어는 유사한 벡터 공간에 위치한다. [272]
    • 문장은 임베딩 모델을 통해 긴 숫자 벡터로 변환되며, 검색 시 이 벡터를 비교한다. [275]
    • 이를 통해 "휴가"와 "휴일"이라는 다른 표현을 사용해도 관련 데이터를 찾을 수 있다. [276]
    • 차원성(dimensionality)은 임베딩의 복잡성을 결정하며, 일반적으로 1536차원이 크기와 깊이의 균형을 제공한다. [280]
  3. 검색 효율성 증대: 스코어링과 청크 오버랩 [286]
    • 스코어링: 결과가 얼마나 유사해야 일치하는 것으로 간주할지 임계값을 설정한다. (예: "플로리다"와 "휴가"는 관련성이 있지만, "플로리다로 회사 노트북을 가져갈 수 있나요?"와 "플로리다로 휴가를 가도 되나요?"는 의미가 다르다.) [292]
    • 청크 오버랩: 문서를 작은 청크(chunk)로 분할할 때, 의미 손실을 방지하기 위해 청크 간에 일부 내용을 겹치게 한다. [296]
    • 이는 전체 문서를 작은 조각으로 나누어도 문맥이 유지되도록 하여 검색 정확도를 높인다. [301]
  4. 의미 검색 엔진 구축 실습 [302]
    • TechDoc Inc.의 실패하는 검색 문제를 해결하기 위해 의미 기반 검색 시스템을 구축한다. [302]
    • 환경 설정: Sentence Transformers, LangChain, ChromaDB 등 필요한 라이브러리를 설치하고 검증한다. [308]
    • 임베딩: MiniLM 모델을 사용하여 쿼리와 문서를 인코딩하고 코사인 유사도를 계산하여 의미론적 이해를 시연한다. [313]
    • 문서 청킹: LangChain의 RecursiveCharacterTextSplitter를 사용하여 문서를 의미가 보존되도록 중첩된 청크로 분할한다. [323]
    • 벡터 스토어: ChromaDB를 사용하여 임베딩을 저장하고 효율적으로 검색할 수 있는 벡터 데이터베이스를 생성한다. [331]
    • 의미 검색 구현: 사용자 쿼리를 임베딩으로 변환하고, ChromaDB에서 관련 문서를 검색하여 사용자에게 반환하는 전체 파이프라인을 구축한다. [339]
    • 이 시스템은 60%의 실패율을 보이던 기존 키워드 검색을 95% 성공률의 의미 검색 엔진으로 개선한다. [345]

1.6. RAG (Retrieval Augmented Generation): 최신 정보 기반 답변 생성 [349]

  1. RAG의 개념 및 작동 방식 [350]
    • RAG는 검색 증강 생성(Retrieval Augmented Generation)으로, LLM이 최신 외부 정보를 활용하여 답변을 생성하는 기술이다. [350]
    • RAG는 검색(Retrieval), 증강(Augmented), 생성(Generation)의 세 단계로 작동한다. [353]
    • 검색: 사용자 질문을 임베딩으로 변환하고, 벡터 데이터베이스에서 의미론적으로 가장 관련성 높은 문서를 검색한다. [354]
    • 증강: 검색된 관련 데이터를 런타임에 프롬프트에 주입하여 LLM에게 최신, 비공개 데이터를 제공한다. [357]
    • 이는 LLM을 사용자 정의 데이터로 미세 조정할 필요 없이 최신 정보를 활용하게 한다. [361]
    • 생성: LLM은 증강된 프롬프트와 검색된 데이터를 기반으로 답변을 생성한다. [362]
  2. RAG 시스템 구축의 유연성 및 고려 사항 [366]
    • RAG는 LLM의 지식 범위를 즉시 확장할 수 있는 강력한 시스템이다. [366]
    • 데이터셋의 특성(예: 법률 문서 vs. 고객 지원 대화)에 따라 청킹 전략이 달라져야 한다. [368]
    • 법률 문서는 긴 구조화된 단락 보존이 중요하며, 대화 기록은 문장 수준 청킹과 높은 오버랩이 효과적이다. [370]
  3. RAG 시스템 구축 실습 [372]
    • 의미 검색 시스템을 기반으로 AI 기반 생성 기능을 추가한다. [372]
    • 환경 설정: ChromaDB, Sentence Transformers, LangChain, OpenAI 통합 라이브러리를 설치하고 RAG 프레임워크를 준비한다. [378]
    • 벡터 스토어 설정: ChromaDB 클라이언트를 초기화하고, tech-corp-rag 컬렉션을 생성하며, 임베딩 모델(all-MiniLM-L6-v2)을 구성한다. [382]
    • 문서 처리 및 청킹: 이전보다 향상된 단락 기반 청킹과 스마트 오버랩을 사용하여 의미가 완전한 청크를 생성한다. [386]
    • LLM 통합: OpenAI GPT-4.1 Mini 모델을 연결하고, 온도, 최대 토큰, Top-P와 같은 생성 매개변수를 설정한다. [391]
    • RAG를 위한 프롬프트 엔지니어링: 답변이 검색된 문서에서만 나오도록 하고, 정보가 없을 경우 "제공된 문서에 해당 정보가 없습니다."라고 응답하도록 구조화된 프롬프트 템플릿을 구축한다. [396]
    • 완전한 RAG 파이프라인: 사용자 쿼리 임베딩, ChromaDB 검색, 상위 3개 청크 검색, 컨텍스트 인식 프롬프트 구축, LLM을 사용한 답변 생성을 통합한다. [400]
    • 모든 답변에 출처를 명시하여 신뢰도를 높인다. [404]
    • 이 시스템은 챗봇, Claude, Gemini와 같은 도구의 기반 아키텍처와 동일하다. [408]

1.7. LangGraph: 복잡한 다단계 워크플로우 자동화 [411]

  1. LangGraph의 필요성 및 기본 개념 [415]
    • 단순한 채팅 애플리케이션을 넘어, HR 시스템 연동 등 더 복잡한 비즈니스 요구사항을 충족하기 위해 LangGraph가 필요하다. [415]
    • LangGraph는 단순한 질문-답변 상호작용을 넘어 복잡한 다단계 워크플로우를 처리하도록 LangChain을 확장한다. [418]
    • 예를 들어, EU 고객의 데이터 개인 정보 보호 정책 준수 여부를 평가하는 복잡한 요청을 처리할 수 있다. [420]
    • LangGraph에서는 각 노드(node)가 특정 책임을 수행하는 계산 단위(함수) 역할을 한다. [423]
    • 노드는 문서 수집, 내용 추출, GDPR 규정 준수 평가, 지역 규정 교차 확인, 규정 준수 격차 식별 및 권장 사항 생성 등의 작업을 수행할 수 있다. [424]
  2. 노드 연결 및 상태 관리 [430]
    • 엣지(edge)는 노드 간의 연결을 정의하며 실행 흐름을 결정한다. [431]
    • 예를 들어, 노드 1에서 문서를 수집한 후 엣지가 노드 2로 라우팅된다. [433]
    • 공유 상태(shared state)는 워크플로우 전체에서 정보를 저장하며, StateGraph를 통해 관리된다. [435]
    • 상태 변수(예: documents, current_document, compliance_score)는 각 노드에서 업데이트된다. [437]
    • 상태 그래프는 구성된 흐름에 따라 실행을 조율하며, 조건부 엣지를 통해 특정 조건(예: 규정 준수 점수)에 따라 실행 경로를 변경할 수 있다. [444]
    • 이를 통해 반복 분석 루프, 중간 결과에 따른 분기, 전체 워크플로우에 걸쳐 컨텍스트를 유지하는 영구 상태를 생성할 수 있다. [447]
  3. LangGraph 실습: 연구 보조원 구축 [449]
    • 환경 설정: LangGraph, LangChain, OpenAI 통합 라이브러리를 설치하고 환경을 검증한다. [453]
    • 기본 임포트 및 상태 정의: StateGraph와 TypedDict를 사용하여 워크플로우 데이터(messages 필드)를 정의한다. [457]
    • 노드 생성: 상태를 입력받아 부분 업데이트를 반환하는 Python 함수로 노드를 정의한다 (예: 인사말 노드, 개선 노드). [462]
    • 엣지 설정: add_nodes와 add_edges를 사용하여 노드를 연결하고 데이터 흐름을 정의한다. [468]
    • 다단계 흐름: 초안 작성, 검토 등 여러 노드를 추가하고 연결하여 콘텐츠가 여러 단계를 거치는 파이프라인을 구축한다. [474]
    • 조건부 라우팅: 쿼리 길이에 따라 동적으로 경로를 결정하는 라우터를 구현하여 워크플로우를 유연하게 만든다. [479]
    • 도구 통합: 계산기 도구를 추가하고, 쿼리가 수학 관련인지 확인하여 계산기 노드로 라우팅한다. [486]
    • 연구 에이전트 완성: 계산기와 웹 검색 도구(Duck.go)를 결합하여 쿼리에 따라 계산, 웹 검색 또는 일반 텍스트 처리를 수행하는 동적 도구 오케스트레이션을 구현한다. [490]

1.8. MCP (Model Context Protocol): 외부 시스템과의 표준화된 연동 [497]

  1. MCP의 필요성 및 기존 API와의 차이점 [497]
    • 내부 지식 기반을 넘어 고객 데이터베이스, 재고 관리 시스템 등 외부 시스템과의 연동이 필요하다. [497]
    • 기존 API는 구현 세부 정보를 이해해야 하는 엔드포인트를 노출하여 특정 시스템에 종속적인 통합을 유발한다. [499]
    • MCP는 도구를 노출할 뿐만 아니라, AI 에이전트가 자율적으로 이해하고 사용할 수 있는 자기 설명 인터페이스를 제공한다. [501]
    • MCP는 개발자가 아닌 AI 에이전트에게 부담을 준다는 장점이 있다. [503]
  2. MCP 서버 및 통합 예시 [504]
    • MCP 서버는 AI 에이전트와 연결되어 주문 상태 조회, 지원 티켓 처리, 재고 데이터베이스 접근 등 다양한 작업을 수행할 수 있다. [505]
    • 간단한 MCP 서버 코드는 fastMCP를 사용하여 customer_db라는 이름으로 MCP 서버를 시작하고, 함수를 MCP.tool 데코레이터로 노출한다. [509]
    • 함수는 API 함수 매개변수와 반환 타입을 명시하여 MCP 클라이언트에게 필요한 입력과 예상되는 출력 유형을 알려준다. [511]
    • customers 변수는 메모리에 저장된 가짜 데이터베이스 역할을 하며, 실제로는 SQL 또는 MongoDB와 같은 데이터베이스에 연결될 수 있다. [512]
    • MCP 서버 코드는 한 번만 작성하면 되며, 커뮤니티에서 제공하는 GitHub, GitLab, SQL 데이터베이스용 MCP 서버를 직접 사용할 수 있다. [515]
  3. MCP와 LangGraph 통합 실습 [517]
    • 환경 설정: LangGraph, LangChain, LangChain OpenAI, Fast MCP를 설치하고 MCP 개발 환경을 준비한다. [517]
    • MCP 아키텍처: MCP 프로토콜은 LangGraph 기반 AI 어시스턴트와 외부 도구 간의 다리 역할을 한다. MCP 서버는 도구와 스키마를 노출하고, LangGraph는 이를 통합하여 쿼리를 지능적으로 라우팅한다. [525]
    • MCP 기본: calculator라는 이름의 MCP 서버를 생성하고, 함수를 MCP.tool로 노출하여 LangGraph가 소비할 수 있도록 한다. [536]
    • LangGraph와의 통합: 계산기 서버를 에이전트에 연결하고, 클라이언트 구성, 서버에서 도구 가져오기, 필요 시 계산기 선택을 결정하는 에이전트 생성 등을 수행한다. [541]
    • 다중 MCP 서버: 계산기 외에 날씨 서비스 서버를 추가하고, LangGraph가 두 서버 간의 쿼리를 지능적으로 라우팅하도록 한다. [545]
    • MCP는 보편적이며 어떤 도구든 어떤 AI든 연결할 수 있고, 라우팅이 핵심적인 힘이며 설계는 확장 가능하다. [554]

1.9. 종합: AI 에이전트 기반 솔루션의 완성 [561]

  1. AI 에이전트 기반 솔루션의 성과 [561]
    • 컨텍스트 창, 벡터 데이터베이스, LangChain, LangGraph, MCP, 프롬프트 엔지니어링 등 모든 기술을 통합하여 복잡한 문서 검색이 가능해졌다. [561]
    • 수동 검색에 30분 이상 소요되던 작업이 AI 에이전트를 통해 30초 이내로 단축되었다. [561]
    • RAG와 같은 컨텍스트 인식 의미 검색을 통해 정확도가 향상되었다. [562]
    • 대화 기록을 추적하고 전반적인 직관력을 향상시키는 채팅 애플리케이션 UI는 사용자 만족도를 높인다. [563]
    • 애플리케이션이 실행되는 동안 24/7 가용성을 제공한다. [564]
  2. AI 에이전트의 미래 전망 [565]
    • 이는 시작에 불과하며, 예측 분석, 선제적 규정 준수 에이전트, 워크플로우 자동화 등을 추가하여 단순한 질문 답변을 넘어 문제 해결까지 가능하다. [565]
    • 정적 문서에서 살아있는 지능형 시스템으로의 전환은 기업이 지식의 가치를 최대한 활용하는 방식에 있어 중요한 전환점이다. [567]