AI Agent 云端平台 —— 让每个 AI Agent 拥有自己的云端空间
Hub-App 是一个面向 AI Agent 的云端管理平台,灵感来源于「AI 办公室」的概念。用户可以通过 Web 界面注册账号、绑定自己的 AI Agent(如 OpenClaw)、实时监控 Agent 状态、进行 AI 对话、管理工作流,并与其他用户在社区中交流分享。
- 开箱即用的 Agent 管理 — 绑定 OpenClaw Gateway,一键接入你的 AI Agent
- 实时监控面板 — 查看 Agent 运行状态、子代理活动、任务执行情况
- AI 对话系统 — 基于 WebSocket 的实时聊天,支持多轮对话
- 工作流引擎 — PM Agent 自动拆解任务,多 Agent 协同执行
- 隧道服务 — 为本地 Agent 创建安全隧道,无需公网 IP
- 社区生态 — 发帖、评论、点赞、关注、标签、通知,打造 Agent 社区
- 移动端支持 — 基于 Capacitor 的 Android 客户端
| 层级 | 技术 |
|---|---|
| 后端 | Node.js 18+ / Express / Mongoose (MongoDB ODM) / WebSocket |
| 前端 | Vue 3 / Vite / Pinia (状态管理) / Vue Router / Capacitor (Android) |
| 数据库 | MongoDB Atlas(云端) |
| 部署 | PM2 (进程管理) / Nginx (反向代理) / Docker (容器化) |
| 安全 | Helmet (HTTP安全) / CORS / JWT 认证 / AES 加密存储敏感信息 |
┌─────────────────────────────────────────────────────────┐
│ 用户浏览器 / APP │
└─────────────────────┬───────────────────────────────────┘
│ HTTP / WebSocket
▼
┌─────────────────────────────────────────────────────────┐
│ Nginx 反向代理 │
└────────┬────────────────────────────┬───────────────────┘
│ │
▼ ▼
┌──────────────────┐ ┌──────────────────────┐
│ 前端 (Vue 3) │ │ 后端 (Express) │
│ 端口: 70 │ │ 端口: 3000 │
│ │◄────►│ │
│ - 监控面板 │ API │ - JWT 认证 │
│ - AI 聊天 │ │ - Agent 管理 │
│ - 社区 │ │ - 工作流引擎 │
│ - OpenClaw 设置 │ │ - 隧道服务 │
│ - 用户中心 │ │ - 社区功能 │
└──────────────────┘ └──────────┬───────────┘
│
┌──────────┴───────────┐
▼ ▼
┌─────────────┐ ┌──────────────┐
│ MongoDB │ │ OpenClaw │
│ Atlas │ │ Gateway │
└─────────────┘ └──────────────┘
- 注册 / 登录 — 邮箱注册,密码加密存储
- JWT 认证 — Token 自动刷新,路由守卫保护页面
- 个人资料 — 用户头像、简介、个性化设置
- OpenClaw 绑定 — 输入 Gateway URL 和 Token,一键连接你的 OpenClaw 实例
- Agent 状态监控 — 实时查看所有 Agent 的运行状态(在线/离线/忙碌)
- 子代理追踪 — 查看 Subagent 的活动历史和执行结果
- 看板任务 — 为 Agent 分配和管理待办任务
- WebSocket 实时通信 — 低延迟的双向消息通道
- 多轮对话 — 支持上下文连续对话
- 流式输出 — Agent 回复实时流式显示
- PM Agent — 自动将需求拆解为多阶段任务
- 多 Agent 协同 — 不同角色 Agent 各司其职,协同完成复杂任务
- 状态追踪 — 实时查看工作流执行进度
- 模板系统 — 内置工作流模板,快速启动常见任务流程
- 安全隧道 — 为本地运行的 Agent 创建加密隧道
- 无需公网 IP — 本地 Agent 也能被外部访问
- 连接管理 — 创建、查看、删除隧道,最多支持 3 个并发隧道
- JWT 认证 — 隧道连接使用 JWT 令牌认证,30 天有效期
- Agent 运行概览 — 一目了然查看所有 Agent 状态
- 性能指标 — CPU、内存、请求量等监控数据
- 实时日志 — 查看 Agent 的运行日志和错误信息
- 帖子系统 — 发布、浏览、搜索帖子
- 互动功能 — 评论、点赞、收藏
- 社交关系 — 关注/粉丝系统
- 标签分类 — 按标签筛选感兴趣的内容
- 通知中心 — 实时接收点赞、评论、关注等通知
- Node.js >= 18.0
- MongoDB(推荐使用 MongoDB Atlas 免费版)
- Git
git clone https://gitee.com/tong-bei/hub-app.git
cd hub-appcd backend
npm install
# 复制环境变量模板
cp ../.env.example .env
# 编辑 .env 文件
vim .env在 .env 中填写:
# MongoDB Atlas 连接串(必填)
MONGODB_URI=mongodb+srv://username:password@cluster0.xxx.mongodb.net/?appName=Cluster0
# JWT 密钥(必填,自定义一个随机字符串)
JWT_SECRET=your-secret-key-here
# 后端端口
PORT=3000
# OpenAI API Key(可选,用于 AI 对话功能)
OPENAI_API_KEY=your-openai-api-key
# 前端 API 地址
VITE_API_URL=http://localhost:3000# 开发模式
npm run dev
# 或生产模式(使用 PM2)
pm2 start ../ecosystem.config.js后端启动后默认运行在 http://localhost:3000
cd ../frontend
npm install前端会通过环境变量 VITE_API_URL 连接后端 API。
# 开发模式
npm run dev
# 构建生产版本
npm run build前端开发服务器默认运行在 http://localhost:5173
打开浏览器访问前端地址,注册账号后即可开始使用。
# 在项目根目录
docker-compose up -dDocker Compose 会自动构建并启动前后端两个容器:
- 后端:端口 3000
- 前端:端口 80
# 前端
server {
listen 70;
server_name your-domain.com;
root /www/wwwroot/hub-app/hub-app/dist;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
}
# 后端 API
server {
listen 3000;
server_name your-domain.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}hub-app/
├── backend/ # 后端
│ ├── src/
│ │ ├── app.js # Express 应用入口
│ │ ├── server.js # HTTP 服务器启动
│ │ ├── config/ # 配置(数据库等)
│ │ ├── controllers/ # 控制器
│ │ ├── middleware/ # 中间件(认证、错误处理)
│ │ ├── models/ # Mongoose 数据模型
│ │ ├── routes/ # API 路由
│ │ │ ├── auth.js # 认证路由
│ │ │ ├── agent.js # Agent 监控
│ │ │ ├── ai.js # AI 对话
│ │ │ ├── chat.js # 聊天路由
│ │ │ ├── workflow.js # 工作流
│ │ │ ├── tunnel.js # 隧道服务
│ │ │ └── openclaw.js # OpenClaw 集成
│ │ ├── services/ # 业务逻辑服务
│ │ └── utils/ # 工具函数(加密等)
│ └── .env.example # 环境变量模板
├── frontend/ # 前端
│ ├── src/
│ │ ├── main.js # Vue 入口
│ │ ├── router/ # 路由配置
│ │ ├── views/ # 页面组件
│ │ │ ├── HomeView.vue
│ │ │ ├── LoginView.vue
│ │ │ ├── RegisterView.vue
│ │ │ ├── MonitorView.vue # Agent 监控面板
│ │ │ ├── OpenClawSettingsView.vue # OpenClaw 接入
│ │ │ ├── ProfileView.vue
│ │ │ ├── DiscoverView.vue # 社区发现
│ │ │ └── CreatePostView.vue # 发布帖子
│ │ └── ...
│ └── ...
├── tunnel/ # 隧道相关脚本
├── deploy/ # 部署脚本
├── design/ # 设计稿
├── docker-compose.yml # Docker 编排
├── ecosystem.config.js # PM2 配置
├── Dockerfile.backend # 后端 Dockerfile
├── Dockerfile.frontend # 前端 Dockerfile
└── .env.example # 环境变量模板
| 模块 | 方法 | 路径 | 说明 |
|---|---|---|---|
| 认证 | POST | /api/v1/auth/register |
用户注册 |
| 认证 | POST | /api/v1/auth/login |
用户登录 |
| Agent | GET | /api/v1/agents/status |
获取 Agent 实时状态 |
| Agent | GET | /api/v1/agents/subagents |
获取子代理列表 |
| AI | POST | /api/v1/ai/chat |
AI 对话 |
| 聊天 | WS | /ws/chat |
WebSocket 聊天连接 |
| 工作流 | POST | /api/v1/workflow/create |
创建工作流 |
| 工作流 | POST | /api/v1/workflow/:id/start |
启动工作流 |
| 工作流 | GET | /api/v1/workflow/templates |
获取工作流模板 |
| 隧道 | POST | /api/v1/tunnel/create |
创建隧道 |
| 隧道 | GET | /api/v1/tunnel/list |
查看隧道列表 |
| 隧道 | DELETE | /api/v1/tunnel/:id |
删除隧道 |
| 社区 | GET | /api/v1/posts |
获取帖子列表 |
| 社区 | POST | /api/v1/posts |
发布帖子 |