跳到主要内容

整体架构

系统架构图

员工设备(浏览器/手机)


[portal.sayclaw.ai — 员工前台]
│ GCP SSO / IAP 验证公司邮箱

[portal-api — C端后端(Go)]

├──→ PostgreSQL(用户/实例数据)
├──→ Redis(Session / 限流)
└──→ LiteLLM Proxy → OpenAI / Gemini / Claude

管理员设备


[admin.sayclaw.ai — 后台管理系统](内网访问)
│ GCP IAP + admin 角色验证

[admin-api — 后台后端(Go)]

├──→ PostgreSQL
├──→ BigQuery(审计日志查询)
└──→ Pub/Sub(报警通知)

[LiteLLM Proxy](统一 API 代理)
│ 计量 + 配额控制

[OpenClaw 实例池](ai-jp-1 小龙等节点)

项目结构(Monorepo)

sayclaw/
├── apps/
│ ├── portal/ # C端前端(Vue3 + TypeScript)
│ ├── portal-api/ # C端后端(Go)
│ ├── admin/ # 后台前端(Vue3 + Soybean Admin)
│ └── admin-api/ # 后台后端(Go)
├── packages/
│ ├── shared/ # 公共 DB model + 工具包(Go)
│ ├── ui/ # 共享前端组件库
│ └── types/ # 共享 TypeScript 类型
├── infra/ # GCP / Terraform 配置
└── docs/ # 文档站(Docusaurus,doc.sayclaw.ai)

为什么双后端?

考量单后端双后端(选型)
安全边界共享,有横向提权风险admin-api 内网隔离 ✅
独立扩缩容无法分开C端/后台独立扩 ✅
多租户 SaaS复杂天然隔离 ✅
合规审计需额外说明开箱即用 ✅
开发成本略高(shared 抹平)

决策:面向商业化,安全边界优先,选双后端。

核心组件

GCP IAP(身份认证)

  • 仅允许 @公司域名 邮箱登录
  • 员工离职停用 Workspace 账号即自动失效
  • 签发 JWT(email + 角色),后端验证

LiteLLM Proxy(API 代理)

  • 统一管理所有 AI 模型 Key
  • 员工不直接持有 API Key
  • 按用户计量,支持配额 + 限流

OpenClaw 实例池

  • 每个节点独立运行 OpenClaw Gateway
  • Session Key 隔离各员工对话历史
  • 支持横向扩展