🧠 MCP: 다중 에이전트 제어 지점
이 프로젝트에서는 사용자 질문을 LLM 모델이나 전문 에이전트(날짜, 위치, 날씨 또는 기술 전문가 등)로 라우팅하는 다중 에이전트 서버를 구현합니다. 사용 편의성을 위해 Streamlit으로 구축된 간단한 웹 인터페이스가 포함되어 있습니다.
🚀 특징
🌐 FastAPI를 사용한 백엔드
🧠 전문 상담원(날짜, 장소, 날씨, LLM 전문가)
🧩 상속을 통한 확장 가능하고 모듈화된 에이전트 시스템
⚙️ 균일한 오류 및 응답 처리를 위한 공통 상속
AgenteBase🤖 에이전트가 서로 협업할 수 있는 스마트 로직
🖥️ Streamlit(GUI)을 활용한 시각적 인터페이스
🐳 쉬운 배포를 위한 Docker 컨테이너
🔌 로컬 또는 원격 네트워크에 대한 클라이언트-서버 통신 준비 완료
Related MCP server: Brightsy MCP Server
📁 프로젝트 구조
지엑스피1
⚙️ 요구 사항
🧪 빠른 설치
1. 저장소를 복제합니다.
git clone https://github.com/tu-usuario/MCP.git
cd MCP2. Streamlit에 대한 구성 파일을 만듭니다.
gui 디렉토리 안에 다음 파일을 만듭니다.
gui/.streamlit/secrets.toml내용은 다음과 같습니다.
server_url = "http://backend:8000/process"3. Docker Compose로 실행
docker-compose up --build이렇게 하면 두 개의 컨테이너가 만들어지고 들어올려집니다.
백엔드:
http://localhost:8000http://localhost:8501의 그래픽 인터페이스
🌍 다른 컴퓨터에서 접근(선택 사항)
포트를 올바르게 노출했는지 확인하세요(
8000,8501).secrets.toml에서localhost대신 서버 머신의 IP를 사용하세요.또한, 호스트 간 액세스를 위해 사용자 정의 Docker 네트워크를 설정할 수도 있습니다.
📦 제작용
다른 인터페이스와 통합하려는 경우에만 백엔드를 실행할 수 있습니다.
docker build -f Dockerfile.backend -t mcp_backend .
docker run -p 8000:8000 mcp_backend✨ 사용 예
웹 인터페이스에서 다음과 같은 질문을 입력할 수 있습니다.
¿Qué día es hoy?¿Dónde estoy?¿Qué clima hace?Explícame qué es Python
앱은 질문에 직접 답변할지, 아니면 상담원에게 위임할지 결정합니다.
🛠️ 에이전트 이용 가능
대리인 | 기능 |
날짜 | 현재 날짜와 시간을 반환합니다 |
위치 | IP로 도시와 국가를 감지합니다 |
기후 | 현재 위치의 날씨를 반환합니다. |
🔄 에이전트 간 상호작용
이제 날씨 에이전트는 날씨를 쿼리하기 전에 위치 에이전트를 직접 사용하여 지리적 좌표( lat , lon )와 도시를 결정하므로 사용자의 실제 위치에 맞는 응답이 가능합니다. 이를 통해 에이전트 간의 모듈성과 협업이 향상됩니다.
🧩 새로운 에이전트를 만드는 방법
AgenteBase에서 상속받는 클래스를 만듭니다.
from agentes.base import AgenteBase
class AgenteEjemplo(AgenteBase):
patrones = [r"expresiones.*clave", r"otra.*forma.*de.*preguntar"]
def agente(self) -> dict:
datos = {"respuesta": "Soy un agente de ejemplo"}
return {"success": True, "data": datos}관련 질문을 감지하기 위한 패턴을 지정합니다.
성공 키와 오류 데이터가 포함된 dict를 반환하는
agente()구현합니다.상담원은 지정된 LLM을 자동으로 사용하여 귀하의 데이터를 기반으로 자연스러운 응답을 생성합니다.
⚠️ 중요 기술 참고 사항
모든 에이전트는 다음을 관리하는 AgenteBase에서 상속됩니다.
표준 오차
LLM을 통해 데이터를 자연스러운 반응으로 변환
agent() 메서드는 구조화된 사전을 반환해야 합니다.
각 에이전트는 사용할 LLM 모델(
llm_simple또는llm_experto)을 지정합니다.
📄 라이센스
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여되었습니다.
🙋♂️ 저자
알레한드로 고메스 시에라가 개발했습니다.