Ontology + Forge —— 用本体与数据锻造企业级智能 Agent。
OntoForge 是一个面向企业场景的 Agent SaaS 基础平台。项目以 Go实现 Agent 运行时和服务端,以 React 提供用户工作台,以 Vue 3 提供管理后台,目标是把大模型、企业数据、工具、Skills、权限和审计能力组织在同一套可扩展架构中。
当前版本已经完成可运行的基础闭环:用户可以注册、登录、创建会话并与真实模型进行流式对话;系统会持久化会话、消息、运行记录和事件;管理员可以管理用户、角色、菜单、数据源和系统配置。Ontology(企业本体)建模与更完整的数据分析能力仍在持续建设中。
- Pi-compatible Go Agent Runtime:支持流式输出、工具调用、取消、中止原因和 Provider-neutral 消息模型。
- Skills 扩展机制:从
SKILL.md加载版本化能力,并通过受约束的skill_read工具按需读取。 - 长上下文管理:提供 Token 预算、工具结果截断和结构化上下文压缩,并保留审计事件。
- 企业数据接入:支持 PostgreSQL、MySQL 数据源的连接检查、Schema 浏览和样例读取, 并提供用友 U8 OpenAPI 的集成基础。
- 多端应用:包含 PC Agent 工作台、H5 用户端和独立的管理后台。
- 企业级基础设施:包含 RBAC、JWT 会话撤销、登录保护、操作日志、文件存储和模型配置。
- 安全的密钥管理:数据库只保存
env:VARIABLE形式的凭据引用,真实密钥仅从运行环境读取。
OntoForge/
├── backend/ # Go + Gin API、Pi-compatible Agent Runtime、Skills
├── application/ # React PC Agent 工作台(推荐的用户入口)
├── admin/ # Vue 3 + Arco Design 管理后台
├── client/ # React + Ant Design Mobile H5 用户端
└── docs/ # 架构设计、开发计划和运行手册
默认端口:
| 服务 | 地址 | 用途 |
|---|---|---|
| Backend | http://localhost:8201 |
API 与 Agent Runtime |
| Admin | http://localhost:8202 |
管理后台 |
| H5 Client | http://localhost:8203 |
移动端用户入口 |
| Application | http://localhost:8204 |
PC Agent 工作台 |
| Swagger | http://localhost:8201/swagger/index.html |
API 文档 |
- Go
1.24+ - Node.js
20+ - npm 与 Corepack/pnpm
- PostgreSQL
- Redis
- OpenSSL(用于生成本地登录加密密钥)
如需使用文件对象存储,可另外配置已有的 MinIO 服务。
先启动 PostgreSQL 与 Redis,然后创建 OntoForge 控制库:
createdb -h 127.0.0.1 -U postgres ontoforge
redis-cli pingredis-cli ping 返回 PONG 即表示 Redis 可用。项目启动时会自动初始化当前所需的
数据库表和基础数据。
cd backend
cp -n .env.example .env.local
mkdir -p /tmp/ontoforge-keys
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 \
-out /tmp/ontoforge-keys/rsa-private.pem
# 将第一条命令的输出填入 backend/.env.local 的 AUTH_RSA_PRIVATE_KEY
openssl pkcs8 -topk8 -nocrypt \
-in /tmp/ontoforge-keys/rsa-private.pem -outform DER | openssl base64 -A
# 将第二条命令的输出填入 admin/.env.development.local 的 VITE_RSA_PUBLIC_KEY
openssl pkey -in /tmp/ontoforge-keys/rsa-private.pem \
-pubout -outform DER | openssl base64 -A至少检查或填写 backend/.env.local 中的以下配置:
APP_ENV=development
HTTP_PORT=8201
DB_HOST=127.0.0.1
DB_PORT=5432
DB_USER=postgres
DB_PWD=你的数据库密码
DB_NAME=ontoforge
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_PWD=
AUTH_RSA_PRIVATE_KEY=上一步生成的私钥Base64
AUTH_JWT_SECRET=至少32位的随机字符串
BOOTSTRAP_ADMIN_PASSWORD=仅用于首次创建管理员的密码
LLM_API_KEY=你的模型API密钥
LLM_BASE_URL=https://api.deepseek.com
LLM_MODEL=deepseek-v4-flash不配置 LLM_API_KEY 时后端仍可启动,但 Agent 对话会返回模型未配置错误。
可按 OpenAI-compatible 接口修改 LLM_BASE_URL 和 LLM_MODEL。
后端目前直接读取进程环境变量,不会自动加载 .env.local。启动前需要显式导入:
set -a
source .env.local
set +a
go run ./cmd/admin后端启动后访问 http://localhost:8201/swagger/index.html 可查看 API。
新开一个终端:
cd application
npm install
npm run dev访问 http://localhost:8204。首次使用可以直接注册用户,然后登录并创建对话。
先创建 admin/.env.development.local,写入刚才生成的 RSA 公钥:
VITE_RSA_PUBLIC_KEY=上一步生成的公钥Base64然后启动:
cd admin
COREPACK_ENABLE_AUTO_PIN=0 corepack pnpm@8.15.9 install --ignore-scripts
COREPACK_ENABLE_AUTO_PIN=0 corepack pnpm@8.15.9 dev访问 http://localhost:8202。
全新开发数据库在未设置 BOOTSTRAP_ADMIN_PASSWORD 时会创建本地管理员
admin / admin123;如果已设置该变量,请使用你配置的密码。生产环境必须显式设置
安全密码,不能使用默认凭据。
cd client
COREPACK_ENABLE_AUTO_PIN=0 corepack pnpm@8.15.9 install --ignore-scripts
COREPACK_ENABLE_AUTO_PIN=0 corepack pnpm@8.15.9 dev访问 http://localhost:8203。
# Backend
cd backend
go test ./...
# Admin
cd ../admin
COREPACK_ENABLE_AUTO_PIN=0 corepack pnpm@8.15.9 typecheck
COREPACK_ENABLE_AUTO_PIN=0 corepack pnpm@8.15.9 lint
COREPACK_ENABLE_AUTO_PIN=0 corepack pnpm@8.15.9 build
# H5 Client
cd ../client
COREPACK_ENABLE_AUTO_PIN=0 corepack pnpm@8.15.9 typecheck
COREPACK_ENABLE_AUTO_PIN=0 corepack pnpm@8.15.9 build
# PC Application
cd ../application
npm run build
npm run test:sites- 最终架构规范
- Go Agent 模块化单体设计
- 开发与本地数据实验计划
- 真实模型对话 E2E 手册
- 本地 ERP/WMS/OMS 数据实验手册
- 服装 OMS 千万级 PostgreSQL 数据实验手册
- Pi Agent 在 OntoForge 中的落地审计
特别感谢 Pi Agent Harness、 Pi 的作者 Mario Zechner 以及所有贡献者。
OntoForge 的 Agent 内核基于 Pi 的优秀设计进行迁移学习和 Go 语言重构,重点学习并迁移了 Agent Loop、统一消息模型、流式事件、工具调用、Skills 和上下文管理等运行时思想。 这里的“迁移学习”指对开源架构与实现语义的学习、迁移和再实现,并非模型权重层面的 Transfer Learning。没有 Pi 清晰、克制且可扩展的 Agent Harness,OntoForge 的 Go 运行时不会如此顺利地起步。
同时感谢 avalon-template-ex, OntoForge 的管理后台与 RBAC 基础由该项目裁剪演进而来。
