Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OntoForge

OntoForge PC Agent 工作台

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 文档

快速启动

1. 环境要求

  • Go 1.24+
  • Node.js 20+
  • npm 与 Corepack/pnpm
  • PostgreSQL
  • Redis
  • OpenSSL(用于生成本地登录加密密钥)

如需使用文件对象存储,可另外配置已有的 MinIO 服务。

2. 准备 PostgreSQL 和 Redis

先启动 PostgreSQL 与 Redis,然后创建 OntoForge 控制库:

createdb -h 127.0.0.1 -U postgres ontoforge
redis-cli ping

redis-cli ping 返回 PONG 即表示 Redis 可用。项目启动时会自动初始化当前所需的 数据库表和基础数据。

3. 配置后端

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_URLLLM_MODEL

后端目前直接读取进程环境变量,不会自动加载 .env.local。启动前需要显式导入:

set -a
source .env.local
set +a
go run ./cmd/admin

后端启动后访问 http://localhost:8201/swagger/index.html 可查看 API。

4. 启动 PC Agent 工作台

新开一个终端:

cd application
npm install
npm run dev

访问 http://localhost:8204。首次使用可以直接注册用户,然后登录并创建对话。

5. 启动管理后台

先创建 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;如果已设置该变量,请使用你配置的密码。生产环境必须显式设置 安全密码,不能使用默认凭据。

6. 可选:启动 H5 用户端

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

进一步阅读

致谢

特别感谢 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 基础由该项目裁剪演进而来。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages