forgeai-dev/ForgeAI
GitHub: forgeai-dev/ForgeAI
Stars: 9 | Forks: 0
# 🔥 ForgeAI
### 让您完全掌控的自托管 AI 平台
**运行您自己的 AI 助手。连接任意消息应用。使用任意 LLM。拥有您数据的每一个字节。**
[](https://opensource.org/licenses/MIT)
[](https://nodejs.org)
[](https://www.typescriptlang.org)
[](https://github.com/forgeai-dev/ForgeAI/actions)
[](./CONTRIBUTING.md)
| 8 个渠道 | 10 个 LLM 提供商 | 19 个工具 | 19 个仪表盘页面 | 150+ API 端点 | 9 个安全模块 |
|:---:|:---:|:---:|:---:|:---:|:---:|
[快速开始](#-quick-start) · [功能特性](#-features-at-a-glance) · [仪表盘](#-dashboard-19-pages) · [架构](#-architecture) · [API 参考](#-api-reference) · [贡献指南](./CONTRIBUTING.md)
## 什么是 ForgeAI?
ForgeAI 是一个**生产就绪、完全自托管的 AI 助手平台**,使用 TypeScript 从零构建。它通过现代化的 19 页仪表盘管理,将您的 AI 连接到 WhatsApp、Telegram、Discord、Slack、Microsoft Teams、Google Chat、WebChat 以及通过 Node Protocol 连接的 **IoT/嵌入式设备**。
与基于云的 AI 服务不同,ForgeAI **完全在您的机器上运行**。您的对话、API 密钥和个人数据永远不会离开您的网络。每个密钥都使用 AES-256-GCM 加密,每个操作都记录在不可变的审计日志中,每个请求在到达 Agent 之前都要经过 9 个安全模块。
```
Your Messages ──→ 9 Security Layers ──→ Agent (any LLM) ──→ 19 Tools ──→ Response
↑ ↓
WhatsApp Browse web
Telegram Run code
Discord Read files
Slack Screenshots
Teams Shell commands
Google Chat Schedule tasks
WebChat Smart home/Spotify
Node Protocol IoT devices
```
## 为什么选择 ForgeAI?
|
### 🔒 安全优先架构
默认启用 9 个安全模块。AES-256-GCM 加密 Vault、RBAC、速率限制、Prompt 注入检测、输入净化、2FA、用于外部访问的 **Email OTP** 以及不可变审计日志。**首次运行设置向导** 引导您完成 SMTP、2FA 和管理员 PIN 配置。智能 IP 检测自动为外部(VPS/互联网)访问应用更严格的身份验证。您的 API 密钥和令牌**绝不**以明文存储。
### 🌐 真正的多渠道
一个 AI,所有平台。WhatsApp、Telegram、Discord、Slack、Microsoft Teams、Google Chat、WebChat 以及通过 Node Protocol 连接的 IoT 设备。每个渠道都能获得实时进度更新、输入指示器和自动消息分块。
### 🤖 自主 Agent
Agent 循环运行**无迭代限制** —— Agent 会一直工作直到任务完成(仅以卡顿循环检测作为安全保障)。它可以浏览网页(带有隐身反检测功能)、执行代码、管理文件、截屏、调度任务、控制智能家居设备、**创建由专家 Agent 组成的 Forge Teams**,并与其他 Agent 通信 —— 所有这些都无需人工干预。**自我管理**:Agent 自主诊断、修复并**安装缺失的依赖项**(语言、库、工具),拥有完整的 root 访问权限。**自适应 Prompt 优化器**:从过去的任务结果中学习,以改善未来的性能。
|
### 🔄 支持 10 个 LLM 提供商及自动故障转移
Anthropic、OpenAI、Google、Moonshot/Kimi、DeepSeek、xAI/Grok、Groq、Mistral、**本地 LLMs**(Ollama)和 **OpenAI-Compatible**(LM Studio/llama.cpp/vLLM)。每个提供商都有熔断器、指数退避、自动回退链。云端 ↔ 本地故障转移 —— 如果所有云提供商都宕机,您的本地模型会接管。
### 📊 全面的可观测性
19 页仪表盘,支持实时 WebSocket 更新(包括 RAG 管理、语音等)。查看 Agent 在想什么、它正在调用哪些工具、成本多少,以及每个提供商的剩余余额。内置 OpenTelemetry 追踪和指标。
### 🧩 一切皆可扩展
用于自定义行为的 Plugin SDK。用于外部工具服务器的 MCP Client。用于多步骤自动化的工作流引擎。用于文档搜索的 RAG 引擎。提供 140+ 端点的 REST API,实现完全的编程控制。
|
## ⚡ 快速开始
```
git clone https://github.com/forgeai-dev/ForgeAI.git
cd ForgeAI
docker compose up -d
```
打开 **http://localhost:18800** → **设置向导** 将引导您完成 SMTP、2FA 和管理员 PIN 配置 → 在 Settings 中添加 LLM API 密钥 → 开始聊天。
无需 `.env` 文件。安全密钥在首次运行时自动生成。设置向导仅在第一次访问时出现一次。
不使用 Docker (Node.js)
```
pnpm install && pnpm -r build
node packages/cli/dist/index.js onboard # Interactive setup wizard
node packages/cli/dist/index.js start --migrate
```
前置条件:Node.js ≥ 22, pnpm ≥ 9, MySQL 8.x
Gateway 运行在 `http://127.0.0.1:18800` —— 包含 Dashboard。
## 🎯 功能概览
### 消息渠道 (8)
| 渠道 | 库 | 亮点 |
|:--------|:--------|:-----------|
| **WhatsApp** | Baileys | QR 配对、白名单、多消息分块、输入指示器 |
| **Telegram** | grammY | 实时进度消息、Bot 命令、群组、DM 配对、内联回复 |
| **Discord** | discord.js | 斜杠命令、多服务器、线程支持、原生操作(角色、置顶) |
| **Slack** | Bolt SDK | Socket Mode、app_mention、频道路由、DM 配对 |
| **Microsoft Teams** | Bot Framework | 基于 Webhook、会话引用、自适应卡片 |
| **Google Chat** | Chat API | Webhook + 异步 REST、服务账号 JWT、空间路由 |
| **WebChat** | 内置 | 基于浏览器、实时执行步骤、会话持久化 |
| **Node Protocol** | Go agent (~5MB) | WebSocket、IoT/嵌入式(Raspberry Pi, Jetson, BeagleBone, NanoKVM)、节点间中继 |
### LLM 提供商 (10) 及自动故障转移
| 提供商 | 模型 | 余额 API | 订阅计划 |
|:---------|:-------|:------------|:-------------------|
| **OpenAI** | GPT-5.2, GPT-5, GPT-4.1, o3-pro, o4-mini | — | — |
| **Anthropic** | Claude Opus 4.6, Sonnet 4.6, Haiku 4.5 | — | ✅ Pro / Max / CLI |
| **Google** | Gemini 2.5 Pro, 2.5 Flash, 2.0 Flash | — | — |
| **Moonshot** | Kimi K2.5, moonshot-v1-auto/128k | ✅ 实时 | — |
| **DeepSeek** | DeepSeek Chat, Coder, Reasoner | ✅ 实时 | — |
| **xAI** | Grok 4, Grok 3, Grok 2 | — | — |
| **Groq** | Llama 3.3 70B, Mixtral 8x7B, Gemma2 | — | — |
| **Mistral** | Mistral Large, Small, Codestral, Pixtral | — | — |
| **Local (Ollama)** | Llama 3.1, Mistral, CodeLlama, Phi-3, Qwen, DeepSeek-R1 | — | — |
| **OpenAI-Compatible** | 任何 OpenAI 兼容 API (LM Studio, llama.cpp, vLLM 等) | — | — |
所有模型列表均可通过仪表盘 Settings 页面或 `POST /api/providers/:name/models` API 端点**针对每个提供商进行配置**。自定义模型加密存储在 Vault 中。
每个提供商都有**熔断器**保护(5 次失败阈值,2 分钟冷却)、**指数退避**重试以及链中下一个提供商的**自动故障转移**。
### 内置工具 (19)
| 工具 | 功能 |
|:-----|:-------------|
| `web_browse` | HTTP 获取 + 解析 (Cheerio)。GET/POST/PUT/DELETE、自定义标头、提取:文本/链接/图片/表格/元数据/json/**markdown**(通过 Turndown 将 HTML 转换为干净的 Markdown)。**自适应元素追踪** —— 当选择器失效时,使用指纹相似度匹配重新定位元素。 |
| `browser` | 完整 Puppeteer Chrome:导航、截屏、点击、输入、滚动、悬停、选择、后退/前进/刷新、等待、Cookies、提取表格、执行 JS、PDF、多标签页、**多配置文件**(持久登录)、**文件上传**、**DOM 快照**。**隐身反检测**(指纹欺骗、Canvas 噪声、WebGL 掩码、WebRTC 保护、CDP 隐藏)。**原生代理轮换**。**自适应元素追踪** —— 当选择器失效时,使用指纹相似度匹配重新定位元素。 |
| `web_search` | 搜索 Google/DuckDuckGo —— 返回结构化结果(标题、URL、摘要)。引擎间自动回退。 |
| `file_manager` | 完整的系统文件管理器:读取、写入、列出、删除、复制、移动、搜索、权限、磁盘信息。支持绝对路径以进行完整系统访问。 |
| `shell_exec` | 执行系统命令,支持超时、输出捕获和错误处理。 |
| `code_run` | 在隔离的 `node:vm` 沙箱中执行 JavaScript。无 fs/net/process。 |
| `cron_scheduler` | 使用 cron 表达式调度周期性任务。通过 API 暂停/恢复/取消。 |
| `knowledge_base` | 带 TF-IDF 向量搜索的文档存储。完整的 CRUD + 语义查询。 |
| `desktop` | 跨平台桌面自动化:鼠标、键盘、截屏、OCR、窗口管理、剪贴板。macOS 通过 AppleScript,Linux 支持 X11+Wayland。 |
| `sessions_list` | 发现所有活动的 Agent 会话及其元数据。 |
| `sessions_history` | 获取任何会话的完整记录(Agent 间通信)。 |
| `sessions_send` | 在 Agent 之间发送消息,用于协作式多 Agent 工作流。 |
| `image_generate` | 通过 DALL-E 3、Leonardo AI 或 Stable Diffusion 生成图片。保存到磁盘。 |
| `smart_home` | 通过自然语言控制智能家居设备和例程。Home Assistant 集成。 |
| `spotify` | Spotify 播放控制:播放/暂停/跳过、搜索、播放列表、队列管理、设备切换。 |
| `plan_create` | 创建带有步骤、状态和自动推进的结构化执行计划。将复杂目标分解为可管理的步骤。 |
| `plan_update` | 更新计划步骤状态。完成时自动推进到下一步。 |
| `agent_delegate` | 将任务委托给并行运行的临时专家子 Agent。每个子 Agent 都有完整的工具访问权限并独立工作。 |
| `forge_team` | **Forge Teams** —— 创建由专家 Agent 组成的协调团队,带有依赖关系图。独立任务并行运行;依赖任务等待上游结果并将其作为上下文接收。每个团队最多支持 5 个 Worker。 |
### 安全模块 (9)
```
Request ──→ [Rate Limiter] ──→ [IP Filter] ──→ [JWT Auth] ──→ [RBAC] ──→ [Input Sanitizer] ──→ [Prompt Guard] ──→ Agent
│ ↓
[Smart IP Detection] [Audit Log] (every action)
Local? → PIN + 2FA [Vault] (encrypted secrets)
External? → PIN + 2FA + Email OTP (4-factor)
```
| 模块 | 实现 |
|:-------|:---------------|
| **Credential Vault** | AES-256-GCM 加密、PBKDF2 密钥派生(310k 次迭代)、文件持久化 |
| **RBAC** | 基于角色的,针对每个资源、每个工具、每个端点 |
| **Rate Limiter** | 12 条规则:每用户、每渠道、每工具、每 IP。滑动窗口 + 突发 |
| **Prompt Injection Guard** | 6 种模式:直接注入、角色劫持、编码、分隔符、上下文操纵、多语言 |
| **Input Sanitizer** | 阻止 XSS、SQL 注入、命令注入、路径遍历 |
| **2FA (TOTP)** | 通过 Google Authenticator、Authy 等生成基于时间的一次性密码 |
| **Email OTP** | 向管理员邮箱发送 6 位验证码用于外部访问(5 分钟有效期、速率限制) |
| **Audit Log** | 不可变、4 个风险级别、可通过 API + Dashboard 查询 |
| **Setup Wizard** | 首次运行引导设置:SMTP、2FA、管理员 PIN —— 无需配置文件 |
#### 智能本地与外部检测
ForgeAI 自动检测请求是来自 **localhost** (`127.0.0.1` / `::1`) 还是 **外部 IP**(VPS、互联网)。基于此:
| 访问类型 | 身验证流程 |
|:------------|-------------------|
| **本地** (localhost) | Access Token → PIN → TOTP |
| **外部** (VPS/互联网) | Access Token → PIN → TOTP → **Email OTP** (四重验证) |
这意味着在 **VPS** 上运行 ForgeAI 与在本地运行一样安全 —— 外部请求自动需要额外的邮件验证步骤,无需额外配置。
## 📊 仪表盘 (19 页)
仪表盘是一个功能齐全的 React 19 SPA,由 Gateway 直接提供服务。无需单独部署。
📸 仪表盘截图(点击展开)
| 聊天 | 工具 |
|:----:|:-----:|
|  |  |
| 用量与余额 | 渠道 |
|:----:|:-----:|
|  |  |
| Agents | 设置 |
|:----:|:-----:|
|  |  |
| 审计日志 | 工作区 |
|:----:|:-----:|
|  |  |
| 插件 | 记忆 |
|:----:|:-----:|
|  |  |
| API 密钥 | Webhooks |
|:----:|:-----:|
|  |  |
| Gmail | 日历 |
|:----:|:-----:|
|  |  |
| 页面 | 功能 |
|:-----|:------------|
| **Overview** | 系统健康状况、运行时间、活动 Agent 信息(模型、思考级别、温度)、安全模块状态(可点击切换)、警报、OpenTelemetry spans/指标 |
| **Chat** | 交互式聊天,带会话历史侧边栏、实时执行步骤查看器(工具调用 + 可展开的结果详情)、跨重启会话持久化、多 Agent 选择器 |
| **Tools** | 内置工具浏览器,带参数 + MCP Servers 选项卡(添加/连接/重新连接,列出已连接服务器的工具和资源) |
| **Usage** | 按提供商和模型统计的 Token 消耗、估算成本跟踪、**实时提供商余额**(Moonshot、DeepSeek)、带延迟的使用历史表 |
| **Plugins** | 插件商店,带分类、启用/禁用切换、模板生成器(Plugin SDK 脚手架) |
| **Channels** | 每个渠道的状态、通过加密 Vault 进行 Token 配置、DM Pairing 面板(生成/撤销 `FORGE-XXXX` 邀请码) |
| **Agents** | 多 Agent CRUD、每个 Agent 的模型/提供商/角色/工具配置、路由绑定 |
| **Workspace** | 5 个 Prompt 文件的实时编辑器:AGENTS.md, SOUL.md, IDENTITY.md, USER.md, AUTOPILOT.md |
| **Gmail** | 收件箱查看器(分页)、撰写(收件人/主题/正文)、搜索、标记已读/未读、会话视图 |
| **Calendar** | Google Calendar 集成:列出/创建/编辑/删除事件、快速添加(自然语言)、忙碌查询 |
| **Memory** | 跨会话记忆浏览器、语义搜索(TF-IDF)、重要性评分、合并重复项 |
| **API Keys** | 创建具有 12 个细粒度范围的密钥、设置有效期(天)、查看使用次数、撤销/删除 |
| **Webhooks** | 出站 Webhooks(URL + 事件)、入站 Webhooks(路径 + 处理程序)、带状态/持续时间/时间戳的事件日志 |
| **Audit Log** | 安全事件查看器,带风险级别颜色编码、操作过滤、详情展开 |
| **Settings** | 提供商 API 密钥管理(保存前通过测试调用验证,加密存储)、系统配置 |
| **RAG** | 文档上传(PDF/TXT/MD/代码)、带分数显示的语义搜索、配置编辑器(块大小、Embedding 提供商)、持久化 |
| **Voice** | 文本转语音和语音转文本,Agent 交互的语音输入/输出 |
| **Canvas** | ForgeCanvas:实时视觉产物(HTML, React, SVG, Mermaid, Charts, Markdown, Code)在沙箱 iframe 中渲染,支持双向 Agent ↔ 产物交互 |
| **Recordings** | 会话录制与回放:录制完整的 Agent 会话、时间轴播放器(播放/暂停/拖动)、逐步可视化(消息、工具调用、思考、进度) |
### 🖥️ 桌面应用
ForgeAI 提供**两个桌面应用程序**,用途不同:
| | **Desktop App** (`packages/desktop`) | **Companion** (`packages/companion`) |
|:--|:--|:--|
| **框架** | Electron | Tauri 2 + React + Rust |
| **用途** | Dashboard 的轻量级包装器 —— 将其作为原生桌面窗口而不是浏览器标签页打开 | 连接到 Gateway 并让 AI 控制您的 Windows PC(桌面自动化、语音、文件管理)的智能客户端 |
| **平台** | Windows, macOS, Linux | 仅 Windows 10/11 |
| **需要 Gateway?** | 不需要 —— 嵌入 Dashboard UI | 需要 —— 通过 WebSocket 与 Gateway 配对 |
| **主要功能** | 系统托盘、全局热键、自动更新、开机自启 | 配对、语音模式、桌面自动化、双环境路由、安全系统 |
| **何时使用** | 您想要一个原生应用来访问 Dashboard 而无需打开浏览器 | 您希望 AI 远程与您的 Windows PC 交互(例如 Gateway 在 VPS 上,Companion 在您的桌面上) |
#### 📦 Desktop App (Electron) —— Dashboard 包装器
原生桌面包装器(`packages/desktop`),将 ForgeAI Dashboard 打包为 Windows、macOS 和 Linux 的独立应用:
- **系统托盘** —— 在后台运行、双击显示、带快捷操作的上下文菜单
- **全局热键** —— `Ctrl+Shift+F` 切换窗口、`Ctrl+Shift+C` 快速聊天
- **原生通知** —— Agent 事件的操作系统级通知
- **自动更新** —— 通过 GitHub Releases 自动更新
- **开机自启** —— 可选随操作系统启动
- **单实例** —— 防止多个窗口
- **最小化到托盘** —— 关闭按钮最小化而不是退出
- **持久化设置** —— 用户数据中存储的 Gateway URL、窗口边界、首选项
#### 🔥 ForgeAI Companion (Tauri) —— AI 桌面控制器
使用 **Tauri 2 + React + Rust** 构建的轻量级原生桌面客户端(`packages/companion`)。连接到任何 ForgeAI Gateway(本地或远程)并让 AI Agent **控制您的 Windows 桌面** —— 创建文件、运行命令、截屏等。
- **配对系统** —— 使用 URL + 配对码(在 Dashboard → Settings 中生成)连接到任何 Gateway
- **实时 Agent 进度** —— WebSocket 连接显示实时工具执行(正在调用哪个工具、成功/失败),而不仅仅是加载动画
- **工具步骤显示** —— 每条消息中的可折叠工具执行历史(工具名称、✓/✗ 状态、持续时间)
- **截屏查看器** —— 点击全屏展开、下载按钮、支持本地和远程 Gateway 截屏
- **语音模式** —— 按下即说波形可视化器、唤醒词检测、STT → AI → TTS 管道
- **配置同步** —— 使用加密的一次性同步码在 Gateway 之间安全传输所有 Gateway 配置(LLM 密钥、TTS 设置、系统配置)
- **系统托盘** —— 最小化到托盘、单实例强制
- **智能安全系统** —— 基于 Rust 的安全层保护操作系统关键路径(C:\Windows, System32, 启动文件),同时允许其他所有地方的完整文件操作
- **桌面自动化** —— AI Agent 可以在运行 Companion 的机器上创建文件夹、删除文件、启动应用、截屏和运行 Shell 命令
- **双环境路由** —— AI 可以**同时访问两台机器**:Linux 服务器和您的 Windows PC (Companion)。在 `shell_exec` 和 `file_manager` 上使用 `target="server"` 或 `target="companion"` 选择命令执行位置。Agent 通过关键词自动检测意图
- **流式心跳** —— 长时间运行的 Agent 任务(多步骤网站创建、复杂自动化)永远不会超时。Gateway 定期发送心跳以保持 HTTP 连接活跃,然后交付最终结果。无论任务复杂程度如何,都不再有 "Gateway request failed" 错误。
#### 快速开始
```
# 选项 1:通过 .msi 或 .exe 安装程序安装
# 从 GitHub Releases 下载 → ForgeAI Companion_1.0.0_x64-setup.exe
# 选项 2:从源码构建
pnpm --filter @forgeai/companion build
# 输出目录:packages/companion/src-tauri/target/release/bundle/
```
1. 启动 Companion
2. 输入您的 Gateway URL(例如 `http://192.168.1.100:18800` 或 `http://your-vps-ip:18800`)
3. 输入来自 **Dashboard → Settings → Companion Pairing** 的配对码
4. 开始聊天 —— AI 现在可以控制您的 Windows 桌面
#### 配置同步(在 Gateway 之间传输设置)
安全地将所有配置从一个 Gateway 迁移到另一个,无需手动重新配置:
1. **在目标 Gateway 上**(例如 VPS):进入 Companion Settings 或 Dashboard → Config Sync → 点击 **"Generate Sync Code"**
2. 生成一个一次性 8 字符代码(5 分钟内有效)
3. **在源 Gateway 上**(例如您的本地机器):输入目标 URL + 同步码 → 点击 **"Push Config"**
4. 所有 Vault 数据(LLM API 密钥、TTS 配置、系统设置)使用同步码作为密钥通过 AES-256-GCM 加密、传输并导入目标端
安全性:代码为一次性使用、5 分钟后过期、每 5 分钟限制 3 次尝试。数据独立于 Vault 加密进行加密 —— 同步码绝不与加密数据一起传输。
#### 双环境路由
当 Companion 连接时,AI Agent 可以**同时控制两台机器**:
```
┌──────────────────────────┐ ┌──────────────────────────┐
│ SERVER (Linux/Docker) │ │ COMPANION (Windows PC) │
│ │ │ │
│ • Bash commands │ │ • PowerShell commands │
│ • Linux paths (/home/..) │ │ • Windows paths (C:\...) │
│ • Web hosting │ │ • Desktop automation │
│ • Default execution │ │ • GUI control │
│ │ │ │
│ target="server" (default)│ │ target="companion" │
└──────────────────────────┘ └──────────────────────────┘
```
Agent 通过关键词自动检测路由意图:
- **服务器(默认)**:"no linux", "no servidor", "on the server"
- **Companion**:"meu computador", "minha máquina", "meu pc", "my computer", "my desktop", "windows"
- **桌面工具**(截屏、GUI):总是路由到 Companion(服务器没有 GUI)
### 🌐 域名 / HTTPS(原生)
ForgeAI 包含通过 [Caddy](https://caddyserver.com/) 反向代理的**内置域名支持**和自动 HTTPS。无需外部设置 —— 只需运行一个脚本。
```
# 交互式设置 — 验证 DNS,检查端口,配置所有内容
bash scripts/setup-domain.sh
```
该脚本会:
1. 询问您的域名(例如 `ai.example.com`)
2. 验证 DNS A 记录指向您的服务器
3. 检查端口 80/443 是否可用
4. 使用 `DOMAIN` 和 `PUBLIC_URL` 配置 `.env`
5. 启动带自动 Let's Encrypt SSL 的 Caddy
6. 使用正确的公共 URL 重建 Gateway
**或手动配置:**
```
# 1. 在 .env 中设置 domain
echo "DOMAIN=ai.example.com" >> .env
echo "PUBLIC_URL=https://ai.example.com" >> .env
# 2. 使用 domain profile 启动
docker compose --profile domain up -d
```
| 功能 | 详情 |
|:--------|:--------|
| **SSL** | 通过 Let's Encrypt 自动生成(零配置) |
| **安全标头** | HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy |
| **WebSocket** | 完全支持(Companion、实时更新) |
| **超时** | 为长时间 Agent 操作配置 |
| **回退** | 从 `.env` 中移除 `DOMAIN` → `docker compose --profile domain down` → `docker compose up -d` |
### 📦 静态站点托管
Gateway 自动提供 Agent 创建的静态网站。无需额外端口,无需启动 HTTP 服务器。
**工作原理:**
1. Agent 在 `.forgeai/workspace/
/` 中创建文件
2. 文件可通过 `http://:18800/sites//` 即时访问
3. 使用域名:`https://yourdomain.com/sites//`
```
User: "create a landing page for my startup"
Agent creates:
.forgeai/workspace/startup-landing/
├── index.html
├── style.css
└── script.js
Accessible at: https://yourdomain.com/sites/startup-landing/
```
- 支持 HTML、CSS、JS、图片、字体、视频、PDF
- 自动提供目录索引 (`index.html`)
- 无需身份验证(站点公开)
- 5 分钟缓存以加快加载
- 启用 CORS 以进行跨域访问
## 🧠 高级功能
Agent 循环(无限迭代)
Agent 自主迭代:思考 → 决定工具 → 执行 → 处理结果 → 重复。**无迭代限制** —— Agent 会一直工作直到任务完成。仅卡顿循环检测(重复的工具调用序列)作为安全网。每次迭代都通过 WebSocket 向 Dashboard 和消息渠道广播实时进度进行跟踪。**反思阶段**:在 3 次以上带工具调用的迭代后,Agent 会在给出最终答案之前验证自己的工作质量
Forge Teams(协调 Agent 团队)
创建由专家 Agent 组成的团队,共同处理复杂项目 —— 灵感来自 Claude Code 的 Agent Teams。
```
User: "Create a full-stack app with React frontend and Flask API"
→ forge_team creates 3 specialists:
┌─────────────────┐ ┌──────────────────┐
│ UI Designer │ │ Backend Engineer │ ← run in PARALLEL
│ (landing page) │ │ (Flask API) │
└────────┬────────┘ └────────┬─────────┘
│ │
└───────────┬───────────┘
▼
┌─────────────────┐
│ Integration Eng. │ ← WAITS for both, receives their outputs
│ (connect FE+BE) │
└─────────────────┘
```
- **依赖关系图**:任务声明依赖关系;依赖任务等待并接收上游输出作为上下文
- **并行执行**:独立任务同时运行
- **每个团队最多 5 个 Worker**,最多 **2 个并发团队**
- **Dashboard 可见性**:活动团队可通过 `GET /api/teams/active` 和 Agents 页面查看
- Worker 拥有**完整的工具访问权限**(file_manager, shell_exec, browser 等)
任务委托
对于更简单的并行工作,Agent 可以通过 `agent_delegate` 将任务委托给临时专家子 Agent。每个子 Agent 都有完整的工具访问权限、独立运行,并将结果返回给主 Agent。同一个 LLM 响应中的多个 `agent_delegate` 调用通过 Promise.allSettled **并行**运行。子 Agent 不能进一步委托(无递归)。
自适应 Prompt 优化器
Agent **从过去的任务结果中学习**,并自动改进未来任务的 Prompt。灵感来自 DSPy 的优化概念,为 ForgeAI 原生构建。
- **任务分类**:将任务分为 9 种类型(web_creation, api_development, data_analysis, scripting, research, file_operations, system_admin, automation, general)
- **成功模式**:记录成功任务的工具调用序列,评分(0–1)基于失败、反思触发和迭代次数
- **反模式**:跟踪失败模式并生成避免指令
- **Few-shot 注入**:为类似的未来任务将经过验证的策略和警告注入 Prompt
- **持久化**:数据保存到 `prompt-optimizer.json`,每 60 秒自动保存
- **时间衰减**:旧模式失去相关性(30 天窗口),使最近和最有效的策略保持在顶部
多 Agent 系统
创建具有不同模型、提供商、角色和工具权限的多个 Agent。根据渠道、Peer 或会话绑定将消息路由到特定 Agent。Agent 可以通过会话工具相互通信。
跨会话记忆
基于 TF-IDF 的记忆,在会话之间持久化。Agent 自动存储重要的上下文,并将相关记忆注入新对话。合并功能移除重复项并合并相关条目。
RAG 引擎
摄取文档(文本、Markdown、PDF 文本)、使用可配置重叠进行分块、生成 TF-IDF Embedding 并进行语义搜索。检索到的上下文自动注入 Agent 的 Prompt 中。
工作流引擎
定义具有条件、延迟、转换和并行分支的多步骤工作流。通过 API 执行或使用 cron 调度。每个步骤可以调用工具、发送消息或触发其他工作流。
MCP Client (Model Context Protocol)
通过 HTTP、SSE 或 stdio 传输连接到外部 MCP 服务器。发现并调用远程工具。从 Dashboard Tools 页面管理服务器。
Autopilot
在 `AUTOPILOT.md` 中使用标签定义计划任务:`@startup`、`@hourly`、`@morning`、`@evening`、`@daily`、`@weekly`。引擎解析文件并自动执行任务。可从 Dashboard 编辑。
提供商余额
支持提供商的实时余额查询。Usage 页面显示每个提供商的剩余余额、所有提供商的总额以及基于模型定价表的每次请求估算成本。
DM Pairing
使用邀请码(`FORGE-XXXX-XXXX`)安全地引导用户。从 Dashboard 或 API 生成代码,具有可配置的过期时间、最大使用次数、角色分配和渠道限制。用户从任何消息渠道使用 `/pair` 兑换代码。
更多
- **AutoPlanner** —— 将复杂目标分解为依赖关系图、并行执行步骤
- **Thinking Levels** —— 控制推理深度:off, low, medium, high
- **备份与恢复** —— 通过 API 和 Dashboard 导出/导入加密的 Vault 数据
- **配置同步** —— 在实例之间安全传输所有 Gateway 配置(AES-256-GCM、一次性代码)
- **GDPR 合规** —— 完整数据导出或删除(被遗忘权)
- **OpenTelemetry** —— 追踪、指标、OTLP/HTTP 导出
- **OAuth2/SSO** —— Google、GitHub、Microsoft 身份验证
- **IP Allowlist/Blocklist** —— 按 IP/CIDR 限制 Gateway 访问
- **Tailscale** —— 无需端口转发的远程访问
## 📡 Node Protocol (IoT/嵌入式设备)
通过 WebSocket 将轻量级设备连接到您的 AI。单个 Go 二进制文件(约 5MB,零依赖)将任何 Linux 开发板变成 AI 驱动的节点。
🖥 支持的设备
| 设备 | 架构 | 二进制文件 | 状态 |
|:-------|:-------------|:-------|:-------|
| **Raspberry Pi 5** | ARM64 | `forgeai-node-linux-arm64` | ✅ 完全支持 |
| **Raspberry Pi 4 Model B** | ARM64 | `forgeai-node-linux-arm64` | ✅ 完全支持 |
| **Raspberry Pi 3 B/B+** | ARMv7 / ARM64 | `forgeai-node-linux-armv7` | ✅ 完全支持 |
| **Raspberry Pi 2** | ARMv7 | `forgeai-node-linux-armv7` | ✅ 完全支持 |
| **Raspberry Pi Zero 2 W** | ARM64 | `forgeai-node-linux-arm64` | ✅ 完全支持 |
| **Orange Pi / Banana Pi** | ARM64 | `forgeai-node-linux-arm64` | ✅ 完全支持 |
| **NVIDIA Jetson Nano/Xavier** | ARM64 | `forgeai-node-linux-arm64` | ✅ 完全支持 |
| **BeagleBone Black/Green** | ARMv7 | `forgeai-node-linux-armv7` | ✅ 完全支持 |
| **Pine64 / ODROID** | ARM64 | `forgeai-node-linux-arm64` | ✅ 完全支持 |
| **NanoKVM** | ARM64 | `forgeai-node-linux-arm64` | ✅ 完全支持 |
| **任何 Linux 服务器/VPS** | AMD64 | `forgeai-node-linux-amd64` | ✅ 完全支持 |
| **Windows PC** | AMD64 | `forgeai-node-windows-amd64.exe` | ✅ 完全支持 |
| **macOS (Intel)** | AMD64 | `forgeai-node-darwin-amd64` | ✅ 完全支持 |
| **macOS (Apple Silicon)** | ARM64 | `forgeai-node-darwin-arm64` | ✅ 完全支持 |
| **ESP32 (所有变体)** | Xtensa / RISC-V | MicroPython agent | ✅ 完全支持 |
| **ESP32-CAM** | Xtensa | MicroPython agent | ✅ 支持摄像头 |
| **ESP8266** | Xtensa | MicroPython agent | ⚠️ 功能受限(RAM 较少) |
⚡ 快速设置
```
# 1. 下载二进制文件(从 GitHub Releases)
wget https://github.com/forgeai-dev/ForgeAI/releases/download/node-agent-latest/forgeai-node-linux-arm64
chmod +x forgeai-node-linux-arm64
# 2. 在 Dashboard → Settings → Node Protocol → "Generate Secure Key" 中生成 API key
# 3. 运行
./forgeai-node-linux-arm64 \
--gateway http://YOUR_GATEWAY_IP:18800 \
--token YOUR_NODE_API_KEY \
--name "My-RaspberryPi"
```
作为 **systemd 服务**开机运行:
```
sudo tee /etc/systemd/system/forgeai-node.service << EOF
[Unit]
Description=ForgeAI Node Agent
After=network.target
[Service]
ExecStart=/usr/local/bin/forgeai-node-linux-arm64
Environment=FORGEAI_GATEWAY=http://YOUR_GATEWAY_IP:18800
Environment=FORGEAI_NODE_TOKEN=your-api-key
Environment=FORGEAI_NODE_NAME=RaspberryPi-Office
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl enable --now forgeai-node
```
🔧 自动检测能力
Agent 自动检测设备能做什么:
| 能力 | 检测方式 | 示例用途 |
|:-----------|:----------|:------------|
| `shell` | 始终可用 | 通过 AI 远程执行任何命令 |
| `system` | 始终可用 | CPU、RAM、磁盘、温度、运行时间监控 |
| `gpio` | `/sys/class/gpio` 存在 | 在 Raspberry Pi 上控制 LED、继电器、传感器 |
| `camera` | 找到 `raspistill` 或 `libcamera-still` | 拍照、监控 |
| `docker` | `docker` CLI 可用 | 远程管理容器 |
| `network` | `ip` 命令可用 | 网络诊断、接口管理 |
📐 架构
```
┌──────────────────────────────────────────────────────────┐
│ IoT DEVICES │
│ Raspberry Pi · Jetson · BeagleBone · Orange Pi · NanoKVM │
│ forgeai-node binary (~5MB) │
└─────────────────────┬────────────────────────────────────┘
│ WebSocket (JSON)
│ wss://gateway:18800/ws/node
│
┌─────────────▼──────────────┐
│ ForgeAI Gateway │
│ │
│ ┌─────────────────────┐ │
│ │ NodeChannel │ │
│ │ • Auth (API Key) │ │
│ │ • Heartbeat (25s) │ │
│ │ • Node Registry │ │
│ │ • Command Relay │ │
│ │ • Node-to-Node │ │
│ └─────────┬───────────┘ │
│ │ │
│ ┌─────────▼───────────┐ │
│ │ AgentManager │ │
│ │ (AI Processing) │ │
│ └─────────────────────┘ │
└─────────────────────────────┘
Message Flow:
Device sends text → NodeChannel → AgentManager → LLM → Response → Device
Gateway sends command → NodeChannel → Device executes → Result → Gateway
Device A → relay → NodeChannel → Device B (node-to-node)
```
🔑 密钥管理
Node Protocol API 密钥完全通过 **Dashboard** 管理(无需 `.env`):
1. **Dashboard → Settings → Node Protocol** → 点击 **"Generate Secure Key"**
2. 密钥使用 **AES-256-GCM** 加密并存储在 Vault 中
3. 密钥在 Gateway 重启后依然存在
4. **热重载** —— 更改密钥会立即重新配置 NodeChannel(无需重启)
5. 连接说明和可复制的 CLI 命令直接显示在 Dashboard 中
API 端点:
- `POST /api/nodes/generate-key` —— 生成新密钥
- `GET /api/nodes/connection-info` —— 获取 WebSocket URL + CLI 示例
- `GET /api/nodes` —— 列出已连接的节点
- `POST /api/nodes/:id/command` —— 在设备上执行命令
## 🔗 集成
| 集成 | 功能 |
|:------------|:-------------|
| **GitHub** | 仓库信息、Issue(列表/创建)、PR、代码搜索、文件内容 |
| **Gmail** | 读取收件箱、发送/回复、搜索、标签、会话、未读计数、附件 |
| **Google Calendar** | 列出/创建/更新/删除事件、快速添加(NLP)、忙碌查询、多日历 |
| **Notion** | 搜索页面/数据库、读取/创建/追加页面、查询数据库 |
| **RSS/Atom** | 订阅源、获取条目、可配置更新间隔 |
## 🏗 架构
```
┌─────────────────────────────────────────────────────────────────────────┐
│ MESSAGING CHANNELS │
│ WhatsApp · Telegram · Discord · Slack · Teams · Google Chat │
│ · WebChat · Node Protocol (IoT) · │
└─────────────────────────────────┬───────────────────────────────────────┘
│ messages
┌─────────────▼─────────────┐
│ SECURITY LAYER │
│ Rate Limiter · IP Filter │
│ JWT · RBAC · 2FA │
│ Email OTP · Smart IP Det. │
│ Prompt Guard · Sanitizer │
│ Audit Log · Vault │
└─────────────┬──────────────┘
│ authenticated
┌─────────────▼──────────────┐
│ GATEWAY (Fastify 5) │
│ 140+ REST API endpoints │
│ WebSocket (real-time) │
│ Session Manager · Plugins │
│ Workflow Engine · Cron │
│ Serves Dashboard (React SPA) │
└──────┬──────────┬──────────┘
│ │
┌────────────▼──┐ ┌────▼──────────┐
│ AGENT LAYER │ │ TOOL LAYER │
│ │ │ │
│ AgentManager │ │ 19 built-in │
│ AgentRuntime │ │ MCP Client │
│ LLM Router │ │ Tool Registry │
│ 10 providers │ │ Forge Teams │
│ Circuit breaker│ │ Sandbox (Docker) │
│ Failover chain │ └────────┬────────┘
│ Agentic loop │ │
│ Prompt Optimizer│ ┌────────▼────────┐
└────────────────┘ │ INTEGRATIONS │
│ GitHub · Gmail │
│ Calendar ·Notion│
│ RSS · Webhooks │
└─────────────────┘
│
┌─────────────────────▼──────────────────────┐
│ PERSISTENCE │
│ MySQL 8 (Knex.js) · 10 tables │
│ Credential Vault (AES-256-GCM, file-based) │
│ Chat History (JSON, session-based) │
│ Memory Store (TF-IDF vectors) │
│ RAG Engine (chunked embeddings) │
└─────────────────────────────────────────────┘
```
### 13 包 Monorepo
```
packages/
├── shared/ → Types, utils, constants, logger
├── security/ → Vault, RBAC, Rate Limiter, Audit, Prompt Guard, JWT, 2FA, Email OTP, Sanitizer, IP Filter
├── agent/ → AgentRuntime, AgentManager, LLM Router (10 providers), ForgeTeamEngine, PromptOptimizer, Agentic Loop
├── channels/ → WhatsApp, Telegram, Discord, Slack, Teams, Google Chat, WebChat, Node Protocol
├── tools/ → Tool Registry, 19 tools (incl. forge_team, agent_delegate, plan tools), GitHub/Gmail/Calendar/Notion/RSS integrations
├── plugins/ → Plugin Manager, Plugin SDK, AutoResponder, ContentFilter, ChatCommands
├── workflows/ → Workflow Engine, step runner, dependency graph, parallel execution
├── core/ → Gateway (Fastify), DB (Knex+MySQL), WS Broadcaster, Telemetry, Autopilot, Pairing, Config Sync
├── cli/ → CLI commands: start, doctor, status, onboard
├── dashboard/ → React 19 + Vite 6 + TailwindCSS 4 + Lucide Icons (17 pages)
├── companion/ → ForgeAI Companion — Tauri 2 + React + Rust (Windows native desktop client)
├── node-agent/ → Go binary (~5MB) for Linux SBCs (Raspberry Pi, Jetson, BeagleBone)
└── node-agent-esp32/ → MicroPython agent for ESP32 microcontrollers (WiFi, GPIO, sensors)
```
## 📡 API 参考
ForgeAI 暴露 **140+ REST API 端点**。完整列表可通过 `GET /info` 访问。
| 领域 | 数量 | 关键端点 |
|:-------|:------|:-------------|
| **Chat** | 8 | `POST /api/chat` · `GET /api/chat/sessions` · `GET /api/chat/active` · `GET /api/chat/progress/:id` |
| **Agents** | 6 | `GET /api/agents` · `POST /api/agents` · `PATCH /api/agents/:id` · `POST /api/agents/send` |
| **Providers** | 5 | `GET /api/providers` · `POST /api/providers/:name/key` · `GET /api/providers/balances` |
| **Tools** | 5 | `GET /api/tools` · `POST /api/tools/execute` |
| **Security** | 12 | `GET /api/security/summary` · `GET /api/audit/events` · `GET /api/rate-limits` · `GET /api/ip-filter` |
| **Plugins** | 8 | `GET /api/plugins` · `GET /api/plugins/store` · `POST /api/plugins/store/template` |
| **Workflows** | 5 | `POST /api/workflows` · `POST /api/workflows/:id/run` · `GET /api/workflows/runs` |
| **Channels** | 6 | `GET /api/channels/status` · `POST /api/channels/:type/configure` · `POST /api/pairing/generate` |
| **Nodes** | 6 | `GET /api/nodes` · `GET /api/nodes/:id` · `POST /api/nodes/:id/command` · `POST /api/nodes/generate-key` · `GET /api/nodes/connection-info` |
| **MCP** | 7 | `GET /api/mcp/servers` · `POST /api/mcp/servers` · `POST /api/mcp/tools/call` |
| **Memory** | 5 | `POST /api/memory/store` · `POST /api/memory/search` · `POST /api/memory/consolidate` |
| **RAG** | 6 | `POST /api/rag/ingest` · `POST /api/rag/search` · `GET /api/rag/documents` |
| **Integrations** | 30+ | GitHub, Gmail, Calendar, Notion, RSS (CRUD + 搜索 + 配置) |
| **Config Sync** | 5 | `POST /api/config/sync-init` · `POST /api/config/sync-push` · `POST /api/config/sync-receive` · `GET /api/config/sync-status` · `GETapi/config/export-summary` |
| **System** | 15+ | `GET /health` · `GET /api/backup` · `GET /api/gdpr/export` · `GET /api/usage` · `GET /api/otel/status` |
## 📦 安装
### 前置条件
| 需求 | 版本 | 必需 |
|:------------|:--------|:---------|
| Node.js | ≥ 22 | 是 |
| pnpm | ≥ 9 | 是 |
| MySQL | 8.x (或 MariaDB 10.6+) | 是 |
| Docker | 最新版 | 可选(沙箱) |
| Chromium | 最新版 | 可选(browser 工具) |
### Linux (Ubuntu/Debian)
```
# 安装 Node.js 22 + pnpm
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt-get install -y nodejs
corepack enable && corepack prepare pnpm@latest --activate
# 安装 MySQL 8
sudo apt-get install -y mysql-server
sudo systemctl start mysql && sudo systemctl enable mysql
sudo mysql -e "CREATE DATABASE forgeai CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
# Clone, install, configure, start
git clone https://github.com/forgeai-dev/ForgeAI.git && cd ForgeAI
pnpm install && pnpm -r build
pnpm forge onboard # Interactive wizard
pnpm forge start # http://127.0.0.1:18800
```
### macOS
```
brew install node@22 mysql
brew services start mysql
mysql -u root -e "CREATE DATABASE forgeai CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
corepack enable && corepack prepare pnpm@latest --activate
git clone https://github.com/forgeai-dev/ForgeAI.git && cd ForgeAI
pnpm install && pnpm -r build
pnpm forge onboard && pnpm forge start
```
### Windows
```
# 从 https://nodejs.org 安装 Node.js 22
# 安装 MySQL 8(安装程序或 XAMPP)
corepack enable
corepack prepare pnpm@latest --activate
git clone https://github.com/forgeai-dev/ForgeAI.git
cd ForgeAI
pnpm install
pnpm -r build
pnpm forge onboard
pnpm forge start
```
### Docker
```
git clone https://github.com/forgeai-dev/ForgeAI.git && cd ForgeAI
cp .env.example .env # Edit with your settings
docker compose up -d # Gateway + MySQL, ready at http://localhost:18800
# 可选:启用带有自动 HTTPS 的自定义域名
bash scripts/setup-domain.sh # Interactive setup
# 或手动方式:在 .env 中设置 DOMAIN=yourdomain.com,然后:
# docker compose --profile domain up -d
```
## ⚙️ 配置
### 环境变量(`.env`)
```
# Database
MYSQL_HOST=127.0.0.1
MYSQL_PASSWORD=your_password
MYSQL_DATABASE=forgeai
# Security (由 onboard wizard 自动生成)
JWT_SECRET=your-random-jwt-secret
VAULT_MASTER_PASSWORD=your-strong-vault-password
# Gateway
GATEWAY_PORT=18800
```
### 工作区文件(`.forgeai/`)
| 文件 | 用途 |
|:-----|:--------|
| `AGENTS.md` | Agent 能力和行为准则 |
| `SOUL.md` | 个性和沟通风格 |
| `IDENTITY.md` | 姓名、语言和身份 |
| `USER.md` | 关于您(用户)的上下文 |
| `AUTOPILOT.md` | 计划任务:`@startup`、`@hourly`、`@morning`、`@evening` |
均可从 **Dashboard → Workspace** 编辑。
## 🖥 CLI 参考
```
pnpm forge onboard # Interactive first-time setup
pnpm forge start # Start Gateway + Dashboard
pnpm forge doctor # Check system health (Node, MySQL, Docker, disk)
pnpm forge status # Quick status check
```
### 聊天命令(从任何渠道)
| 命令 | 描述 |
|:--------|:-----------|
| `/new` | 开始新会话 |
| `/status` | 当前模型、Token、成本 |
| `/think ` | 控制推理深度 |
| `/usage ` | 切换用量页脚 |
| `/compact` | 压缩会话上下文(节省 Token) |
| `/pair FORGE-XXXX` | 兑换邀请码 |
| `/autopilot` | 查看计划任务 |
| `/help` | 列出所有命令 |
## 🗺 路线图
### 已完成 —— 33 个阶段
所有核心功能已实现并测试:
- **Security** —— 9 个模块、加密 Vault、RBAC、速率限制、Prompt Guard、2FA、Email OTP(外部访问)、设置向导、审计
- **Agent** —— 多 LLM 路由器(10 个提供商,包括 Ollama + OpenAI-Compatible)、Agent 循环(无限迭代)、Thinking Levels、故障转移 + 熔断器、反思阶段
- **Channels** —— WhatsApp、Telegram、Discord、Slack、Teams、Google Chat、WebChat、Node Protocol (IoT)
- **Tools** —— 19 个内置 + MCP Client + Puppeteer + Shell + 沙箱
- **Dashboard** —— 19 页、WebSocket 实时、提供商余额跟踪
- **Multimodal** —— 视觉输入(图像分析)、语音 STT/TTS、图像生成(DALL-E 3、Leonardo AI、Stable Diffusion)
- **Integrations** —— GitHub、Gmail、Google Calendar、Notion、RSS
- **Advanced** —— RAG、AutoPlanner、Workflows、Memory、Autopilot、DM Pairing、Multi-Agent、**Forge Teams**、**Prompt Optimizer**
- **Infrastructure** —— Docker(Python 3 + Node.js 22 + Chromium)、CI/CD、E2E 测试、OpenTelemetry、GDPR、OAuth2、IP 过滤
- **Node Protocol** —— 用于嵌入式设备的轻量级 Go 二进制文件(约 5MB)(Raspberry Pi、Jetson、BeagleBone、NanoKVM)。通过 WebSocket 连接到 Gateway、认证、心跳、远程命令执行、系统信息报告、节点间中继。通过 Dashboard 进行密钥管理(加密 Vault、热重载)。支持 Linux ARM/AMD64、Windows、macOS 交叉编译
- **Security Hardening** —— 启动完整性检查、通用 Webhook 警报、审计日志轮换、RBAC 强制执行(对非管理员认证用户阻止 403)
- **First-Run Setup Wizard** —— 首次访问时的引导设置:带测试连接的 SMTP 配置、带 QR 码的 2FA (TOTP)、管理员 PIN 更改。智能本地/外部 IP 检测,为 VPS/外部访问提供四重认证(Access Token + PIN + TOTP + Email OTP)。带样式化 HTML 邮件的 Email OTP 服务、5 分钟过期、速率限制。SMTP 配置可从 Dashboard Settings 管理
- **Configurable Models** —— 所有 10 个提供商模型列表更新至最新(GPT-5.2, Claude Opus 4.6, Grok 4 等),可通过 Dashboard + API 针对每个提供商配置,加密存储在 Vault 中
- **Browser Tools Upgrade** —— Puppeteer:21 个操作(滚动、悬停、选择、Cookies、多标签页、extract_table)。web_browse:HTTP 方法、标头、表格/元数据/json。新的 web_search 工具
- **RAG Engine Upgrade** —— 持久化(JSON 到磁盘、启动时自动加载)、运行时配置 API、文件上传(PDF/TXT/MD/代码)、OpenAI Embedding 支持、Dashboard RAG 页面
- **Cross-Platform Desktop** —— 完整的 macOS 支持(AppleScript、Vision OCR、screencapture)、Linux 改进(Wayland、tesseract OCR、依赖检测)、具有完整系统访问权限的文件管理器(绝对路径、复制/移动/搜索/权限/磁盘信息)、CLI ASCII 横幅
- **ForgeAI Companion** —— Tauri 2 + React + Rust 原生 Windows 客户端。配对系统、实时 WebSocket Agent 进度、工具步骤显示、带全屏 + 下载的截屏查看器、带唤醒词的语音模式、Config Sync、系统托盘、智能 Rust 安全系统、桌面自动化
- **Config Sync** —— 安全的 Gateway 间配置传输。AES-256-GCM 加密,带一次性 8 字符同步码(5 分钟 TTL)、速率限制、审计日志。在 Gateway 之间传输所有 Vault 数据(LLM 密钥、TTS、系统配置)
- **Smart File Security** —— Agent 可以删除任何地方除了操作系统关键路径之外。Shell 命令被阻止用于驱动器根目录擦除和系统目录破坏。Companion 中基于 Rust 的安全层,具有受保护的路径、进程和注册表键
- **Dual Environment Routing** —— `shell_exec` 和 `file_manager` 工具上的 `target` 参数:`target="server"`(默认,Linux/Bash)或 `target="companion"`(Windows/PowerShell)。CompanionToolExecutor 根据目标有条件地委托。Agent 从用户意图关键词自动检测路由
- **Streaming Heartbeat** —— Gateway 在长时间 Agent 处理期间发送定期心跳空格以保持 HTTP 连接活跃。Companion 读取完整响应、修剪心跳、解析最终 JSON。无论持续时间如何,消除复杂多步骤任务的超时错误
- **Static Site Hosting** —— Gateway 上的 `/sites/*` 路由提供来自 `.forgeai/workspace/` 的静态文件,支持目录索引。Agent 直接在 workspace 中创建网站,通过公共 URL 即时访问。无需 HTTP 服务器,无需额外端口
- **Native Domain / HTTPS** —— 内置 Caddy 反向代理,带自动 Let's Encrypt SSL。Docker Compose 配置文件(`--profile domain`)。交互式 `setup-domain.sh` 脚本验证 DNS、检查端口、配置 `.env` 并部署。包含安全标头(HSTS, X-Frame-Options 等)
- **Stealth Browser + Proxy + Markdown** —— Puppeteer 隐身反检测(指纹欺骗、Canvas 噪声、WebGL 掩码、WebRTC 保护、CDP 隐藏)。浏览器和 HTTP 请求的原生代理轮换。通过 Turndown 在 `web_browse` 中进行 HTML → 干净 Markdown 提取
- **Adaptive Element Tracking** —— 当 CSS 选择器失效时,基于指纹的元素重新定位。对属性/文本/父链进行 Jaccard 相似度计算,带加权评分和置信度阈值(高/中/低)。指纹的 MySQL 持久化。在 Puppeteer 和基于 Cheerio 的工具中都有效
- **Agent Autonomy & Self-Management** —— 主机上的完全无限制 root 访问(`target="host"`)。Agent 自我管理指令:自动修复 Chromium 锁、端口冲突、磁盘问题、权限错误。改进的反灾难保护(针对 `rm -rf` 的精确正则表达式,对 `/tmp/` 无误报)。智能家居(`smart_home`)和 Spotify(`spotify`)工具
- **Execution Planning Tools** —— 用于结构化任务执行的 `plan_create` 和 `plan_update` 工具。带有步骤的计划、自动推进、最多 15 个步骤。通过回调在每个 LLM 迭代中注入计划上下文(无循环依赖)。全局每会话计划存储
- **Task Delegation (Sub-Agents)** —— 用于并行子 Agent 任务执行的 `agent_delegate` 工具。具有完整工具访问权限的临时专家 Agent、反递归(子 Agent 不能委托)、自动清理。同一 LLM 响应中的多个委托通过 Promise.allSettled 并行运行
- **Forge Teams (Coordinated Agent Teams)** —— 用于创建带有依赖关系图的协调专家 Agent 团队的 `forge_team` 工具。独立任务并行运行;依赖任务等待并接收上游输出作为上下文。每个团队最多 5 个 Worker,2 个并发团队。通过 `/api/teams/active` 的 Dashboard 可见性。灵感来自 Claude Code 的 Agent Teams
- **Adaptive Prompt Optimizer** —— 原生 DSPy 启发的自动优化。将任务分类为 9 个类别,记录成功/失败模式带评分,为类似的未来任务将经过验证的策略 + 反模式注入 Prompt。持久化到 JSON,每 60 秒自动保存,旧模式的时间衰减
- **Full Installation Freedom** —— Docker 镜像包括 Python 3、pip、venv、curl、git 以及 Node.js 22 和 Chromium。Agent 有明确的指令来安装任何缺失的依赖项(语言、库、工具),具有完整的 root 访问权限。绝不替换技术 —— 如果用户要求 Flask,Agent 会安装 Flask
### 下一步计划
| 功能 | 优先级 |
|:--------|:---------|
| ~~Electron 桌面应用~~ | ✅ 已完成 |
| ~~ForgeAI Companion(Windows 原生客户端)~~ | ✅ 已完成 |
| ~~Config Sync(Gateway 间传输)~~ | ✅ 已完成 |
| ~~语音唤醒词检测~~ | ✅ 已完成 |
| ~~IoT 设备节点协议~~ | ✅ 已完成 |
| ~~双环境路由(服务器 + Companion)~~ | ✅ 已完成 |
| ~~流式心跳(复杂任务无超时)~~ | ✅ 已完成 |
| ~~通过 Gateway 的静态站点托管~~ | ✅ 已完成 |
| ~~原生域名 / HTTPS(Caddy + Let's Encrypt)~~ | ✅ 已完成 |
| ~~隐身浏览器 + 代理轮换 + Markdown 提取~~ | ✅ 已完成 |
| ~~自适应元素追踪(指纹匹配)~~ | ✅ 已完成 |
| ~~Agent 自我管理 + 完整 root 访问~~ | ✅ 已完成 |
| ~~智能家居 + Spotify 工具~~ | ✅ 已完成 |
| ~~Forge Teams(协调 Agent 团队)~~ | ✅ 已完成 |
| ~~自适应 Prompt 优化器(DSPy 启发)~~ | ✅ 已完成 |
| ~~任务委托(并行子 Agent)~~ | ✅ 已完成 |
| ~~执行计划工具~~ | ✅ 已完成 |
| ~~Docker 中的 Python + 多语言支持~~ | ✅ 已完成 |
| React Native 移动应用(iOS + Android) | 中 |
| ForgeAI Companion for macOS / Linux | 中 |
| Signal 消息渠道 | 低 |
| ELK/Loki 日志聚合 | 中 |
| 社区插件市场 | 中 |
| 网站自动化(从静态 HTML 迁移) | 低 |
有关完整的开发历史,请参阅 **[ROADMAP.md](./ROADMAP.md)**。
## 🤝 贡献
我们欢迎贡献!请参阅 **[CONTRIBUTING.md](./CONTRIBUTING.md)** 了解指南。
```
git clone https://github.com/forgeai-dev/ForgeAI.git
cd ForgeAI
pnpm install && pnpm -r build
pnpm test # 38 E2E tests
```
## 📋 技术栈
| 层 | 技术 |
|:------|:-----------|
| **语言** | TypeScript(严格模式) |
| **运行时** | Node.js ≥ 22 |
| **Gateway** | Fastify 5 + WebSocket |
| **数据库** | 通过 Knex.js 连接 MySQL 8(10 个表) |
| **加密** | AES-256-GCM、PBKDF2(310k 次迭代)、bcrypt、HMAC-SHA256 |
| **认证** | JWT(access + refresh + rotation)+ TOTP 2FA + Email OTP(外部) |
| **Dashboard** | React 19 Vite 6, TailwindCSS 4, Lucide Icons |
| **渠道** | grammY, discord.js, Baileys, Bolt SDK, Bot Framework, Go WebSocket (Node Protocol) |
| **浏览器** | Puppeteer(无头 Chromium) |
| **Companion** | Tauri 2, React, Rust, WebView2 (Windows) |
| **构建** | tsup, pnpm workspaces(13 个包) |
| **测试** | Vitest, 53+ E2E API 测试 |
| **CI/CD** | GitHub Actions(构建 → 测试 → 部署) |
| **部署** | Docker 多阶段、docker-compose |
| **可观测性** | OpenTelemetry(OTLP/HTTP)、结构化 JSON 日志记录 |
**[MIT 许可证](./LICENSE)** · **[安全政策](./SECURITY.md)** · **[行为准则](./CODE_OF_CONDUCT.md)** · **[贡献指南](./CONTRIBUTING.md)**
使用 TypeScript 构建 · 为重视隐私的开发者打造
标签:AES-256-GCM, Agent, AI平台, AI网关, API网关, Discord机器人, DLL 劫持, GNU通用公共许可证, GUI应用, IP 地址批量处理, LLM集成, MITM代理, MIT许可, Node.js, Process Hacker, PyRIT, Rust语言, Slack集成, Telegram机器人, TypeScript, WebChat, Web界面, WhatsApp机器人, 二进制文件分析, 仪表盘, 企业级, 全栈, 函数图谱, 即时通讯, 可视化调试, 多智能体系统, 大语言模型, 安全插件, 安全管理, 审计日志, 工具执行, 带宽管理, 开源, 微软Teams, 数据主权, 数据隐私, 日志审计, 流量可视化, 物联网IoT, 用户界面自定义, 私有化部署, 端到端加密, 网络调试, 聊天机器人框架, 自动化, 自动化攻击, 自动化攻击, 自动化攻击, 自托管, 请求拦截, 防御规避