dujonwalker/project-nova
요약
Project NOVA는 n8n, LLM, 그리고 25개 이상의 MCP 서버를 결합하여 디지털 및 물리적 환경을 제어하는 셀프 호스팅 AI 에이전트 생태계입니다. 허브 앤 스포크 아키텍처를 통해 지식 관리, 개발, 홈 오토메이션 등 다양한 도메인 특화 에이전트를 오케스트레이션합니다.
핵심 포인트
- n8n 워크플로우와 MCP 서버를 활용한 확장 가능한 에이전트 시스템
- 지능형 라우터를 통한 도메인 특화 에이전트 자동 배정
- Docker 기반의 컨테이너화된 아키텍처로 간편한 셀프 호스팅 지원
- OpenWebUI를 통한 현대적인 대화형 인터페이스 제공
Project NOVA (Networked Orchestration of Virtual Agents)는 n8n 워크플로우 (workflows), LLM (Large Language Models), 그리고 25개 이상의 특화된 MCP (Model Context Protocol) 서버를 활용하여, 디지털 환경과 가정 내 물리적 장치를 모두 제어할 수 있는 강력하고 확장 가능한 에이전트 시스템을 구축하는 포괄적인 셀프 호스팅 (self-hosted) AI 어시스턴트 생태계입니다.
중앙 집중식 AI 어시스턴트 허브: 지능형 라우터 (router)를 통해 25개 이상의 특화된 에이전트로 요청을 전달합니다대화 인지 지능 (Conversation-Aware Intelligence): 고급 대화 이력 처리를 통해 상호작용 전반에 걸쳐 문맥 (context)을 유지합니다OpenWebUI 통합: 대화 지속성 및 향상된 사용자 경험을 제공하는 현대적인 채팅 인터페이스도메인 특화 기능: 지식 관리, 개발 도구, 미디어 제작, 홈 오토메이션 (home automation) 등 다양한 기능 제공셀프 호스팅 및 개인정보 보호 중심: 오픈 소스 구성 요소를 사용하여 모든 것을 로컬에서 실행합니다컨테이너화된 아키텍처 (Containerized Architecture): Docker, Dockerfiles, docker-compose.yml 파일을 통해 간편하게 배포할 수 있습니다SSE 전송 통합: supergateway를 사용하여 MCP 서버 통신을 강화합니다네이티브 n8n 통합: n8n의 내장 MCP Client Tool 노드를 사용하므로 커뮤니티 노드가 필요하지 않습니다확장 가능한 프레임워크: 제공된 템플릿과 포괄적인 문서를 통해 새로운 특화 에이전트를 추가할 수 있습니다
Project NOVA는 대화 지능을 갖춘 정교한 허브 앤 스포크 (hub-and-spoke) 아키텍처를 사용합니다:
OpenWebUI 프론트엔드: 대화 이력 및 세션 관리를 지원하는 현대적인 채팅 인터페이스n8n 워크플로우 엔진 (Workflow Engine): 요청을 처리하고 에이전트 간의 통신을 오케스트레이션 (orchestrate)합니다지능형 라우터 에이전트 (Intelligent Router Agent): 요청과 대화 문맥을 분석하여 적절한 특화 에이전트로 경로를 지정합니다25개 이상의 특화된 에이전트: 다양한 작업을 위해 MCP 기반으로 작동하는 도메인 특화 에이전트들MCP 서버 생태계: 에이전트에게 도구 기능을 제공하는 컨테이너화된 서비스들
Project NOVA는 사용 가능한 모든 에이전트를 효과적으로 이해하고 사용할 수 있도록 돕는 포괄적인 참조 가이드를 포함하고 있습니다:
에이전트 인덱스 (Agent Index): 모든 에이전트의 기능 및 링크를 포함한 전체 개요
라우터 에이전트 (Router Agent) 빠른 참조: 라우팅 시스템의 작동 방식 및 모범 사례
카테고리별 하위 에이전트 (Sub-Agents by Category):
- 지식 관리 에이전트 (Knowledge Management Agents): 문서, 노트 및 정보 관리 도구
- 개발 및 리포지토리 에이전트 (Development & Repository Agents): 코드, 리포지토리 및 시스템 관리 도구
- 미디어 및 크리에이티브 에이전트 (Media & Creative Agents): 오디오, 비디오 및 크리에이티브 제작 도구
- AI 및 자동화 에이전트 (AI & Automation Agents): 워크플로, 브라우저 자동화 및 AI 확장 도구
참조 가이드는 각 에이전트의 기능, 도구, 예시 쿼리(example queries) 및 문제 해결 팁에 대한 상세 정보를 제공합니다.
Project NOVA는 여러 도메인에 걸쳐 25개 이상의 특화된 에이전트를 포함하고 있습니다:
-
TriliumNext Notes 에이전트 - TriliumNext Notes 지식 베이스 애플리케이션을 제어합니다.
-
Blinko 에이전트 - Blinko 노트 필기 서비스의 노트를 관리합니다 (커스텀 MCP 구현 사용).
-
BookStack 에이전트 - BookStack 문서 및 위키 플랫폼과 인터페이스합니다.
-
Memos 에이전트 - 경량 Memos 노트 필기 애플리케이션과 연동하여 작동합니다.
-
Outline 에이전트 - 팀 문서화를 위한 Outline 지식 베이스를 관리합니다.
-
SiYuan 에이전트 - SiYuan Note 개인 지식 관리 시스템을 제어합니다.
-
Karakeep 에이전트 - 디지털 콘텐츠 컬렉션 및 북마크를 정리합니다.
-
Paperless 에이전트 - Paperless-NGX 문서 관리 시스템을 관리합니다.
-
OnlyOffice 에이전트 - 문서 협업을 위한 ONLYOFFICE DocSpace를 관리합니다.
-
CLI Server 에이전트 - 보안 명령줄 실행 (command-line execution) 기능을 제공합니다.
-
Forgejo 에이전트 - Forgejo Git 리포지토리 및 이슈를 관리합니다.
-
Gitea 에이전트 - 리포지토리 관리를 위한 Gitea Git 서비스를 제어합니다.
-
System Search 에이전트 - 파일 시스템 전반에서 파일 및 폴더를 찾습니다.
-
Ableton Copilot - Ableton Live에서의 음악 제작을 보조합니다.
-
OBS Agent - 스트리밍 및 녹화를 위해 OBS Studio를 제어합니다.
-
Reaper Agent - REAPER 디지털 오디오 워크스테이션 (Digital Audio Workstation)을 제어합니다.
-
Reaper QA Agent - REAPER 프로젝트에 대한 질문을 분석하고 답변합니다.
-
YouTube Agent - 요약 및 콘텐츠 분석을 위해 YouTube 비디오를 전사 (Transcribe) 합니다.
-
Flowise Agent - Flowise 채팅 흐름 (Chatflows) 및 AI 어시스턴트에 연결합니다.
-
Langfuse Agent - Langfuse에서 관리되는 프롬프트 (Prompts)에 액세스합니다.
-
Puppeteer Agent - 웹 스크래핑 (Web Scraping) 및 테스트를 위한 브라우저 자동화를 제공합니다.
-
RAGFlow Agent - 출처 인용을 포함한 검색 증강 생성 (Retrieval-Augmented Generation, RAG)을 수행합니다.
-
Fetch Agent - 고급 옵션을 사용하여 URL에서 웹 콘텐츠를 가져옵니다.
-
Home Assistant Agent - Home Assistant를 통해 스마트 홈 기기를 제어합니다.
-
Prometheus Agent - Prometheus 모니터링에서 메트릭 (Metrics)을 쿼리하고 분석합니다.
홈 자동화 (Home Automation): "거실 조명을 끄고 내 저녁 플레이리스트를 재생해줘"
지식 관리 (Knowledge Management): "지난 화요일 프로젝트 회의에 관한 내 노트를 찾아줘"
창작 제작 (Creative Production): "드럼 랙 (Drum Rack)이 포함된 새로운 Ableton Live 프로젝트 설정을 도와줘"
개발 지원 (Development Assistance): "내 Gitea 저장소에 열려 있는 풀 리퀘스트 (Pull Requests)가 있는지 확인해줘"
시스템 관리 (System Management): "지난 24시간 동안 내 서버의 CPU 사용량을 모니터링해줘"
콘텐츠 분석 (Content Analysis): "이 YouTube 비디오에서 전사본을 가져와서 핵심 내용을 요약해줘"
Project NOVA를 설정하기 전에 다음 사항을 준비했는지 확인하십시오:
OpenWebUI 인스턴스 (Instance): 대화 관리가 가능한 현대적인 채팅 인터페이스를 위해 필요합니다.
참고: 텍스트 음성 변환 (Text-to-Speech) 기능 (음성 입력)을 사용하려면 OpenWebUI에 SSL/HTTPS가 필요합니다 (자가 서명 인증서도 가능합니다).
n8n 인스턴스 (Instance): 실행 중인 n8n 설치본 (v1.88.0 이상)이 필요합니다.
중요: 네이티브 MCP 클라이언트 툴 (MCP Client Tool) 노드가 도입되었으므로 버전 1.88.0 이상이 반드시 필요합니다.
커뮤니티 노드 불필요: 모든 에이전트는 이제 n8n의 네이티브 MCP 클라이언트 툴 노드를 사용합니다.
n8n 인스턴스 (n8n Instance): 채팅 트리거 (chat trigger) 기능이 포함된 실행 중인 n8n 설치 버전 (v1.88.0 이상)
커뮤니티 노드 불필요 (No Community Nodes Required): 모든 에이전트는 n8n의 네이티브 MCP 클라이언트 툴 (MCP Client Tool) 노드를 사용합니다.
Docker 호스트 (Docker Host): 컨테이너화된 MCP 서버를 실행하기 위한 환경
LLM 액세스 (LLM Access): 다음 중 하나가 필요합니다:
- 클라우드 API 액세스 (OpenAI, Claude, Gemini 등)
- 도구 사용 (tool use) / 함수 호출 (function calling)을 지원하는 모델이 설치된 로컬 Ollama 인스턴스
제어할 애플리케이션 (Applications to Control):
- NOVA가 제어하기를 원하는 실제 애플리케이션 (대부분의 에이전트는 셀프 호스팅 애플리케이션을 위해 설계되었습니다)
- 예시: Home Assistant, Gitea, Reaper, OBS Studio, TriliumNext 등
- 각 에이전트는 그에 대응하는 애플리케이션에 접근할 수 있어야 합니다.
git clone https://github.com/dujonwalker/project-nova.git
cd project-nova
옵션 A: OpenWebUI + n8n (권장)
이 설정은 대화 기록 (conversation history), 세션 관리 (session management) 및 현대적인 인터페이스를 통해 최상의 사용자 경험을 제공합니다.
-
OpenWebUI 인렛 필터 (inlet filter) 설정:
- OpenWebUI 인스턴스에서 Workspace → Functions로 이동합니다.
- **"Create New Function"**을 클릭합니다.
openwebui-function/n8ui_inlet_filter.py에 있는 코드를 복사하여 함수 에디터에 붙여넣습니다.- 중요: 필터 상단의
n8n_url설정 변수를 전체 n8n 웹훅 (webhook) URL(서버 IP/호스트 이름 및 웹훅 UUID 포함)로 업데이트합니다. - 필터를 저장합니다.
-
필터를 사용하여 새 모델 생성:
- OpenWebUI 인스턴스에서 Workspace → Models로 이동합니다.
- **"Create New Model"**을 클릭합니다.
- 기본 모델 (예: 선호하는 LLM)을 구성합니다.
- Filters 섹션에서 방금 생성한 n8n 인렛 필터를 선택합니다.
- 모델을 저장합니다.
- 이제 필터가 메시지를 n8n으로 자동으로 전달하고 대화 기록을 관리합니다.
-
n8n 워크플로우 (workflows) 구성:
- 라우터 에이전트 워크플로우 (
n8n-workflows/router_agent.json)를 가져옵니다 (Import). - 라우터 에이전트에 웹훅 트리거 (webhook trigger)를 설정합니다 (OpenWebUI 필터에서 URL 구성).
- 필요에 따라 특화된 에이전트 워크플로우를 가져옵니다.
- 라우터 에이전트 워크플로우 (
-
라우터 에이전트 워크플로우 (router agent workflow)를 가져옵니다.
옵션 B: n8n 전용 설정
n8n 인스턴스에 워크플로우 가져오기:
n8n CLI를 통한 일괄 가져오기 (가장 쉬운 방법):
n8n 설치 디렉토리로 이동
n8n import:workflow --input=path/to/project-nova/n8n-workflows/*
n8n 웹 인터페이스를 통한 가져오기:
-
n8n 대시보드로 이동합니다.
-
사이드바에서 "Workflows"를 클릭합니다.
-
각 워크플로우에 대해 "Import from file" 옵션을 사용합니다.
-
라우터 에이전트(router agent)를 먼저 시작한 다음, 특화된 에이전트(specialized agents)를 진행합니다.
가져온 후 구성하기:
OpenWebUI 필터 업데이트: 가져온 라우터 에이전트의 웹훅(webhook) URL을 복사하여 OpenWebUI 인렛 필터(inlet filter) 설정에 붙여넣습니다.
API 키 구성: 사용하려는 서비스(Blinko, Home Assistant 등)의 실제 API 키를 추가합니다.
서버 IP 업데이트: YOUR_SERVER_IP 플레이스홀더를 실제 서버 주소로 교체합니다.
mcp-server-dockerfiles에 제공된 Dockerfile 및 docker-compose.yml 파일을 사용하여 서버를 빌드하고 실행합니다.- 또는 호스트에 MCP 서버를 직접 설정하는 지침을 사용합니다.
- 사용할 에이전트들을 위해 각 MCP 서버를 구성합니다.
LLM 제공업체 (LLM Provider): 각 워크플로우에서 사용하는 LLM 제공업체(OpenAI, Claude, Gemini 등)의 자격 증명(credentials)을 업데이트합니다.
애플리케이션 API (Application APIs): NOVA에 앱에 대한 키를 제공합니다 (Paperless-NGX API 키, Gitea API 키, Home Assistant 토큰 등).
MCP 서버 연결 (MCP Server Connections): 각 워크플로우에서 SSE 엔드포인트 또는 서버 연결을 구성합니다.
OpenWebUI 설정 시:
- OpenWebUI 인스턴스로 이동합니다.
- 대화를 시작합니다 - 메시지는 자동으로 n8n을 통해 처리됩니다.
- 인렛 필터(inlet filter)가 대화 기록과 라우팅을 자동으로 처리합니다.
n8n 전용 설정 시:
- n8n에서 router agent 워크플로우(workflow)로 이동합니다.
- webhook 트리거 노드를 연결 해제하고 대신 chat 트리거 노드를 연결합니다 (chat 트리거는 이미 존재하지만 기본적으로 연결이 해제되어 있습니다).
- chat 트리거 노드를 사용하여 NOVA와 대화를 시작합니다.
- router가 요청을 분석하여 적절한 전문 에이전트(specialized agents)로 안내합니다.
OpenWebUI 통합은 다음과 같은 기능을 수행하는 인렛 필터(inlet filter, openwebui-function/n8n_inlet_filter.py)를 사용합니다:
모든 수신 메시지를 n8n을 통해 처리하여 LLM에 도달하기 전에 처리합니다.
대화 기록을 관리하기 위해 이전 메시지를 추출하고 전달합니다.
중복 호출을 방지하기 위해 지능적인 중복 제거(30초 윈도우)를 수행합니다.
세션 관리를 처리하기 위해 고유한 채팅 ID를 사용합니다.
**n8n 응답을 시스템 메시지 주입(system message injection)**을 통해 사용자에게 직접 반환합니다.
필터의 주요 설정 옵션:
n8n_url: n8n 웹훅 엔드포인트(webhook endpoint) URL
n8n_bearer_token: n8n 인증 토큰(authentication token)
timeout: n8n 호출에 대한 요청 제한 시간 (기본값: 15초)
enabled: n8n 처리 활성화/비활성화 토글
Project NOVA에는 이제 정교한 대화 컨텍스트(conversation context) 처리 기능이 포함되어 있습니다:
Router Agent 기능:
- 컨텍스트를 이해하기 위해 대화 기록을 처리합니다.
- 지능적인 후속 라우팅을 제공합니다 (예: "이름에 X가 포함된 저장소가 있나요?"라고 물으면 동일한 저장소 에이전트와 대화를 계속합니다).
- 상호작용 전반에 걸쳐 세션 연속성을 유지합니다.
Sub-Agent 기능:
-
모든 전문 에이전트는 사용 가능한 경우 대화 기록을 전달받습니다.
-
에이전트는 더 나은 컨텍스트를 위해 이전 상호작용을 참조할 수 있습니다.
-
에이전트 간의 핸드오프(handoff) 시에도 일관된 대화 경험을 제공합니다.
-
prompt-templates/generate-agent.md템플릿을 사용하여 새로운 에이전트 시스템 프롬프트(system prompt)를 생성합니다. -
prompt-templates/generate-container.md를 가이드로 사용하여 Dockerfile을 생성합니다. -
기존 워크플로우를 템플릿으로 사용하여 n8n 워크플로우 설정을 추가합니다.
-
새로운 전문 에이전트를 포함하도록 router agent를 업데이트합니다.
-
참조 가이드에 문서를 추가합니다.
project-nova/
├── README.md # 이 포괄적인 README 파일
├── agents/ # 모든 에이전트를 위한 시스템 프롬프트 (참조용)
...
기본 설정을 위한 권장 최소 사양: 4GB RAM, 2 CPU 코어
OpenWebUI + 전체 에이전트 생태계를 위한 사양: 16GB RAM, 8 CPU 코어 권장
API 비용과 지연 시간 (latency)을 줄이기 위해 로컬 LLM 추론 (Ollama) 사용을 고려하세요
MCP 서버 리소스 사용량은 에이전트마다 다르므로, 컨테이너 사용량을 모니터링하고 필요에 따라 확장하세요.
-
강화된 OpenWebUI 통합 기능:
-
에이전트를 통한 파일 업로드 지원
-
더 많은 도메인을 위한 추가 전문 에이전트
-
놀라운 워크플로우 자동화 플랫폼인 n8n
-
대화 관리가 가능한 우수한 프론트엔드 인터페이스인 OpenWebUI
-
AI 도구 상호작용을 표준화하기 위한 Model Context Protocol (MCP)
-
STDIO에서 SSE 전송으로의 변환을 가능하게 하는 Supergateway
-
이 프로젝트에 영감을 준 n8n-nodes-mcp 분야의 선구적인 작업을 수행한 nerding-io
-
전문 에이전트를 가능하게 하는 모든 오픈 소스 프로젝트들
-
Project NOVA: 상세 기술서 - 추가적인 통찰과 구현 세부 사항이 담긴 포괄적인 블로그 포스트
-
질문이나 지원이 필요한 경우, 이 리포지토리에 이슈 (issue)를 생성해 주세요.
Project NOVA를 추가 에이전트로 확장하고자 한다면, MCP 서버를 찾기 위한 몇 가지 유용한 리소스는 다음과 같습니다:
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Codex tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기