Skip to main content

NagaAgent 4.0 - 智能对话助手,支持多MCP服务、流式语音交互、GRAG知识图谱记忆系统、RESTful API接口、控制台托盘功能

Project description

NagaAgent

简体中文|繁體中文|English

NagaAgent Logo Platform License Python Status

Star HistoryForksIssuesPull Requests UI 预览

此处获取教程视频与一键运行整合包

框架联动(QQ机器人):Undefined QQbot


介绍

NagaAgent 是一个功能丰富的智能对话助手系统,具有以下特色功能:

🎯 核心功能

  • 智能对话系统:支持流式对话和工具调用循环
  • 多Agent协作:基于博弈论的智能任务调度
  • 知识图谱记忆:GRAG系统支持长期记忆和智能检索
  • 完整语音交互:实时语音输入输出处理
  • 现代化界面:PyQt5 GUI + Live2D虚拟形象
  • 系统托盘集成:后台运行和快捷操作

🛠️ 技术架构

系统整体架构

graph TB
    %% 用户界面层
    subgraph "用户界面层 (UI Layer)"
        UI[PyQt5 GUI界面]
        Live2D[Live2D虚拟形象]
        Tray[系统托盘]
        Chat[聊天界面]
    end

    %% 核心服务层
    subgraph "核心服务层 (Core Services)"
        API[API服务器<br/>:8000]
        Agent[Agent服务器<br/>:8001]
        MCP[MCP服务器<br/>:8003]
        TTS[TTS服务器<br/>:5048]
    end

    %% 业务逻辑层
    subgraph "业务逻辑层 (Business Logic)"
        Game[博弈论系统<br/>多Agent协作]
        Memory[GRAG记忆系统<br/>知识图谱]
        Voice[语音处理系统<br/>实时语音交互]
        Tools[工具调用系统<br/>MCP协议]
    end

    %% 数据存储层
    subgraph "数据存储层 (Data Storage)"
        Neo4j[(Neo4j图数据库<br/>知识图谱存储)]
        Files[文件系统<br/>配置/日志/缓存]
        MemoryCache[内存缓存<br/>会话状态]
    end

    %% 外部服务层
    subgraph "外部服务层 (External Services)"
        LLM[LLM服务商<br/>OpenAI/通义千问等]
        Portal[NagaPortal<br/>门户服务]
        MQTT[物联网设备<br/>MQTT通讯]
        Web[网络爬虫<br/>在线搜索]
    end

    %% 连接关系
    UI --> API
    UI --> Agent
    UI --> MCP
    UI --> TTS
    
    API --> Game
    API --> Memory
    API --> Voice
    API --> Tools
    
    Agent --> Game
    Agent --> Tools
    
    MCP --> Tools
    MCP --> Portal
    MCP --> MQTT
    MCP --> Web
    
    TTS --> Voice
    
    Game --> Memory
    Memory --> Neo4j
    Voice --> LLM
    Tools --> LLM
    
    API --> MemoryCache
    Agent --> MemoryCache
    MCP --> MemoryCache
    
    %% 样式
    classDef uiLayer fill:#e1f5fe
    classDef coreLayer fill:#f3e5f5
    classDef businessLayer fill:#e8f5e8
    classDef dataLayer fill:#fff3e0
    classDef externalLayer fill:#fce4ec
    
    class UI,Live2D,Tray,Chat uiLayer
    class API,Agent,MCP,TTS coreLayer
    class Game,Memory,Voice,Tools businessLayer
    class Neo4j,Files,MemoryCache dataLayer
    class LLM,Portal,MQTT,Web externalLayer

核心特性

  • 多服务并行:API服务器(8000)、Agent服务器(8001)、MCP服务器(8003)、TTS服务器(5048)
  • 模块化设计:各服务独立运行,支持热插拔
  • 配置驱动:实时配置热更新,无需重启
  • 跨平台支持:Windows、macOS、Linux

🔧 技术栈

技术栈架构

graph TB
    %% 前端技术栈
    subgraph "前端技术栈 (Frontend Stack)"
        PyQt5[PyQt5<br/>GUI框架]
        Live2D[Live2D<br/>虚拟形象]
        QSS[QSS<br/>样式表]
    end
    
    %% 后端技术栈
    subgraph "后端技术栈 (Backend Stack)"
        FastAPI[FastAPI<br/>Web框架]
        Uvicorn[Uvicorn<br/>ASGI服务器]
        AsyncIO[AsyncIO<br/>异步编程]
    end
    
    %% 数据库技术栈
    subgraph "数据库技术栈 (Database Stack)"
        Neo4j[Neo4j<br/>图数据库]
        GRAG[GRAG<br/>知识图谱]
        Memory[内存缓存<br/>会话管理]
    end
    
    %% AI技术栈
    subgraph "AI技术栈 (AI Stack)"
        OpenAI[OpenAI API<br/>GPT模型]
        Qwen[通义千问<br/>多模态模型]
        MCP[MCP协议<br/>工具调用]
    end
    
    %% 语音技术栈
    subgraph "语音技术栈 (Voice Stack)"
        ASR[语音识别<br/>ASR]
        TTS[语音合成<br/>TTS]
        Realtime[实时语音<br/>WebRTC]
    end
    
    %% 网络技术栈
    subgraph "网络技术栈 (Network Stack)"
        HTTP[HTTP/HTTPS<br/>RESTful API]
        WebSocket[WebSocket<br/>实时通信]
        MQTT[MQTT<br/>物联网协议]
    end
    
    %% 样式
    classDef frontend fill:#e3f2fd
    classDef backend fill:#f1f8e9
    classDef database fill:#fff3e0
    classDef ai fill:#fce4ec
    classDef voice fill:#e8f5e8
    classDef network fill:#f3e5f5
    
    class PyQt5,Live2D,QSS frontend
    class FastAPI,Uvicorn,AsyncIO backend
    class Neo4j,GRAG,Memory database
    class OpenAI,Qwen,MCP ai
    class ASR,TTS,Realtime voice
    class HTTP,WebSocket,MQTT network

