Files
figmar 34bc140195
CI / API - lint + tests (push) Has been cancelled
CI / Web - typecheck + build (push) Has been cancelled
CodeQL / Analyze (javascript-typescript) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
docs: add Chinese README as default (README.md), keep English as README.en.md
2026-08-10 21:28:02 +08:00

18 KiB
Raw Permalink Blame History

Forge

开源、自托管的一站式平台:可视化构建、测试并交付 AI Agent 与工作流。

在画布上把 Agent、工具、知识与逻辑串联起来 —— 接入你的数据、连接你的系统,并一键部署到邮件、API、MCP 服务器或可嵌入的网页组件。无需编写框架代码。

License: MIT Python Node FastAPI Next.js Built with LangChain v1 + LangGraph v1 PRs Welcome


Forge 直接构建于 MIT 许可的 LangChain v1 + LangGraph v1 框架之上 —— 绝不依赖 langgraph-apiElastic 2.0)或 LangSmith(商业版)。你编排的一切都在自己的基础设施上运行,不会向任何第三方编排服务发送数据。

  • 完全开源(MIT)。 无专有内核、无用量上限、无厂商锁定。
  • 零基础设施本地开发。 基于 SQLite + 内嵌 Chroma + 进程内调度器启动 —— 无需 Docker、Postgres 或 Redis。
  • 生产就绪。 仅通过配置即可切换 Postgres + pgvector、Redis 与真实密钥存储;加固守卫在检测到不安全默认配置时会拒绝启动。
  • 默认可观测。 每次运行都是一条 span 瀑布图,展示 token、延迟与成本(精确到美分)。

目录

功能特性

观看演示 —— 产品内置的 Forge Assistant 端到端构建并运行一个工作流。(如果播放器未内联加载,请点击链接播放。)

数据分析

工具构建器与响应投影

注册 REST、GraphQL、Code、SQL、MCP 或内置 工具,并针对真实输入进行在线测试。JMESPath 响应投影 在数据到达模型之前裁剪冗余负载 —— 实时观察原始 → 投影后的 token 计量表 收缩,以控制成本。每次出站调用都经过 SSRF 防护 筛查,并支持可选的重试、限流与缓存。通过 {{env.*}}(来自 FORGE_TOOL_VARS)将工具端点指向按环境取值的地址,同一工具行即可按部署解析到 dev / qa / prod 主机。平台内置工具(时间、计算器、网页抓取/搜索、知识检索、记忆)自动配置到每个项目并受保护不可删除。工具可组织成工具集 —— 可复用、多对多的分组,在画布上充当文件夹,一键授权给 Agent,并可发布为 MCP 工具集。

工具页面按集合分组显示(可在网格与列表之间切换),并支持一键**导出 / 导入**,在不同项目间迁移工具:

Forge 工具页面:按可复用工具集分组的工具网格,支持网格/列表视图与一键导出导入

可视化 Agent 构建器

通过模型、系统提示词、工具、知识、问答以及可排序的中间件栈,以友好的表单(无需 JSON)组合出 AgentDeep Agent(面向长多步任务的规划 + 子 Agent)。实时的 "模型所见" 面板会在发布前展示编译后的提示词与中间件执行顺序。可视化构建 supervisor:从 Deep Agent 的 subagents 手柄拖拽到任意专家 Agent 节点,即可将其折叠为可调用的子 Agent(画布上的组织架构分支)—— 每个子 Agent 拥有自己的模型、工具与提示词,通过 task 工具调度,并在 trace 中显示为具名子 Agent span。

可视化工作流构建器

拖拽画布(React Flow)上串联整个应用:从面板拖入节点 —— Agent 与深度 Agent、模型调用、分类器、工具、变换、检索、人工输入/交接、路由器、循环、并行扇出/汇合、子工作流与触发器 —— 并用类型化、经过校验的连线连接。节点级检查器与实时状态模式保证运行类型安全,小地图、撤销/重做与复制/粘贴让大型图保持可控。保存测试或打开 Playground 观看节点在流式运行中点亮 —— 然后发布

