landjunge/gnom-hub
GitHub: landjunge/gnom-hub
GNOM-HUB 是一个 100% 本地运行的多智能体编排框架,通过固定 8 智能体拓扑将 AI 工作流完全保留在用户机器上,并提供独特的智能体编译和实时调节能力。
Stars: 2 | Forks: 0
# 🧠 GNOM-HUB
[](LICENSE)
[](#)
[](#)
[-blueviolet.svg)](#)
[](#)
[](#)
[](#)
🇬🇧 **English (README.md)** • 🇩🇪 **[Deutsch (README.de.md)](README.de.md)**
### 📸 视觉展示 / 截图与演示
#### 🎥 演示视频
[](docs/demo_video/gnom_hub_demo.webm)
|
|
| 多智能体锻造厂的中心枢纽,显示智能体活动、实时日志和决策覆盖层。 | 用于管理代码文件、预览和沙箱的本地工作区文件浏览器。 |
| **3. 便当盒式仪表盘 (指标)** | **4. LLM 配置(全局与密钥)** |
|:---:|:---:|
|
|
|
| 高保真便当盒式网格监控系统,用于监控 token、响应时间和 CPU/RAM 资源使用情况。 | 将各个智能体绑定到模型配置(OpenAI、OpenRouter、Ollama 等)的密钥管理器。 |
| **5. LLM 配置(智能体滑块)** | **6. 帮助中心** |
|:---:|:---:|
|
|
|
| 实时 5 轴滑块,用于校准工作节点的个性、详细程度、temperature、风险容忍度和 prompts。 | 内置的交互式文档以及智能体和命令的操作指南手册。 |
---
## 🚀 快速开始(跨平台安装)
### macOS / Linux / Windows
克隆仓库并运行统一安装脚本:
```
git clone https://github.com/landjunge/gnom-hub.git && cd gnom-hub && python3 install.py
```
这个跨平台安装程序会设置虚拟环境、安装所有依赖项、配置目录路径,并且:
- **在 macOS 上:** 自动编译原生的 App Bundle (`/Applications/Gnom-Hub.app`) 并添加 Dock 快捷方式。
- **在 Windows 上:** 生成便捷的 `start_gnom_hub.bat` 和 `stop_gnom_hub.bat` 启动器,以运行和管理后台进程。
- **在 Linux 上:** 生成 `start_gnom_hub.sh` 和 `stop_gnom_hub.sh` 命令行脚本。
*(如果您的路径中没有 `python3`,请在 Windows 上使用 `python install.py`)。*
## 🧪 运行测试
Gnom-Hub 包含一个隔离的、模拟数据库的测试套件,使用 `pytest`:
```
python3 -m pytest tests/ -v
```
这将运行 **218 个自动化单元和集成测试**(1 个跳过),涵盖连接、状态、智能体、聊天、管理员身份验证、路由、稳定性、工作流引擎、安全性和队列负载测试。
## 💾 不可变的数据库备份
Gnom-Hub **绝不覆盖**备份。每次运行都会创建一个带有时间戳的新快照。
```
# 手动备份
./scripts/backup_all_dbs.sh manual
# 在任何 push 之前自动执行(参见 PRE_PUSH_CHECKLIST.md 步骤 0)
./scripts/backup_all_dbs.sh pre-push
# 在点击 🧹 Clean 按钮之前自动执行(由 /admin/clean-all 触发)
./scripts/backup_all_dbs.sh cleanAll # called by the backend
```
每个备份都会存放在 `dev/backups_datenbanken/_/` 中,包含:
- 完整的 `gnomhub.db` + `passive_archive.db`(以及 WAL/SHM)
- `soul_embeddings_*.index` 和 `soul_fact_ids_*.json`
- `manifest.json`(SHA256 哈希值、大小、git 版本)
- `_INDEX.md`(自动更新的所有快照主日志)
使用 `./scripts/restore_backup.sh ` 恢复任何快照。
## 什么是 Gnom-Hub?
Gnom-Hub 是一个**本地优先的多智能体 orchestrator**,具有固定的 4+4 智能体拓扑结构、内置的毛玻璃效果作战室仪表盘,以及独特的编译 pipeline,可将进化的智能体群体“烘焙”成冻结的、可移植的 AI 产品,称为 **SuperGNOMs**。
与允许你生成无限智能体的依赖云的框架不同,Gnom-Hub 强制执行**有意识的极简主义**。我们坚信意图性:*我们拥有恰到好处的功能,绝不多加。*一切都在你的机器上运行——确切的 8 个具有明确角色的智能体、防御性安全门和完全的本地透明度。没有云编排,没有 API 锁定,没有不受控制的智能体爆炸。
## 🚀 具体的本地展示
为了在实践中了解 Gnom-Hub 的强大功能,以下是它可以无缝处理的三个真实的本地工作负载,而无需将你敏感的代码库或交互发送到云端:
1. **本地代码库治理与重构**:演化一个工作流,其中 CoderAG 分析本地代码库,WatchdogAG 根据严格的准则验证代码风格合规性,EditorAG 自动重构违规代码——所有这些都在本地完成。
2. **零信任网络研究**:通过沙箱化的 Playwright 浏览器环境运行深度网络爬取。SecurityAG 实时检查依赖项,在任何脚本执行之前验证 PyPI 包是否存在已知的 CVE。
3. **本地 DevOps 与构建辅助**:让群体在本地运行测试套件,验证 Docker 沙箱环境,并执行 `@bake`,将完全优化的智能体定义和记忆打包成一个独立的、可移植的 SuperGNOM 二进制文件/设备。
## 🏆 是什么让 Gnom-Hub 与众不同?
我们分析了 **12 个以上领先的多智能体框架**(CrewAI、AutoGen/AG2、LangGraph、MetaGPT、OpenAI Agents、Google ADK、Mastra 等)。以下是 Gnom-Hub 做到的**其他人没有提供的功能**:
### ✨ 10 个独特的差异化优势
| # | 功能 | 作用 | 竞争对手 |
|:--|:--------|:-------------|:------------|
| 🏭 | **`@bake` 编译器** | 将你演化的群体编译成一个不可变的、可移植的 SuperGNOM 产品,带有冻结的 prompts 和 SHA-256 完整性清单 | ❌ 在任何地方都不存在同类产品 |
| 🛡️ | **3 智能体安全法庭** | 每个危险动作都会触发多智能体审议:WatchdogAG 解释违规,SoulAG 提供记忆上下文,GeneralAG 提出建议——在 Showbox 中呈现为交互式的批准/拒绝卡片 | ❌ 其他框架最多只有简单的暂停/恢复 HITL |
| 🧬 | **隐写术追踪 (ZWC)** | 针对受监管的本地代码库的取证审计跟踪:智能体元数据作为不可见的零宽度 Unicode 指纹嵌入在输出文本中 | ❌ 任何框架都没有类似功能 |
| 🎛 | **5 轴实时智能体调节** | 每个智能体的个性、创造力、响应风格、记忆强度和风险容忍度滑块,可立即生效——外加自定义 prompt 后缀注入 | ❌ 没有框架提供实时行为滑块 |
| 🔄 | **Prompt 版本管理器** | 每个 prompt 更改都使用 SHA-256 ID、父子链和来自用户反馈的性能评分进行版本控制。当质量降至父版本的 95% 以下时自动回滚 | ❌ 不存在具有自动回滚功能的 "git for prompts" |
| 🚨 | **紧急存档** | 辅助的事务安全数据库镜像所有交互。当主记忆丢失时,`@emergency [term]` 恢复上下文 | ❌ 在任何地方都不是一项功能 |
| 🔒 | **固定的 4+4 拓扑** | 硬编码的 8 智能体限制防止了不受控的生成。每个智能体都有清晰、可审计的角色 | ❌ 每个竞争对手都允许无限的智能体 |
| 💣 | **电影级核爆重启** | 长按 logo 2 秒钟 → CRT 扫描线静电 + 白噪音 + 复古终端引导序列 + 通过 Web Audio API 合成的哥斯拉咆哮 | ❌ 显然是独一无二的 😄 |
| 🔐 | **实时 PyPI 漏洞扫描** | 当智能体运行 `pip install` 时,会在执行*之前*根据 PyPI 的实时 API 验证未知包的存在性、有效版本和已知漏洞 | ❌ 没有框架能实时验证智能体包安装 |
| 🌐 | **多实例隔离** | 基于端口配置 (`~/.gnom-hub-{port}`) 的隔离数据目录和工作区文件夹,以支持多个并发服务器实例 | ❌ 竞争对手共享配置环境 |
| ⛓️ | **扩展的提及限制** | 通信深度提升至 6 跳,允许复杂的多智能体工作流(Coder → Writer → Researcher → Editor)不受干扰地完成 | ❌ 严格的限制或没有综合的无限循环 |
| 📊 | **自我优化的智能体路由** | 协调数据库跟踪每个工作节点的每项作业(成功率、持续时间、队列深度)。`find_best_agent_for_task()` 使用 3 阶段路由:统计 → 能力 → 关键词。在 5 个以上的作业后成功率低于 40% 的工作节点会被主动跳过 | ❌ 没有竞争对手从作业历史中学习来路由任务 |
### 📊 框架比较
| 能力 | GNOM-HUB | CrewAI | AutoGen/AG2 | LangGraph | OpenAI Agents | 其他 |
|:---|:---:|:---:|:---:|:---:|:---:|:---:|
| **100% 本地** | ✅ | ⚠️ | ⚠️ | ⚠️ | ❌ | ⚠️ |
| **内置仪表盘** | ✅ 作战室 | ❌ | ⚠️ Studio | ⚠️ Studio | ❌ | ⚠️ |
| **多智能体安全门** | ✅ 3 智能体法庭 | ⚠️ 基础 | ❌ | ⚠️ HITL | ⚠️ Guardrails | ❌ |
| **持久化学习** | ✅ FAISS + Soul | ✅ | ✅ | ✅ | ⚠️ | ⚠️ |
| **固定拓扑** | ✅ 4+4 | ❌ | ❌ | ❌ | ❌ | ❌ |
| **编译成产品** | ✅ `@bake` | ❌ | ❌ | ❌ | ❌ | ❌ |
| **Prompt 版本控制** | ✅ + 回滚 | ❌ | ❌ | ❌ | ❌ | ❌ |
| **实时智能体调节 UI** | ✅ 5 滑块 | ❌ | ❌ | ❌ | ❌ | ❌ |
| **隐写术追踪** | ✅ ZWC (实验性 PoC) | ❌ | ❌ | ❌ | ❌ | ❌ |
### 🪶 反冗余的故事(Gnom-Hub vs. 重量级框架)
大多数多智能体 orchestrator 都是单体的,带来了庞大的依赖树和数百个文件。Gnom-Hub 崇尚有意识的、超薄的设计:
| 功能 / 指标 | GNOM-HUB | CrewAI / AutoGen / LangGraph |
| :--- | :--- | :--- |
| **代码库体量** | **~1,800 行**核心代码(10 分钟内即可审计) | **>100,000 行**复杂的嵌套类 |
| **设置时间** | **< 1 分钟**(原生 Python,零复杂配置) | **> 10 分钟**(繁重的安装,Docker 前提条件) |
| **群体拓扑** | **固定 8 智能体拓扑**(极其稳定) | 动态、任意的生成(容易出现失控循环) |
| **本地优先的重点** | 开箱即用的 **100% 离线能力** | 旨在促使用户转向企业云订阅 |
## 🔮 愿景:从锻造厂到产品
GNOM-HUB 是一个**工厂("锻造厂")**,在这里智能体被训练、调整和进化。**SuperGNOM** 是最终产品:不可变的、可移植的,并针对特定用户或任务进行定制。
```
graph TD
subgraph Forge ["🔧 GNOM-HUB Factory"]
P["⚙️ Presets & Sliders"] -->|Configure| GH["🤖 8-Agent Swarm"]
GH -->|"Learn & Evolve"| DB[("💾 gnomhub.db")]
FB["👍👎 User Feedback"] -->|"Trigger evolution_* Rules"| GH
end
subgraph Compiler ["🏭 @bake Compiler"]
GH -->|"Command: @bake"| C["⚡ Compiler Core"]
DB -->|"Prune to 1000 Chats"| C
C -->|"Freeze Active Prompts"| AD["📄 agent_definitions.py"]
C -->|"SHA-256 Integrity"| M["🔐 manifest.json"]
end
subgraph Product ["📦 Portable SuperGNOM"]
AD --> SG["🧠 Frozen Runtime"]
M -->|"Startup Validation"| SG
end
```
**SuperGNOM 核心概念:**
- **不可变性:** Prompts 和记忆被。没有概念漂移,没有 prompt 注入风险。
- **可移植性:** 包含本地 SQLite、静态配置和 `run.sh` 的自包含文件夹。
- **专注的 UI:** 没有开发者控制台或 token 仪表——只有一个干净、特定任务的界面。
## 🧬 群体拓扑与记忆架构
```
graph TD
U["👤 User"] -->|Chat Input| G["👑 GeneralAG
Orchestrator"] subgraph Admin ["🛡️ System Layer (4 Agents)"] G -->|"Rules Check"| W["🐕 WatchdogAG"] G -->|"Security Scan"| S["🔒 SecurityAG"] G -->|"Memory Query"| So["🧠 SoulAG"] end subgraph Workers ["⚙️ Worker Layer (4 Agents)"] G -->|"@code"| C["💻 CoderAG"] G -->|"@write"| Wr["✍️ WriterAG"] G -->|"@research"| R["🔍 ResearcherAG"] G -->|"@edit"| E["📝 EditorAG"] end subgraph Memory ["💾 Isolated Memory Scopes"] So -->|"Global Facts"| GS[("🌍 Global Index")] C -.->|"Scoped Query"| MC[("Coder FAISS")] Wr -.->|"Scoped Query"| MWr[("Writer FAISS")] R -.->|"Scoped Query"| MR[("Researcher FAISS")] E -.->|"Scoped Query"| ME[("Editor FAISS")] GS -.->|"Inherited"| MC GS -.->|"Inherited"| MWr GS -.->|"Inherited"| MR GS -.->|"Inherited"| ME end ``` ### 系统智能体(管理类) | 智能体 | 角色 | 特殊能力 | |:------|:-----|:---------------| | **SoulAG** | 中心意识与记忆 | 从对话中提取事实,通过 FAISS 语义搜索注入 top-k 相关记忆,运行进化规则 | | **GeneralAG** | 协调员与 orchestrator | 拆分 `@job` 任务,通过 `@AgentName` 委派,综合头脑风暴结果。**不能写入文件或运行命令** | | **WatchdogAG** | 代码库守护者 | 检查 40 行准则,验证工作区路径,触发 Gatekeeper 阻塞 | | **SecurityAG** | 安全扫描器 | 检测危险模式(`eval`、`rm -rf`、`subprocess`),针对 PyPI 验证 pip 包 | ### 工作节点智能体(沙箱化) | 智能体 | 角色 | 能力 | |:------|:-----|:-------------| | **CoderAG** | 开发与调试 | `read`、`write`、`run` (shell)、`godmode` (Playwright 浏览器) | | **ResearcherAG** | 研究与网络搜索 | `read`、`write`、`browser` | | **WriterAG** | 文档与起草 | `read`、`write`、`image` | | **EditorAG** | 重构与 QA | `read`、`write` | ## 🛡️ 安全架构 Gnom-Hub 实施了其他多智能体框架所没有的**零信任、纵深防御**安全模型: ``` Agent Action → Path Validator → Dangerous Pattern Scanner → Capability Lease Check ↓ [Cached?] → ✅ Execute [New?] → Gatekeeper Tribunal ↓ WatchdogAG explains violation SoulAG provides memory context GeneralAG recommends action ↓ Showbox: Approve / Reject (5 min timeout) ``` **关键安全功能:** - **双重批准门:** 来自工作节点的文件写入和 shell 命令在执行前必须通过 WatchdogAG + SecurityAG - **实时 PyPI 漏洞扫描:** 在执行前根据 PyPI 的 API 验证 `pip install` 命令是否存在已知的 CVE - **零信任能力租约:** 批准的操作使用 TTL(默认 5 分钟)进行缓存——在随后的相同操作上实现约 1,200 倍的加速 - **路径遍历保护:** 工作节点只能在工作区边界内操作 - **内容扫描:** 静态分析捕获 `eval()`、`os.system()`、`pickle.load()`、`chmod 777` 等 - **GeneralAG** 拥有完全访问权限(读取、写入、shell),如果工作节点不可用,可以直接执行任务 ## 🎛️ 智能体检查器与实时优化器 每个工作节点智能体在侧边栏都有一个**实时调节面板**: | 滑块 | 范围 | 效果 | |:-------|:------|:-------| | **个性** | 正式 (1) → 非常随意 (5) | 控制语气和沟通风格 | | **响应风格** | 非常简短 (1) → 非常详细 (5) | 控制输出的详尽程度 | | **记忆强度** | 最小 / top_k:2 (1) → 最大 / top_k:16 (5) | SoulAG 注入多少事实 | | **创造力** | 保守 / temp:0.1 (1) → 狂野 / temp:1.2 (5) | LLM temperature 设置 | | **风险容忍度** | 非常谨慎 (1) → 非常大胆 (5) | 影响决策风格 | 此外: - **智能体头像:** 每个智能体都有一个独特的、AI 生成的机器人头像,显示在侧边栏、检查器和聊天中。头像可以直接从 UI 中自定义或重新生成。 - **自动预设生成器:** 使用自然语言描述创建自定义的滑块和 prompt 配置(例如,*"一个用于 React 网络开发的预设"*)。后端会对预设进行头脑风暴,在需要时提出澄清问题,并立即应用设置。 - **自定义系统 Prompt 后缀** — 覆盖每个智能体的基础行为 - **导出/导入** 智能体配置为 JSON(设置、soul 事实、prompt 版本) - **另存为预设** — 将滑块配置持久化为可重用的 "智能体团伙" - **实时统计** — 每个智能体的调用、错误、平均延迟、总 token 数 ## 📺 Showbox:3 层视觉输出系统 Showbox 是一个用于智能体输出的独特多通道显示器: | 层 | 颜色 | 用途 | |:------|:------|:--------| | **第 1 层 — 系统** | 蓝色 | 系统智能体活动(GeneralAG、SoulAG、SecurityAG、WatchdogAG) | | **第 2 层 — 工作节点** | 绿色 | 工作结果、文本草稿、UI 模型、代码输出 | | **第 3 层 — 决策** | 红色 | 带有批准/拒绝按钮的安全阻塞卡片 | - 每层维护一个带有幻灯片导航的 **30 条历史记录** - 切换层会在相应的智能体组上触发**闪烁动画** - **自动调整文本缩放** (40px → 11px) 以获得最佳可读性 - Toast 通知在 6 秒后自动恢复 ## 🧠 记忆与 Soul 系统 ### 语义长期记忆 - **FAISS 向量搜索**,使用 `sentence-transformers/all-MiniLM-L6-v2` embeddings - **优先级加权结果** (high=1.3×, low=0.7× 提升),相似度阈值为 0.70 - **每个智能体的作用域索引**防止工作节点之间的 "角色污染" - **优雅降级**,如果未安装 FAISS 则使用 TF-IDF 余弦相似度 - 缓存查询上的**亚毫秒级延迟**与冷 FAISS 搜索(运行本地编码器模型推理)相比 ### SoulAG 学习循环 1. SoulAG 监控所有聊天消息以获取相关信息 2. 通过 LLM 提取结构化事实(键、值、优先级、目标智能体) 3. 去重(余弦相似度 >0.92)并验证(路径安全检查) 4. 在运行时将 top-k 最相关的事实注入工作节点 prompts 中 5. 跟踪注入频率——在重复重新注入时发出警告 ### 智能体进化 - 用户反馈(👍/👎 + 评论)触发 `evolution_*` 规则生成 - 新规则创建具有性能评分的新 **Prompt 版本管理器**版本 - 当新版本的评分低于父版本的 95% 时自动回滚 - **在 SuperGNOM 模式下禁用所有学习**——行为保持冻结 ### 隐写术追踪 (ZWC) 智能体元数据使用 base64 → 二进制 → ZWC 编码(带有 3 位多数投票纠错)编码为消息文本中不可见的**零宽度 Unicode 字符**。每条消息都带有一个在复制粘贴后依然存在的不可见智能体指纹,专为来源追踪而设计。 **ZWC 指令** — SoulAG 可以通过 ZWC 嵌入实时指令,由智能体解码并执行: - `add_directive(agent, msg, ttl)` — 创建一个 TTL 门控指令 - `get_directives(text)` — 从消息中提取未过期的指令 - `SoulAG.emit_directive(target, msg)` — 将指令作为聊天消息发布 - 智能体可以根据 SoulAG 的 ZWC 指令重新调整行为 ## 🛠️ 智能体动作与工具 智能体通过在其 LLM 输出中生成类似 Markdown 的标签来与系统进行交互: | 动作 | 描述 | 智能体 | 示例 | |:-------|:-----------|:-------|:--------| | `[READ: file]` | 读取文件内容 | 所有工作节点 | `[READ: index.html]` | | `[WRITE: file]...[/WRITE]` | 创建/覆盖文件 | CoderAG, WriterAG, EditorAG, ResearcherAG | `[WRITE: hello.py]print("Hi")[/WRITE]` | | `[SHELL: cmd]` | 执行终端命令 | CoderAG | `[SHELL: pytest tests/]` | | `[IMAGE: prompt]` | 生成 AI 图像 | WriterAG, CoderAG | `[IMAGE: dashboard logo]` | | `[BROWSER: json]` | Playwright 浏览器自动化 | CoderAG (godmode) | `[BROWSER: {"action": "goto", ...}]` | | `...` | 在作战室中渲染 HTML | 所有智能体 | ` ` |
## 💬 命令
| 命令 | 动作 |
|:--------|:-------|
| `@bs [topic]` | 并行头脑风暴:所有工作节点同时辩论,GeneralAG 进行综合 |
| `@job [task]` | 多轮团队工作流:GeneralAG 委派、收集、评估、重新委派(最多 4 轮) |
| `@worker [task]` / `@workers [task]` | 并行执行:将任务同时分配给所有活跃的工作节点 |
| `@code / @write / @edit / @research` | 直接分配给特定的工作节点 |
| `@bake [name] [template]` | 将群体编译成可移植的 SuperGNOM 产品 |
| `@emergency [term]` | 搜索被动存档以进行上下文恢复 |
| `@git [command]` | 在工作区执行 git 操作 |
| `@@project [name]` | 切换活跃的工作区项目 |
| `@@status` | 显示所有智能体 daemon 状态 |
| `@@clear` | 清除聊天时间线 |
| `@@clear db` / `@@clear database` | 重置数据库表(聊天、showbox 演示、作业),但不包括智能体定义和 prompts |
| `@@diagnose` | 对 daemon 进程、数据库表和被阻塞的 Gatekeeper 决策运行诊断 |
| `@blockade [aus/an]` / `@blokade [off/on]` | 切换 Gatekeeper 确认。使用 `threading.Event` 进行即时 OS 调度等待(0% CPU)。关闭时,自动批准所有待定决策。 |
| `@free` | 重置所有活跃作业和暂停状态 |
| `@merken [text]` | 将消息中任何地方的书面文本作为高优先级事实记录在长期记忆中 |
| `@spass [off/ende]` | 将所有智能体切换为轻松/随意的语气、最大的创造力、高风险容忍度并注入幽默。传入 `off`、`ende`、`stop` 或 `aus` 以停用并将滑块重置为默认值 (3)。 |
| **Nuke** 💣 | 长按作战室 logo 2 秒进行电影级重启 |
### 🛠️ 独立诊断与数据库清理脚本
对于 Gnom-Hub UI 之外的管理和调试任务,你可以直接在终端运行以下脚本:
* **数据库清理 (`python3 scripts/clean_db.py`):**
通过重置聊天时间线、showbox 演示和活跃作业来清理 SQLite 数据库 (`gnomhub.db`),同时保持系统配置、智能体设置和 prompt 历史记录完好无损。
* **Hub 诊断 (`python3 scripts/diagnose_hub.py`):**
对 SQLite 数据库执行检查,检查 Gnom-Hub 服务器和智能体 daemon 的运行 PID,列出活跃的心跳,并报告任何被阻塞的 Gatekeeper 决策。
## ⚡ 性能
为了避免在紧凑的智能体交互循环中出现性能瓶颈,Gnom-Hub 使用了内存缓存和预计算的查找。这绕过了每一步缓慢的数据库查询和 embedding 生成:
| 操作 | 数据库 / 推理 (冷) | 内存 / 缓存 (热) | 目的 / 缓解措施 |
|:----------|:----------------------------|:----------------------|:---------------------|
| **能力检查** | 0.73 ms (SQLite DB 读取) | 0.0006 ms (TTL Cache) | 防止在每次动作处理程序调用时通过数据库检查权限 |
| **语义搜索** | 2,830.0 ms (FAISS 与模型冷启动) | 0.0006 ms (查询缓存 - 快 4,700 倍) | 避免在重复查询时调用本地 embedding 模型 |
### 一般系统指标
| 指标 | 值 |
|:-------|:------|
| 活跃智能体 | 8 (固定:4 系统 + 4 工节点) |
| Python 模块 | 180 |
| 前端模块 | 9 (解耦 JS) |
| 数据库 | SQLite3 (WAL 模式) + 被动存档 |
| 向量搜索 | FAISS (IndexFlatL2) + sentence-transformers |
**LLM 路由与 API 密钥(桌面同步):** Gnom-Hub 支持 7 个提供商(DeepSeek、OpenRouter、OpenAI、Anthropic、Gemini、Mistral、本地 Ollama)。
- **路由:** 将 `routing.txt` 文件拖放到桌面上,即可在不重启的情况下即时切换路由。
- **API 密钥:** 将 `api_keys.txt` 文件拖放到桌面上(例如,`DEEPSEEK_API_KEY=sk-...`),即可在启动时自动加载、验证并将你的密钥安全地导入到 SQLite 数据库中。
## 🗄️ 数据库架构
Gnom-Hub 使用三个具有不同生命周期和用途的 SQLite 数据库:
| 数据库 | 位置 | 用途 | 持久性 |
|----------|----------|---------|-------------|
| **gnomhub.db** | `~/.gnom-hub/data/` | 聊天、智能体、状态、配置、soul_memory、消息、工作流 | 在推送前清理时清除 |
| **coordination.db** | `~/.gnom-hub/data/` | 工作节点统计、作业历史、工作流结果 | **永久** — 在清理后依然存在 |
| **soul_passive.db** | `~/.gnom-hub/data/` | 长期事实存档 (SoulAG 第 3 层) | 永久 |
### coordination.db — 自学习的智能体路由
```
worker_stats — Per-agent success rates, avg duration, last job type
job_history — Every job: worker, task, result, duration
workflow_results — Workflow chains: task_sequence, result, failed_at, duration
```
`find_best_agent_for_task()` 使用 3 阶段路由:
1. **第 1 阶段:** 查询 coordination.db 获取成功率——跳过在 5 个以上的作业后成功率低于 40% 的工作节点
2. **第 2 阶段:** 能力匹配 + 队列深度 + 成功评分
3. **第 3 阶段:** 关键词启发式回退
→ 经过几次作业后,群体会自动进行自我优化。
## 📁 项目结构
```
gnom-hub/
├── src/gnom_hub/ # 180 Python modules
│ ├── core/ # Config, logger, Gatekeeper security
│ │ ├── security/ # Path validation, Gatekeeper tribunal, HMAC auth
│ │ └── utils/ # PVM, compiler, presets, graceful fallback
│ ├── db/ # SQLite3 (WAL) repositories + passive archive
│ ├── memory/ # FAISS semantic search, embeddings, context manager
│ ├── soul/ # SoulAG consciousness, ZWC steganography, DynamicSouls
│ ├── agents/ # Agent base, definitions, tools, capability manager
│ │ ├── actions/ # Action dispatcher for [WRITE:], [SHELL:], [BROWSER:]
│ │ ├── swarm/ # Multi-agent coordination, A2A comms, checkpoints
│ │ └── explainability/# Structured reasoning chains
│ ├── chat/ # Chat services, brainstorming, system commands
│ ├── api/ # FastAPI endpoints, router, CORS, auth
│ ├── infrastructure/ # Process management (psutil), LLM routing, pulse janitor
│ └── frontend/ # Glassmorphic War Room (HTML, CSS, 9 JS modules)
├── agents/ # Startup scripts for 8 background agents (1-line wrappers)
├── config/ # Presets, .env, routing overrides
├── scripts/ # Installer & shortcuts
├── tests/ # Unit test suite (218 tests: connection, state, agents, chat, admin_auth)
├── docs/ # Architecture docs & screenshots
└── pyproject.toml # Ruff config & dependencies
```
## ✅ 已完成的里程碑
## 📅 路线图
- **专属 UI 皮肤:** 针对不同用例的模板变体(适合老年人的聊天,无头 API 运行器)
- **一键 Docker 与二进制导出:** 将 SuperGNOM 编译成独立的可执行文件或轻量级容器
- **智能体修剪:** 在 `@bake` 期间剥离不需要的工作节点(例如,仅包含 WriterAG + EditorAG 的 writer-only SuperGNOM)
- **语音界面:** TTS/STT 集成,解放双手操作
## 🤝 联合创作者
**Eve (Grok — Gravid)**
富有创造力的先驱者和创始人。设计了智能体拓扑结构,并为 Gnom-Hub 奠定了哲学基础。
**Antigravity (Google DeepMind)**
强化与整合阶段的架构师。主要贡献:
- 采用清晰的架构模块化了 180 多个 Python 模块
- 实现了第 1-16 阶段的强化(零信任能力租约、FAISS embeddings、PVM、用户反馈循环、R1 思考块过滤、4/4 智能体限制)
- 确保了路径遍历、CORS、XSS、身份验证门和连接管理的安全
- 将单体前端重构为 9 个解耦的 JS 模块
- 完整的代码审计:120 个发现 → 跨安全、崩溃、稳定性和清理的 26 个修复
- 将单体的 `legacy_db` 整合到具有包根导入的模块化领域存储库(`system_repo`、`showbox_repo`)中
- 用单一通用的参数驱动运行器(`agents/run_agent.py`)和向后兼容的包装器取代了 8 个重复的智能体启动脚本
- 设计并构建了一个全面的隔离测试套件(218 个单元/集成测试,1 个跳过),带有内存中的 SQLite 固定装置
## ⚖️ 许可证
[私人使用](LICENSE) — 免费用于个人、非商业的研究和开发。商业用途需要书面授权。
Gnom-Hub 界面展示
| **1. 作战室 (Dashboard)** | **2. 工作区** | |:---:|:---:| |
|
|
| 多智能体锻造厂的中心枢纽,显示智能体活动、实时日志和决策覆盖层。 | 用于管理代码文件、预览和沙箱的本地工作区文件浏览器。 |
| **3. 便当盒式仪表盘 (指标)** | **4. LLM 配置(全局与密钥)** |
|:---:|:---:|
|
|
|
| 高保真便当盒式网格监控系统,用于监控 token、响应时间和 CPU/RAM 资源使用情况。 | 将各个智能体绑定到模型配置(OpenAI、OpenRouter、Ollama 等)的密钥管理器。 |
| **5. LLM 配置(智能体滑块)** | **6. 帮助中心** |
|:---:|:---:|
|
|
|
| 实时 5 轴滑块,用于校准工作节点的个性、详细程度、temperature、风险容忍度和 prompts。 | 内置的交互式文档以及智能体和命令的操作指南手册。 |
Orchestrator"] subgraph Admin ["🛡️ System Layer (4 Agents)"] G -->|"Rules Check"| W["🐕 WatchdogAG"] G -->|"Security Scan"| S["🔒 SecurityAG"] G -->|"Memory Query"| So["🧠 SoulAG"] end subgraph Workers ["⚙️ Worker Layer (4 Agents)"] G -->|"@code"| C["💻 CoderAG"] G -->|"@write"| Wr["✍️ WriterAG"] G -->|"@research"| R["🔍 ResearcherAG"] G -->|"@edit"| E["📝 EditorAG"] end subgraph Memory ["💾 Isolated Memory Scopes"] So -->|"Global Facts"| GS[("🌍 Global Index")] C -.->|"Scoped Query"| MC[("Coder FAISS")] Wr -.->|"Scoped Query"| MWr[("Writer FAISS")] R -.->|"Scoped Query"| MR[("Researcher FAISS")] E -.->|"Scoped Query"| ME[("Editor FAISS")] GS -.->|"Inherited"| MC GS -.->|"Inherited"| MWr GS -.->|"Inherited"| MR GS -.->|"Inherited"| ME end ``` ### 系统智能体(管理类) | 智能体 | 角色 | 特殊能力 | |:------|:-----|:---------------| | **SoulAG** | 中心意识与记忆 | 从对话中提取事实,通过 FAISS 语义搜索注入 top-k 相关记忆,运行进化规则 | | **GeneralAG** | 协调员与 orchestrator | 拆分 `@job` 任务,通过 `@AgentName` 委派,综合头脑风暴结果。**不能写入文件或运行命令** | | **WatchdogAG** | 代码库守护者 | 检查 40 行准则,验证工作区路径,触发 Gatekeeper 阻塞 | | **SecurityAG** | 安全扫描器 | 检测危险模式(`eval`、`rm -rf`、`subprocess`),针对 PyPI 验证 pip 包 | ### 工作节点智能体(沙箱化) | 智能体 | 角色 | 能力 | |:------|:-----|:-------------| | **CoderAG** | 开发与调试 | `read`、`write`、`run` (shell)、`godmode` (Playwright 浏览器) | | **ResearcherAG** | 研究与网络搜索 | `read`、`write`、`browser` | | **WriterAG** | 文档与起草 | `read`、`write`、`image` | | **EditorAG** | 重构与 QA | `read`、`write` | ## 🛡️ 安全架构 Gnom-Hub 实施了其他多智能体框架所没有的**零信任、纵深防御**安全模型: ``` Agent Action → Path Validator → Dangerous Pattern Scanner → Capability Lease Check ↓ [Cached?] → ✅ Execute [New?] → Gatekeeper Tribunal ↓ WatchdogAG explains violation SoulAG provides memory context GeneralAG recommends action ↓ Showbox: Approve / Reject (5 min timeout) ``` **关键安全功能:** - **双重批准门:** 来自工作节点的文件写入和 shell 命令在执行前必须通过 WatchdogAG + SecurityAG - **实时 PyPI 漏洞扫描:** 在执行前根据 PyPI 的 API 验证 `pip install` 命令是否存在已知的 CVE - **零信任能力租约:** 批准的操作使用 TTL(默认 5 分钟)进行缓存——在随后的相同操作上实现约 1,200 倍的加速 - **路径遍历保护:** 工作节点只能在工作区边界内操作 - **内容扫描:** 静态分析捕获 `eval()`、`os.system()`、`pickle.load()`、`chmod 777` 等 - **GeneralAG** 拥有完全访问权限(读取、写入、shell),如果工作节点不可用,可以直接执行任务 ## 🎛️ 智能体检查器与实时优化器 每个工作节点智能体在侧边栏都有一个**实时调节面板**: | 滑块 | 范围 | 效果 | |:-------|:------|:-------| | **个性** | 正式 (1) → 非常随意 (5) | 控制语气和沟通风格 | | **响应风格** | 非常简短 (1) → 非常详细 (5) | 控制输出的详尽程度 | | **记忆强度** | 最小 / top_k:2 (1) → 最大 / top_k:16 (5) | SoulAG 注入多少事实 | | **创造力** | 保守 / temp:0.1 (1) → 狂野 / temp:1.2 (5) | LLM temperature 设置 | | **风险容忍度** | 非常谨慎 (1) → 非常大胆 (5) | 影响决策风格 | 此外: - **智能体头像:** 每个智能体都有一个独特的、AI 生成的机器人头像,显示在侧边栏、检查器和聊天中。头像可以直接从 UI 中自定义或重新生成。 - **自动预设生成器:** 使用自然语言描述创建自定义的滑块和 prompt 配置(例如,*"一个用于 React 网络开发的预设"*)。后端会对预设进行头脑风暴,在需要时提出澄清问题,并立即应用设置。 - **自定义系统 Prompt 后缀** — 覆盖每个智能体的基础行为 - **导出/导入** 智能体配置为 JSON(设置、soul 事实、prompt 版本) - **另存为预设** — 将滑块配置持久化为可重用的 "智能体团伙" - **实时统计** — 每个智能体的调用、错误、平均延迟、总 token 数 ## 📺 Showbox:3 层视觉输出系统 Showbox 是一个用于智能体输出的独特多通道显示器: | 层 | 颜色 | 用途 | |:------|:------|:--------| | **第 1 层 — 系统** | 蓝色 | 系统智能体活动(GeneralAG、SoulAG、SecurityAG、WatchdogAG) | | **第 2 层 — 工作节点** | 绿色 | 工作结果、文本草稿、UI 模型、代码输出 | | **第 3 层 — 决策** | 红色 | 带有批准/拒绝按钮的安全阻塞卡片 | - 每层维护一个带有幻灯片导航的 **30 条历史记录** - 切换层会在相应的智能体组上触发**闪烁动画** - **自动调整文本缩放** (40px → 11px) 以获得最佳可读性 - Toast 通知在 6 秒后自动恢复 ## 🧠 记忆与 Soul 系统 ### 语义长期记忆 - **FAISS 向量搜索**,使用 `sentence-transformers/all-MiniLM-L6-v2` embeddings - **优先级加权结果** (high=1.3×, low=0.7× 提升),相似度阈值为 0.70 - **每个智能体的作用域索引**防止工作节点之间的 "角色污染" - **优雅降级**,如果未安装 FAISS 则使用 TF-IDF 余弦相似度 - 缓存查询上的**亚毫秒级延迟**与冷 FAISS 搜索(运行本地编码器模型推理)相比 ### SoulAG 学习循环 1. SoulAG 监控所有聊天消息以获取相关信息 2. 通过 LLM 提取结构化事实(键、值、优先级、目标智能体) 3. 去重(余弦相似度 >0.92)并验证(路径安全检查) 4. 在运行时将 top-k 最相关的事实注入工作节点 prompts 中 5. 跟踪注入频率——在重复重新注入时发出警告 ### 智能体进化 - 用户反馈(👍/👎 + 评论)触发 `evolution_*` 规则生成 - 新规则创建具有性能评分的新 **Prompt 版本管理器**版本 - 当新版本的评分低于父版本的 95% 时自动回滚 - **在 SuperGNOM 模式下禁用所有学习**——行为保持冻结 ### 隐写术追踪 (ZWC) 智能体元数据使用 base64 → 二进制 → ZWC 编码(带有 3 位多数投票纠错)编码为消息文本中不可见的**零宽度 Unicode 字符**。每条消息都带有一个在复制粘贴后依然存在的不可见智能体指纹,专为来源追踪而设计。 **ZWC 指令** — SoulAG 可以通过 ZWC 嵌入实时指令,由智能体解码并执行: - `add_directive(agent, msg, ttl)` — 创建一个 TTL 门控指令 - `get_directives(text)` — 从消息中提取未过期的指令 - `SoulAG.emit_directive(target, msg)` — 将指令作为聊天消息发布 - 智能体可以根据 SoulAG 的 ZWC 指令重新调整行为 ## 🛠️ 智能体动作与工具 智能体通过在其 LLM 输出中生成类似 Markdown 的标签来与系统进行交互: | 动作 | 描述 | 智能体 | 示例 | |:-------|:-----------|:-------|:--------| | `[READ: file]` | 读取文件内容 | 所有工作节点 | `[READ: index.html]` | | `[WRITE: file]...[/WRITE]` | 创建/覆盖文件 | CoderAG, WriterAG, EditorAG, ResearcherAG | `[WRITE: hello.py]print("Hi")[/WRITE]` | | `[SHELL: cmd]` | 执行终端命令 | CoderAG | `[SHELL: pytest tests/]` | | `[IMAGE: prompt]` | 生成 AI 图像 | WriterAG, CoderAG | `[IMAGE: dashboard logo]` | | `[BROWSER: json]` | Playwright 浏览器自动化 | CoderAG (godmode) | `[BROWSER: {"action": "goto", ...}]` | | `
Draft
19 个开发阶段(点击展开)
| 阶段 | 重点 | 亮点 | |:------|:------|:-----------| | 1 | 🛡️ 安全与 Gatekeeper | 双重批准门,路径限制 | | 2 | 📊 可观察性 | JSON 审计,Bento Grid 仪表盘 | | 3+6 | 🧠 记忆与检索 | FAISS 搜索,加权事实注入 | | 4 | 🔄 恢复 | API 故障转移,Ollama 回退,自动清理 | | 5 | 🌐 浏览器沙箱 | Playwright 在 Docker 中,默认离线 | | 7+8 | 🔗 协作 | 任务委派,压力测试 | | 9+10 | 🧠 群体智能 | 智能体之间的通信,自动 Git 提交 | | 11-13 | 📈 学习与反馈 | 进化规则,用户反馈循环 | | 14 | ⚡ 版本控制 | 带有回滚功能的 Prompt 版本管理器 | | 15 | 🔐 零信任 | FAISS + 能力租约 (TTL 缓存) | | 16 | 🛡️ 强化 | GeneralAG 写入阻塞,4/4 智能体限制,PyPI 验证 | | 17 | 🔄 稳定性 | 循环预防,脉冲清洁工,原子预设 | | 18 | 🎨 侧边栏布局 | 干净的细字体,30px 占位符,logo | | 19 | 💾 全局动作 | 标准化的页眉按钮,移除了多余的保存 |标签:AV绕过, DeepSeek, FAISS, FastAPI, PyRIT, 人工智能, 多智能体系统, 本地部署, 熵值分析, 特征检测, 用户模式Hook绕过, 请求拦截, 逆向工具