# MineNASAI 基于 NAS 的智能个人 AI 助理,支持企业微信/飞书通讯,集成 Claude 编程能力。 ## 特性 - **多渠道通讯**: 企业微信、飞书接入 - **智能路由**: 自动识别任务复杂度,选择最优处理方式 - **双界面模式**: - 通讯工具:日常交互、简单任务 - Web TUI:深度编程、复杂项目 - **安全隔离**: Python 沙箱执行、权限分级 - **可扩展**: 支持 MCP Server 插件 ## 快速开始 ### 环境要求 - Python 3.11+ - Redis (可选,用于任务队列) - SSH 服务 (Web TUI 需要) ### 安装 ```bash # 克隆项目 git clone https://github.com/minenasai/minenasai.git cd minenasai # 创建虚拟环境 python -m venv .venv source .venv/bin/activate # Linux/macOS # .venv\Scripts\activate # Windows # 安装依赖 pip install -e ".[dev]" # 安装 pre-commit 钩子 pre-commit install ``` ### 配置 ```bash # 复制环境变量模板 cp .env.example .env # 编辑 .env 文件,填入 API Key 等配置 # ANTHROPIC_API_KEY=sk-ant-xxxxx # 初始化配置文件 minenasai config --init ``` ### 运行 ```bash # 启动 Gateway 服务 minenasai server --port 8000 # 启动 Web TUI 服务(另一个终端) minenasai webtui --port 8080 ``` ## 项目结构 ``` minenasai/ ├── src/minenasai/ │ ├── core/ # 核心模块(配置、日志) │ ├── gateway/ # Gateway 服务 │ │ ├── protocol/ # 消息协议 │ │ └── channels/ # 通讯渠道(企业微信、飞书) │ ├── agent/ # Agent 运行时 │ │ └── tools/ # 内置工具 │ └── webtui/ # Web TUI 界面 │ └── static/ # 前端静态文件 ├── tests/ # 测试用例 ├── config/ # 配置文件模板 └── docs/ # 文档 ``` ## 架构概述 ``` ┌─────────────────────────────────────────────────────────────┐ │ 通讯接入层 (Channels) │ │ 企业微信Bot 飞书Bot Web UI │ └────────────────────────────┬────────────────────────────────┘ │ ┌────────────────────────────┴────────────────────────────────┐ │ Gateway 服务 (FastAPI) │ │ WebSocket协议 / 消息队列 / 权限验证 │ └────────────────────────────┬────────────────────────────────┘ │ ┌────────────────────────────┴────────────────────────────────┐ │ 智能路由层 (SmartRouter) │ │ 任务复杂度评估 / 单/多Agent决策 │ └────────────────────────────┬────────────────────────────────┘ │ ┌───────────────────┼───────────────────┐ ↓ ↓ ↓ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ 快速执行通道 │ │ Anthropic │ │ Web TUI │ │ Python沙箱 │ │ API │ │ SSH+Claude │ └─────────────┘ └─────────────┘ └─────────────┘ ``` ## 开发 ### 代码规范 ```bash # 格式化代码 ruff format src tests # 检查代码 ruff check src tests # 类型检查 mypy src ``` ### 测试 ```bash # 运行测试 pytest # 带覆盖率 pytest --cov=minenasai ``` ## 配置说明 配置文件位置: `~/.config/minenasai/config.json5` 主要配置项: | 配置项 | 说明 | 默认值 | |--------|------|--------| | `gateway.port` | Gateway 端口 | 8000 | | `webtui.port` | Web TUI 端口 | 8080 | | `agents.default_model` | 默认模型 | claude-sonnet-4-20250514 | | `router.mode` | 路由模式 | agent | ## 许可证 MIT License