Forge 可视化工作流构建器:React Flow 画布串联检索、路由器、Agent 与结束节点,含节点面板、状态模式检查器与小地图

知识与 RAG

让 Agent 基于你自己的数据。添加粘贴文本、URL、爬取站点或上传文件(.txt/.md/.csv/.json/.html/.pdf);Forge 负责分块、嵌入(默认支持离线)并按文件夹组织为向量存储。精选的问答对可拦截常见问题,检索调试器让你精确检查检索返回的内容。

Forge 知识页面:文档来源、文件夹、分块状态与问答

内置的检索调试器按语义相似度绘制每个分块并叠加查询 —— 让你清楚看到检索命中了哪些分块、以及为什么命中:

Forge 知识检索调试器:按来源着色的 PCA 分块图,叠加查询标记检索命中的分块

生成式 UI 组件

让 Agent 渲染丰富的交互式 UI —— 表格、卡片、表单,而不仅是纯文本。用实时预览一次性编写 HTML/CSS 组件;模型只输出微小的载荷,标记在沙箱 iframe 中渲染,绝不膨胀 token 流。按钮可将结构化动作直接回传给 Agent。

Forge 组件构建器:HTML/CSS 编辑器与天气卡片实时沙箱预览

可嵌入网页组件

通过一行脚本将你的助手嵌入任何网站 —— 一个锁定你允许来源的悬浮聊天气泡。终端用户只看到对话;操作细节(步骤、token、成本、节点名)保留在仪表盘中,不外泄。

Forge 嵌入页面:组件开关、允许来源与可复制粘贴的启动脚本

随处部署 —— 单一 run API、MCP 与通道

无需重写即可通过多种表面交付同一工作流:通过单一 run APIPOST /run 处理新轮次、流式与人工介入恢复)进行服务器到服务器调用,将其暴露为 MCP 服务器,部署到邮件,或嵌入网页组件。按请求的调用方上下文(X-Forge-Context)让工具代表终端用户行事 —— 密钥绝不进入请求体。

Forge Connect 页面:run API —— Forge API 基础 URL、POST /run 端点与可复制的 curl 示例

Note

连接器尚未完整实现。 预置的一键连接器库 / 市场Google、Slack、Notion、GitHub、Salesforce 等)已列入路线图 —— 尚未发布。目前集成外部系统需手工完成:创建 REST / GraphQL / MCP 工具并与 Auth ProviderBearer / API key / Basic / OAuth2 / CSRF-session)配对使用。(注意:connector 角色 —— 一种最小权限、仅 MCP 的用户 —— 是独立且已发布的功能,与连接器库无关。)

可观测性与追踪

每次运行都捕获为可折叠的 span 树 —— 模型调用、工具、链、子 Agent、延迟、token 与成本,按真实父子关系嵌套,让你精确看到发生了什么、花了多少钱。Deep Agent 派发显示为具名的 subagent · <name> spanPlayground 实时流式呈现Agent 活动时间线(哪个子 Agent/工具在运行)。可配合 评估 在发布前捕获回归,并将 trace 导出到任意 OpenTelemetry 收集器(如 Langfuse)。

Forge 追踪页面:一次运行的 span 瀑布图,含每步延迟、token 与成本

护栏、预算与治理

像生产环境一样运行。项目级护栏与出站策略(PII 脱敏、屏蔽词、网络允许/拒绝列表)默认应用于每个 Agent;预算与配额封顶支出与 token版本管理为每次变更快照;全部位于按项目的角色 / RBAC 与审计日志之后 —— 集中于一个 Settings 页面。

Forge 项目设置:General、Members and Roles、API Keys、Model Pricing、Budgets and Quotas、Guardrails and Egress、Versioning 等分区侧栏

