KremlevLev/nova
GitHub: KremlevLev/nova
Nova 是一款确定性的 Windows 本地 AI 代理,通过语音和自然语言实现桌面自动化、文件管理、终端操作和浏览器控制,不产生幻觉动作。
Stars: 7 | Forks: 0
# ⚡ Nova — 你的 Windows 本地 AI 代理
### **语音助手、工程副驾驶和桌面自动化工具**
[](https://www.python.org/)
[](LICENSE)
[](tests/)
[](https://console.groq.com)
[](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绕过, 语音助手, 逆向工具