Skip to content

Latest commit

 

History

History
226 lines (143 loc) · 8.32 KB

README.md

File metadata and controls

226 lines (143 loc) · 8.32 KB

LangGraph Dynamic MCP Agents

Python LangChain LangGraph Open in - LangGraph Studio

프로젝트 개요

채팅 인터페이스

Project Overview

LangGraph Dynamic MCP Agents 은 Model Context Protocol(MCP)을 통해 다양한 외부 도구와 데이터 소스에 접근할 수 있는 ReAct 에이전트를 구현한 프로젝트입니다. 이 프로젝트는 LangGraph 의 ReAct 에이전트를 기반으로 하며, MCP 도구를 쉽게 추가하고 구성할 수 있는 인터페이스를 제공합니다.

Project Demo

주요 기능

동적 방식으로 도구 설정 대시보드

http://localhost:2025 에 접속하여 도구 설정 대시보드를 확인할 수 있습니다.

Tool Settings

도구 추가 탭에서 Smithery 에서 사용할 MCP 도구의 JSON 구성을 복사 붙여넣기 하여 도구를 추가할 수 있습니다.

Tool Settings


실시간 반영

도구 설정 대시보드에서 도구를 추가하거나 수정하면 실시간으로 반영됩니다.

List Tools

시스템 프롬프트 설정

prompts/system_prompt.yaml 파일을 수정하여 시스템 프롬프트를 설정할 수 있습니다.

이 또한 동적으로 바로 반영되는 형태입니다.

System Prompt

만약, 에이전트에 설정되는 시스템프롬프트를 수정하고 싶다면 prompts/system_prompt.yaml 파일의 내용을 수정하면 됩니다.


주요 기능

  • LangGraph ReAct 에이전트: LangGraph를 기반으로 하는 ReAct 에이전트
  • 실시간 동적 도구 관리: MCP 도구를 쉽게 추가, 제거, 구성 가능 (Smithery JSON 형식 지원)
  • 실시간 동적 시스템 프롬프트 설정: 시스템 프롬프트를 쉽게 수정 가능 (동적 반영)
  • 대화 기록: 에이전트와의 대화 내용 추적 및 관리
  • TeddyFlow 연동: 채팅 인터페이스 연동
  • Docker 이미지 빌드: Docker 이미지 빌드 가능
  • localhost 지원: localhost 로 실행 가능(채팅 인터페이스 연동 가능)

설치 방법

  1. 저장소 복제하기
git clone https://github.com/teddynote-lab/langgraph-dynamic-mcp-agents
cd langgraph-dynamic-mcp-agents
  1. .env 파일 설정하기

.env.example 파일을 .env로 복사하고 필요한 API 키를 추가합니다.

cp .env.example .env

.env 파일에서 LLM_PROVIDER 를 설정합니다.

선택 가능(택 1): ANTHROPIC, OPENAI, AZURE_OPENAI

LLM_PROVIDER=AZURE_OPENAI

아래는 필요한 API 키 목록입니다. (선택한 LLM_PROVIDER 에 따라 설정합니다)

Anthropic, OpenAI, Azure OpenAI 에서 사용할 API 키를 설정합니다.(반드시 하나의 모델은 설정되어야 합니다.)

  • ANTHROPIC_API_KEY: Anthropic API 키
  • OPENAI_API_KEY: OpenAI API 키
  • AZURE_OPENAI_API_KEY: Azure OpenAI API 키
  • AZURE_OPENAI_ENDPOINT: Azure OpenAI 엔드포인트
  1. MCP 도구 설정

mcp-config 폴더에 있는 mcp_config.json 파일을 기준으로 모델이 사용할 MCP 도구를 설정합니다.

따라서, 미리 사용하고자 하는 MCP 도구를 JSON 형식으로 설정해 둘 수 있습니다. 이 과정은 도구 설정 대시보드에서도 설정이 가능합니다.

아래는 샘플로 작성된 예시입니다.

{
  "mcpServers": {
    "perplexity-search": {
      "command": "npx",
      "args": [
        "-y",
        "@smithery/cli@latest",
        "run",
        "@arjunkmrm/perplexity-search",
        "--key",
        "SMITHERY_API_KEY 를 입력하세요"
      ],
      "transport": "stdio"
    },
    "get_current_time": {
      "command": "python",
      "args": [
        "/app/resources/mcp_server_time.py"
      ],
      "transport": "stdio"
    }
  }
}
  1. .py 파일을 MCP stdio 서버로 추가
  • (참고) resources 폴더에 있는 mcp_server_time.py 파일을 참고하시기 바랍니다.
  1. 사용하고자 하는 커스텀 작성된 .py 파일을 resources 폴더에 추가합니다. 그리고 stdio 서버로 실행할 수 있도록 코드를 작성합니다.

  2. mcp-config/mcp_config.json 에 추가할 때 파일 경로를 수정합니다.

    규칙

    ./resources/파일명.py > /app/resources/파일명.py

    예를 들어, ./resources/mcp_server_time.py 파일을 추가하고자 한다면 /app/resources/mcp_server_time.py 로 설정합니다.

    "get_current_time": {
        "command": "python",
        "args": [
        "/app/resources/mcp_server_time.py"
        ],
        "transport": "stdio"
    }
  3. Smithery 에 등록된 도구 추가

Smithery 에서 사용할 MCP 도구의 JSON 구성을 가져와 도구 대시보드에서 쉽게 추가할 수 있습니다.

  1. Smithery 웹사이트를 방문하여 사용하고 싶은 도구를 선택합니다.
  2. 도구 페이지에서 오른쪽의 'COPY' 버튼을 클릭하여 JSON 구성을 복사합니다.

Smithery Copy JSON

  1. mcp_config.json 파일을 열고 복사한 JSON을 추가합니다.

복사한 내용을 붙여넣기 합니다.

Add Smithery Tool

애플리케이션 실행

모든 설정이 완료되었다면, 다음 명령어로 실행할 수 있습니다.

Windows(PowerShell)

docker compose build --no-cache; docker-compose up -d

Mac / Linux

docker compose build --no-cache && docker-compose up -d

접속 주소

  • TeddyFlow 연동: https://teddyflow.com/
  • 채팅 인터페이스: http://localhost:2024
  • 도구 설정 대시보드: http://localhost:2025

teddyflow.com 연결 방법

  1. teddyflow.com 에서 회원가입을 합니다.

회원가입시 "베타 키" 에 teddynote-youtube 를 입력하면 승인 없이 바로 가입이 가능합니다.

teddyflow-code

  1. 로그인 후 "새로운 앱 연결" 버튼을 클릭합니다.

teddyflow-guide-01

  1. 앱 이름을 입력하고 "연결" 버튼을 클릭합니다.
  2. 탭에서 "LangGraph" 를 선택한 뒤 다음의 정보를 입력합니다.
  • Endpoint: http://localhost:2024
  • Graph: agent

teddyflow-guide-02

  1. 연결 설정이 완료되면 "저장" 버튼을 클릭합니다.

  2. "앱 연결하기" 버튼을 눌러 저장합니다.

회사명 / 커뮤니티 로고 및 브랜딩 적용

회사명 / 커뮤니티를 위한 커스텀 기능을 출시하였습니다.

teddyflow-company

도입을 희망하신다면 service@brain-crew.com 으로 문의주시면 도움을 드리겠습니다.

라이센스

Apache License 2.0 (LICENSE)