更多功能

  • 通道 —— 将工作流部署到邮件
  • 触发器 —— Webhook、定时(interval/cron)、入站邮件与轮询"应用事件"。
  • 人工介入 —— 批准/拒绝暂停与到 Agent 收件箱的实时交接,回复经同一通道返回。
  • Auth Providers —— Bearer、API key、Basic、OAuth2(客户端凭证三方用户登录并自动刷新)与 CSRF/session —— 由加密的、仅引用式密钥(secret://…)支撑。
  • 双向 MCP —— 将你的工具暴露为原生 Streamable-HTTP/SSE 的 MCP 服务器Claude Desktop、Cursor、VS Code 直接连接 —— 无需桥接),支持项目密钥、按用户个人访问令牌或可选 OAuth 2.1 认证,发布工具集、知识、问答或整个工作流;同时可消费外部 MCP 服务器的工具。
  • 护栏与出站策略 —— 一个项目级 I/O 策略(PII 脱敏、屏蔽词、网络允许/拒绝列表)默认对每个 Agent 强制执行;项目只能收紧,不能放松。
  • 导入与导出 —— 以可移植 JSON 包在项目间迁移工具、工作流、Agent 与组件(密钥永不离库)。
  • 评估 —— 由 contains / exact / regex / LLM-judge 打分的数据集,按工作流给出通过率,实时流式呈现(每个用例完成后立即在 UI 中解析,含单例延迟 + token)。
  • 长期记忆、响应缓存、带退避的重试与按租户预算
  • 多租户项目与角色owner/admin/editor/viewer/connector),含按项目 RBAC、可撤销的限定作用域 API 密钥、实体版本历史审计日志
  • 模型无关 —— OpenAI、Anthropic、Google 或任意 LangChain provider,外加离线 fake: 模型,让你不花一分钱也能搭好管道。

完整功能详见 用户手册 的端到端导览与实战示例。

架构

一个 pnpm + Python 单体仓库,通过共享模式契约让前后端保持同步:

forge/
├── apps/
│   ├── api/        FastAPI 后端 —— 引擎(编译器、注册中心、中间件)、工具、
│   │              认证、知识、追踪、MCP 服务器、构建助手。Dockerfile 与
│   │              Alembic 迁移在此。   [Python]
│   └── web/        Next.js 控制台 —— 画布、配置面板、playground、trace。Dockerfile
│                  在此。   [TS/React]
├── packages/
│   └── schemas/    共享 JSON Schema —— 唯一事实来源,后端校验器/编译器
│                  与前端 <SchemaForm> 均引用它。
├── docs/           用户手册、路线图与媒体。
├── infra/          生产数据库切换(Postgres 行级安全策略)。
└── docker-compose.yml   生产形态栈(Postgres · Redis · api · worker · web)。

共享模式是三个消费方的契约:后端校验器(保存时拒绝错误配置)、编译器compile_workflowbuild_middleware)与前端 <SchemaForm>(由同一文件生成表单)。

快速开始(本地、零基础设施)

前置条件

  • Python 3.113.13 —— 后端引擎
  • Node 22 LTS 与 pnpm 9+ —— Web 控制台
  • 无需其他 —— 本地栈运行于 SQLite + 内嵌 Chroma + 进程内调度器,无需 Docker、Postgres 或 Redis 即可启动。

1. 配置环境

cp .env.example .env        # macOS/Linux
copy .env.example .env      # Windows

打开 .env 填入所需内容(如 LLM provider 密钥)。启动时一切均可选;调用模型的 Agent 需要 provider 密钥。切勿提交你的 .env —— 它已在 git-ignore 中。

2. 后端(FastAPI 引擎)

cd apps/api
python -m venv .venv && source .venv/bin/activate     # Windows: .venv\Scripts\activate
pip install -e ".[dev,all]"                            # 引擎 + 测试 + 向量/提供方/知识/MCP
pytest                                                 # 可选:离线校验引擎
uvicorn forge.main:app --reload --port 8000            # http://localhost:8000/docs

