llmesh은(는) 무엇을 하나요?
보안 우선 로컬 LLM 스웜 - MCP 기반, 서명된 피어 발견, 폐쇄 실패 검증, 감사 추적, Docker 기반 PoC 노드
개요
llmesh는 다수의 로컬 LLM 에이전트가 MCP(Model Context Protocol)를 통해 안전하게 협업할 수 있는 스웜 아키텍처를 제공합니다.
주요 기능
- 서명된 피어 발견: 각 노드는 암호학적 서명을 통해 자신의 신원을 증명하고 신뢰할 수 있는 피어만 검색합니다.
- 폐쇄 실패 검증: 인증되지 않은 모든 요청은 기본적으로 거부되어 보안 경계를 유지합니다.
- 감사 추적: 모든 상호작용은 감사 로그에 기록되어 추적 가능성을 보장합니다.
- Docker 기반 PoC 노드: Docker 컨테이너로 PoC 노드를 쉽게 시작하여 스웜을 실험해볼 수 있습니다.
시작하기
사전 요구 사항
- Docker 및 Docker Compose
- Python 3.10+
llmesh저장소 클론
빠른 시작
# 저장소 클론
git clone https://github.com/furuse-kazufumi/llmesh.git
cd llmesh
# Docker 컨테이너를 사용하여 PoC 노드 시작
docker-compose up -d
# 노드가 피어를 발견하는지 확인
docker-compose logs -f
아키텍처
llmesh는 중앙 조정자 없이 각 노드가 피어 투 피어로 통신하는 분산 아키텍처를 채택합니다.
- 노드 등록: 각 노드는 시작 시 서명된 인증서를 생성합니다.
- 피어 발견: 노드는 로컬 네트워크를 브로드캐스트하여 서명된 인증서를 가진 다른 노드를 발견합니다.
- 안전한 통신: 발견된 피어 간의 모든 통신은 MCP를 통해 이루어지며, 서명 기반 인증으로 보호됩니다.
- 감사: 모든 메시지 교환은 각 노드의 감사 로그에 기록됩니다.
설정
config.yaml 파일을 통해 다음을 설정할 수 있습니다:
node.id: 노드 식별자node.listen_port: MCP 통신을 위한 포트discovery.broadcast_interval: 피어 발견 브로드캐스트 간격 (초)security.signature_algorithm: 서명 알고리즘 (기본값:Ed25519)logging.level: 감사 로그 레벨
예시 config.yaml:
node:
id: "node-alpha"
listen_port: 9000
discovery:
broadcast_interval: 30
security:
signature_algorithm: "Ed25519"
logging:
level: "INFO"
사용 예
두 개의 노드로 스웜 실행하기
# 터미널 1: 첫 번째 PoC 노드
docker-compose run -e NODE_ID=node1 -e LISTEN_PORT=9000 poc-node
# 터미널 2: 두 번째 PoC 노드
docker-compose run -e NODE_ID=node2 -e LISTEN_PORT=9001 poc-node
노드가 로그에서 서로를 발견하는 것을 확인할 수 있습니다.
보안 모델
llmesh는 다음 원칙을 기반으로 설계되었습니다:
- 최소 권한: 각 노드는 필요한 MCP 도구만 노출합니다.
- 폐쇄 실패: 기본적으로 모든 연결은 거부됩니다. 명시적으로 화이트리스트에 등록된 피어만 통신할 수 있습니다.
- 암호학적 증명: 모든 피어는 Ed25519 서명을 통해 신원을 증명해야 합니다.
- 변조 방지 감사: 감사 로그는 체인 해싱되어 사후 변조가 불가능합니다.
라이선스
기여
기여를 환영합니다! 자세한 내용은 CONTRIBUTING.md를 참조하세요.