核心技术

  • Python 3.11 + PyQt5 + FastAPI
  • Neo4j图数据库 + GRAG知识图谱
  • MCP (Model Context Protocol) 工具调用
  • OpenAI兼容API + 多种LLM服务商支持

部署运行教程

环境要求

  • Python 3.11
  • 可选:uv工具(加速依赖安装,且无需特定python版本)

快速开始

如果您的部署有困难,可以参考视频教程或下载一键运行整合包。

1. 安装依赖

使用setup脚本
# 可选:先安装uv
pip install uv

# 使用 setup.py 自动初始化
python setup.py

# 或使用 setup.sh (Linux/macOS)
./setup.sh

# 或使用 setup.bat (Windows)
setup.bat

初始化脚本会自动:

  • 检测Python版本
  • 创建虚拟环境
  • 安装依赖包
  • 复制配置文件模板
  • 打开配置文件供编辑
手动部署
# 无uv
python -m venv .venv

# linux/Mac OS
source .venv/bin/activate
# Windows
.\.venv\Scripts\activate

pip install -r requirements.txt

# 使用uv
uv sync

2. 配置LLM API

编辑 config.json 文件,配置您的LLM API信息:

{
  "api": {
    "api_key": "你的api_key",
    "base_url": "模型服务商OPENAI API端点",
    "model": "模型名称"
  }
}
可选配置

启用知识图谱记忆

使用 docker 安装 neo4j 或安装 neo4j desktop 并在 config.json 中配置 Neo4j 连接参数:

{
  "grag": {
    "enabled": true,
    "neo4j_uri": "neo4j://127.0.0.1:7687",
    "neo4j_user": "neo4j",
    "neo4j_password": "你安装neo4j时设置的密码"
  }
}

启用语音输出功能

{
  "system": {
    "voice_enabled": true
  },
  "tts": {
    "port": 5048
  }
}

Live2D 相关配置

  "live2d": {
    "enabled": false, # 是否启用Live2D
    "model_path": "ui/live2d_local/live2d_models/重音テト/重音テト.model3.json", # Live2D模型路径
    "fallback_image": "ui/img/standby.png", # 备用图片
    "auto_switch": true, # 是否自动切换
    "animation_enabled": true, # 是否启用动画
    "touch_interaction": true # 是否启用触摸交互
  },

其他配置项可参考注释

3. 启动应用

# 使用启动脚本
./start.sh          # Linux/macOS
start.bat           # Windows


# 或直接运行py文件
# linux/Mac OS
source .venv/bin/activate
# Windows
.\.venv\Scripts\activate
python main.py

# uv
uv run main.py

程序会自动检测上次系统检测时间,如果检测通过且超过7天,会自动执行更新并重启。

手动更新

# 使用更新脚本
./update.sh         # Linux/macOS
update.bat          # Windows

# 或直接运行py文件
python update.py

更新脚本会自动执行 git pull(自动检测当前分支)和 uv sync 同步依赖。

故障排除
  1. Python 版本不兼容:确保使用Python 3.11
  2. 端口被占用:检查8000、8001、8003、5048端口是否可用
  3. Neo4j 连接失败:确保Neo4j服务正在运行
  4. 检测 Neo4j 连接时出现 json 解析错误:退出并重新启动程序
  5. 未知错误:请创建issue以反馈
环境检测
# 运行系统环境检测
python main.py --check-env --force-check

# 快速检测
python main.py --quick-check

许可证

NagaAgent License

贡献

欢迎创建Issue和Pull Request!

构建一键运行整合包
python build.py

构建完成的文件位于dist/目录下

Star History

Star History Chart

感谢所有开发者对本项目做出的贡献

⭐ 如果这个项目对您有帮助,请考虑给我们一个 Star

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iflow_mcp_xxiii8322766509_nagaagent-4.0.0.tar.gz (102.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file iflow_mcp_xxiii8322766509_nagaagent-4.0.0.tar.gz.

File metadata

  • Download URL: iflow_mcp_xxiii8322766509_nagaagent-4.0.0.tar.gz
  • Upload date:
  • Size: 102.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_xxiii8322766509_nagaagent-4.0.0.tar.gz
Algorithm Hash digest
SHA256 b361a586eec42c5e1c84f2ac3b7f840b12f0d54181a6f848e497c8d26484487d
MD5 f53379756749b5b20b720f113d04c6e1
BLAKE2b-256 6b87a0619a4b74eedafaa06e03c3b43e55ac3b782df38925035b1c3b2c40be4f

See more details on using hashes here.

File details

Details for the file iflow_mcp_xxiii8322766509_nagaagent-4.0.0-py3-none-any.whl.

File metadata

  • Download URL: iflow_mcp_xxiii8322766509_nagaagent-4.0.0-py3-none-any.whl
  • Upload date:
  • Size: 35.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_xxiii8322766509_nagaagent-4.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ce18fc5222fe1494a0ffeb33460293997104dfee2bee956cfc88db4df343d7f8
MD5 d5c808e20143eaaa35edd68d86133323
BLAKE2b-256 ecdfc2befed17dd0d628f97a54039da41fb41fc3b54aed1cefbf04213bbfa159

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page