3. 前端(Next.js 控制台)

在另一个终端中,从仓库根目录:

pnpm install
pnpm --filter web dev                                  # http://localhost:3000

打开 http://localhost:3000 使用控制台,http://localhost:8000/docs 查看 API。首次运行请使用 you@forge.local / forge-admin 登录,或创建一个新工作区。

使用 Docker 运行(生产形态)

仓库内置的 docker-compose.yml 可拉起生产形态栈 —— Postgres(应用数据库 + 持久化 checkpointer)、Redis(共享限流/幂等 + 工作队列)、APIworkerweb 控制台:

# 先设置真实密钥(FORGE_JWT_SECRET、FORGE_BOOTSTRAP_ADMIN_PASSWORD、provider 密钥)
docker compose up --build

设置 FORGE_ENVIRONMENT=production 后,Forge 会启用加固守卫,并在检测到默认密钥、SQLite 或非持久化 checkpointer 时拒绝启动。完整配置见 apps/api/README.md手册 §13 - 上线生产

文档

文档 内容
用户手册 完整功能导览、节点目录与端到端用例(无需开发知识)。
后端 README API 布局、本地与生产切换、依赖说明。
技术栈与架构 每个依赖及其用途,含请求/运行时序图。
路线图与状态 已发布、进行中与规划中的内容(连接器、更多通道等)。
更新日志 重要变更,遵循 Keep a Changelog + SemVer。
参与贡献 本地搭建、CI 检查与提交/PR 规范。

技术栈

技术
引擎 LangChain v1 · LangGraph v1 · Deep Agents —— 仅 MIT 框架
后端 Python · FastAPI · SQLAlchemy 2 (async) · Pydantic v2
前端 Next.js 14 (App Router) · React 18 · TypeScript · React Flow
数据(本地) SQLite · 内嵌 Chroma · 进程内缓存/调度器
数据(生产) Postgres 16 + pgvector · Redis 7 · Fernet/Vault 密钥
可观测性 内置 tracer + 成本核算 · OpenTelemetry / Langfuse 导出

本地修改(与原仓库对比)

本仓库是上游 Forge带本地定制化的分支,由 Gitinbox 组织托管,用于内部 AI Agent 平台使用。

与原仓库的差异(nihalashetty/Forge

领域 原仓库 本分支
模型目录apps/api/forge/model_catalog.py 仅 OpenAI / Anthropic / Google / 本地 fake 模型 新增 DeepSeek deepseek-chat128k$0.28/$0.42)与 deepseek-reasoner128k$0.55/$2.19),注册为 OpenAI 兼容端点
DeepSeek 运行时 通过 OPENAI_BASE_URL 环境变量在运行时注入 Base URL(零引擎改动,resolve_model 端到端可用)

其余引擎、前端与打包代码均与上游一致。与上游保持同步:

git remote add upstream https://github.com/nihalashetty/Forge.git   # 仅首次
git fetch upstream && git merge upstream/main

上游仓库: https://github.com/nihalashetty/Forge

英文版:请查看 README.en.md

参与贡献

欢迎贡献。Forge 基于 MIT 许可,专为扩展而设计。

  1. Fork 本仓库并创建功能分支。
  2. 后端改动:在 apps/api 下运行 pytestruff check forge migrations
  3. 保持共享模式packages/schemas)的权威性 —— 校验器、编译器与前端表单都从它读取。
  4. 发起描述改动内容与理由的 Pull Request。

发现 Bug 或有想法?请提交 issue

许可证

Forge 以 MIT 许可证 发布 —— 可免费使用、修改与分发(含商业用途)。它仅构建于 MIT 许可的 LangChain/LangGraph 生态之上,无 Elastic-2.0 或商业许可证依赖。

构建于开源的 LangChain 与 LangGraph 生态。