KremlevLev/nova

GitHub: KremlevLev/nova

Nova 是一款确定性的 Windows 本地 AI 代理,通过语音和自然语言实现桌面自动化、文件管理、终端操作和浏览器控制,不产生幻觉动作。

Stars: 7 | Forks: 0

# ⚡ Nova — 你的 Windows 本地 AI 代理 ### **语音助手、工程副驾驶和桌面自动化工具** [![Python 3.14](https://img.shields.io/badge/python-3.14-blue.svg)](https://www.python.org/) [![License MIT](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE) [![Tests](https://img.shields.io/badge/tests-220%2B%20passing-brightgreen.svg)](tests/) [![Groq](https://img.shields.io/badge/Groq-API-orange.svg)](https://console.groq.com) [![OpenRouter](https://img.shields.io/badge/OpenRouter-API-blue.svg)](https://openrouter.ai)
## 🎥 Nova 的功能 | 功能 | 示例命令 | |---|---| | 🎤 **语音控制** | “打开 Obsidian 并写首诗” | | 🖥️ **窗口管理** | “最小化所有窗口”,“打开记事本” | | 📝 **应用输入** | “在 Obsidian 中写笔记” | | 🐚 **终端与进程** | “启动服务器”,“查看日志” | | 📁 **文件与 Git** | “提交代码”,“查看 diff” | | 🌐 **浏览器代理** | “打开网站并阅读文本” | | 🔍 **网络搜索** | “查找 FastAPI 文档” | | ⏰ **提醒** | “10分钟后提醒我检查测试” | | 🧠 **长期记忆** | “记住,我最喜欢的编辑器是 VS Code” | | 📋 **UI Automation** | “在当前活动窗口点击 OK 按钮” | | 👁️ **OCR** | “识别屏幕上的文本” | | 📊 **Desktop UI** | 用于管理进程、内存和权限的完整控制窗口 | | 🔄 **容错性** | Groq 和 OpenRouter 之间的自动 fallback | | 🔒 **安全性** | 确认危险操作、代码 sandbox、禁止写入系统目录 | ## 🚀 快速开始 ### 1. 安装 Python 3.14 从 [python.org](https://www.python.org/downloads/) 下载并安装,务必勾选 **Add to PATH**。 ### 2. 克隆仓库 ``` git clone https://github.com/ваш-username/nova.git cd nova ### 3. 配置 API keys Создайте файл `.env` в корне проекта: ```env GROQ_API_KEYS=gsk_ваш_ключ OPENROUTER_API_KEYS=sk-or-ваш_ключ ``` **在哪里获取密钥:** * **Groq**: [console.groq.com](https://console.groq.com) — 免费,每分钟最多 30 个请求。 * **OpenRouter**: [openrouter.ai](https://openrouter.ai) — 免费模型,备用提供商。 ### 4. 自动安装依赖 ``` python scripts/install_dependencies.py ``` 或手动安装: ``` python -m venv venv .\venv\Scripts\activate pip install -r requirements.txt pip install torch --index-url https://download.pytorch.org/whl/cpu pip install playwright python -m playwright install chromium ``` ### 5. 启动 Nova ``` python -m main ``` ### 6. 激活语音 按下 **`Ctrl+Shift+Space`** 并说出: ## 🎮 快捷键 | 按键 | 操作 | |---|---| | `Ctrl+Shift+Space` | 开启/关闭语音模式 | | `Esc` | 打断 Nova 的语音 | | `Ctrl+Shift+Q` | 打断 Nova 的语音 | ## 📋 完整命令列表 ### 快速命令(无需调用 LLM) | 命令 | 结果 | |---|---| | “几点了?” | 当前时间 | | “调大音量” / “调小音量” | 调节音量 | | “静音” / “取消静音” | Mute | | “最小化所有窗口” | 最小化窗口 | | “关闭窗口” | 关闭当前活动窗口 | | “打开记事本” / “启动计算器” | 启动应用程序 | | “关闭记事本” | 关闭应用程序 | ### 应用与输入 | 命令 | 结果 | |---|---| | “打开 Obsidian 并写首诗” | 启动 + 输入 | | “在记事本中输入你好” | 输入文本 | | “打开记事本并做个备忘” | High-level skill | ### 文件 | 命令 | 结果 | |---|---| | “创建文件 test.txt 并写入文本 你好” | 写入文件 | | “读取文件 test.txt” | 读取文件 | | “查找桌面上所有的 .txt 文件” | 搜索 | | “显示文件 test.txt 的 diff” | Diff | | “回退文件 test.txt” | 从 backup 中 Rollback | ### 终端与进程 | 命令 | 结果 | |---|---| | “运行终端命令 echo hello” | 执行命令 | | “在后台运行进程 python -m http.server” | 后台服务器 | | “显示进程状态” | 状态 | | “读取进程日志” | Stdout/stderr | | “停止进程” | 停止 | | “显示所有进程” | 列表 | ### Git | 命令 | 结果 | |---|---| | “检查 Git 状态” | git status | | “显示 diff” | git diff | | “显示提交历史” | git log | | “提交并附带信息 测试” | git commit | | “显示分支” | git branch | ### 记忆 | 命令 | 结果 | |---|---| | “记住,我最喜欢的颜色是蓝色” | 保存 | | “我最喜欢的颜色是什么?” | 搜索 | | “关于我你记得什么?” | 列表 | | “忘记我最喜欢的颜色” | 删除 | | “清除所有记忆” | 清空 | ### 提醒 | 命令 | 结果 | |---|---| | “10分钟后提醒我检查测试” | 设置 | | “我有什么提醒?” | 列表 | ### 浏览器 | 命令 | 结果 | |---|---| | “启动浏览器” | 启动 Playwright | | “打开网站 example.com” | 导航 | | “阅读页面文本” | 提取文本 | | “截取页面屏幕截图” | 截图 | | “关闭浏览器” | 停止 | ### 计划 | 命令 | 结果 | |---|---| | “执行计划:打开记事本,然后输入你好” | 多步计划 | | “在后台运行计划:打开计算器,等待,然后关闭” | 后台计划 | | “显示后台计划状态” | 状态 | | “取消后台计划” | 取消 | ### UI Automation | 命令 | 结果 | |---|---| | “显示当前活动窗口的 UI 树” | 元素结构 | | “查找名为 OK 的按钮” | 搜索元素 | | “点击名为 OK 的按钮” | 点击元素 | ### OCR | 命令 | 结果 | |---|---| | “识别屏幕上的文本” | OCR | | “在屏幕上查找单词 取消” | 搜索文本 | ## 🖥️ Desktop UI Nova 提供了基于 PySide6 的完整 Desktop UI。 **功能:** - **概览** — Nova 的当前状态 - **进程** — 查看和停止后台进程 - **记忆** — 查看、删除和清空长期记忆 - **权限** — 确认或拒绝危险操作 - **模型** — 提供商和密钥状态 - **日志** — UI 命令日志 Desktop UI 会随 Nova 自动启动。如需禁用: ``` NOVA_DESKTOP_UI=false ``` ## 🧪 测试 ``` # 运行所有测试(220+ 个测试) python -m pytest -v # 运行特定测试 python -m pytest tests/test_speech_service.py -v # 运行安全测试 python -m pytest tests/test_security_redteam.py -v ``` ## 🏗️ 架构 ``` nova/ ├── core/ # Конфигурация, системный промпт ├── modules/ │ ├── agent/ # Планировщик, Executor, Recovery Engine │ ├── application/ # Агент, речь, отчёты │ ├── audio/ # STT (Whisper), TTS (Silero) │ ├── brain/ # LLM, память, роутер моделей, gateway │ ├── browser/ # Playwright browser agent │ ├── domain/ # Результаты, состояния, события │ ├── local/ # Локальный STT/LLM fallback │ ├── security/ # Sandbox для Python-кода │ ├── storage/ # SQLite, история, память, артефакты │ ├── tools/ # Реестр, раннер, политики, навыки │ ├── ui/ # Desktop UI (PySide6), overlay │ └── windows/ # Файлы, процессы, Git, UI Automation, OCR ├── data/ # Локальные данные (память, логи, бэкапы) ├── scripts/ # Установщик, сборка ├── tests/ # 220+ тестов ├── main.py # Точка входа └── .env.example # Пример конфигурации ``` ## 📊 开发进度 后续模块将持续完善 ## 🔧 构建安装程序 ``` pip install pyinstaller python scripts/build_installer.py ``` 可执行文件:`dist/Nova.exe` ## 📄 许可证 [MIT](LICENSE) ``` --- ```
标签:RPA, Sysdig, UI自动化, 人工智能, 桌面自动化, 漏洞挖掘, 特征检测, 用户模式Hook绕过, 语音助手, 逆向工具