Files
ai-paas-comparison/方案二-详细实施计划.md
T

967 lines
27 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 方案二:稳扎稳打 — 详细实施计划
> **定位**: 核心服务全部自研,基础设施用开源,架构完全自主可控
> **周期**: 20 周(5 个 Phase,每 Phase 4 周)
> **开发工具**: MiMo Code(Quest Mode + Agent Mode + AGENTS.md)
> **技术栈**: Go(核心) + Python(AI) + TypeScript(前端) + PostgreSQL + Redis + Kafka + Milvus
---
## 总览:5 Phase 里程碑
```
Week 1-4 Phase 1: 基座搭建(Auth + DB + Gateway + 项目骨架)
Week 5-8 Phase 2: 核心引擎(LLM Router + Billing + Metering)
Week 9-12 Phase 3: 能力治理(Registry + Skills + Dashboard)
Week 13-16 Phase 4: 生态扩展(IM Bot + MCP + Agent + ACP)
Week 17-20 Phase 5: 集成上线(测试 + 部署 + 监控 + 运营)
```
```
Phase 1 Phase 2 Phase 3 Phase 4 Phase 5
┌──────────────┬──────────────┬──────────────┬──────────────┬──────────────┐
│ 域基础设施 │ 核心引擎 │ 能力治理 │ 生态扩展 │ 集成上线 │
│ │ │ │ │ │
│ ✅ 项目骨架 │ ✅ LLM Router │ ✅ Registry │ ✅ IM Bot GW │ ✅ 全链路测试 │
│ ✅ Keycloak │ ✅ Billing │ ✅ Skills 市场│ ✅ MCP Hub │ ✅ K8s 部署 │
│ ✅ APISIX │ ✅ Metering │ ✅ Dashboard │ ✅ LangFlow │ ✅ 监控告警 │
│ ✅ DB Schema │ ✅ OpenAPI GW │ ✅ Admin │ ✅ ACP 协议 │ ✅ 文档上线 │
└──────────────┴──────────────┴──────────────┴──────────────┴──────────────┘
▲ ▲ ▲ ▲ ▼
└───────────────┴───────────────┴───────────────┴───── 可运行交付 ─┘
```
---
## Phase 1:基座搭建(Week 1-4)
> **目标**: 项目可运行,基础设施就绪,Auth + Gateway + DB 全部跑通
> **结束标志**: `docker-compose up` 启动所有服务,可注册用户、登录、通过网关调用 API
### 1.1 项目骨架初始化(Day 1-2)
**MiMo Code Quest Prompt**:
```
初始化 AI PaaS 平台项目骨架。
项目名: ai-paas-platform
Monorepo 结构 (pnpm workspace):
- packages/web (React + TypeScript + Ant Design Pro)
- packages/admin (React + TypeScript + Ant Design Pro)
- services/gateway (Go)
- services/auth (Go)
- services/billing (Go)
- services/metering (Go)
- services/registry (Go)
- services/llm-router (Go)
- services/skills (Go)
- services/im-gateway (Go)
- infra/keycloak (Docker)
- infra/postgresql (Docker + migrations)
- infra/redis (Docker)
- infra/kafka (Docker)
- infra/milvus (Docker)
- infra/apisix (Docker)
- deploy/docker-compose.yml
生成:
1. 根目录 Makefile, docker-compose.yml, .env.example
2. 各 Go 服务的基础 main.go + health endpoint
3. 各 React 应用的基础 vite 配置
4. PostgreSQL migration 初始脚本 (001_init.sql)
5. .mimocode/AGENTS.md 配置文件
```
**交付物**:
- [ ] Monorepo 目录结构
- [ ] docker-compose.yml 一键启动所有基础设施
- [ ] 各服务 health endpoint 可访问
- [ ] AGENTS.md 配置完成
### 1.2 数据库 Schema 设计(Day 3-5)
**MiMo Code Quest Prompt**:
```
设计 AI PaaS 平台的 PostgreSQL 数据库 Schema。
核心表:
1. tenants (租户) - id, name, plan, credit_balance, status, created_at
2. users (用户) - id, tenant_id, email, name, role, api_key_hash, status
3. capabilities (能力) - id, tenant_id, name, type, version, endpoint, protocol, status, pricing_config
4. capability_versions (能力版本) - id, capability_id, version, endpoint, changelog, status
5. credit_transactions (Credit 流水) - id, tenant_id, type, amount, balance_after, trace_id, idempotency_key
6. token_usage (Token 用量) - id, tenant_id, capability_id, model, prompt_tokens, completion_tokens, cost_credits, trace_id (按月分区)
7. subscriptions (订阅) - id, tenant_id, plan, credits_included, credits_used, period_start, period_end, status
8. skills (技能) - id, tenant_id, name, description, pricing_model, price_credits, status
9. skill_purchases (技能购买) - id, user_id, skill_id, amount_credits
10. im_sessions (IM 会话) - id, tenant_id, platform, user_identifier, bot_id, status
要求:
- 所有表启用 RLS (Row Level Security),策略基于 tenant_id
- 所有表有 created_at/updated_at
- token_usage 按月分区
- 外键关系完整
- 索引覆盖高频查询
```
**交付物**:
- [ ] 001_init.sql 完整建表脚本
- [ ] RLS 策略配置
- [ ] 种子数据脚本 (开发环境)
### 1.3 Keycloak 认证服务(Day 6-10)
**MiMo Code Quest Prompt**:
```
部署 Keycloak 并实现多租户认证适配器。
1. Docker 部署 Keycloak 25.x
2. 配置 Realm: ai-paas
3. 配置 Clients:
- web-app (PKCE, React 前端)
- admin-app (PKCE, 管理后台)
- api-service (Client Credentials, 服务间调用)
4. 实现 Go 适配器 (services/auth):
- JWT 验证中间件
- API Key 验证 (查 DB)
- 租户上下文提取 (从 JWT claim 提取 tenant_id)
- RBAC 角色: owner, admin, developer, user
5. 实现用户注册/登录 API:
- POST /api/v1/auth/register (邮箱+密码)
- POST /api/v1/auth/login (返回 JWT)
- POST /api/v1/auth/refresh
- GET /api/v1/auth/me (当前用户信息)
6. APISIX 集成: jwt-auth 插件配置
```
**交付物**:
- [ ] Keycloak Docker 配置
- [ ] Go auth 中间件 (JWT + API Key)
- [ ] Auth API (注册/登录/刷新)
- [ ] APISIX jwt-auth 插件配置
- [ ] RBAC 角色体系
### 1.4 Apache APISIX 网关(Day 11-14)
**MiMo Code Quest Prompt**:
```
部署 Apache APISIX 3.15+ 并配置核心插件。
1. Docker 部署 APISIX + etcd
2. 配置以下插件:
- jwt-auth: JWT 令牌验证
- key-auth: API Key 验证
- limit-count: 按租户限流 (1000/min)
- limit-req: 请求限速
- api-breaker: 熔断保护
- proxy-rewrite: 动态路由
- prometheus: 指标采集
- cors: 跨域配置
3. 初始路由配置:
- /api/v1/auth/* → auth-service:8081
- /api/v1/capabilities/* → registry-service:8082
- /api/v1/llm/* → llm-router:8083
- /api/v1/billing/* → billing-service:8084
- /api/v1/skills/* → skills-service:8085
- /api/v1/admin/* → admin-service:8086
4. 实现动态路由更新机制 (通过 etcd 监听)
```
**交付物**:
- [ ] APISIX Docker 配置
- [ ] 插件配置文件
- [ ] 初始路由表
- [ ] 动态路由更新机制
---
## Phase 2:核心引擎(Week 5-8)
> **目标**: LLM Router + 计费引擎 + 用量追踪 全部跑通,可以调用 LLM 并计费
> **结束标志**: 用户通过 API Key 调用 LLM,自动扣费,用量可查
### 2.1 LLM Provider Router(Day 15-20)
**MiMo Code Quest Prompt**:
```
实现 LLM Provider Router 服务 (Go)。
功能:
1. 多平台 LLM 对接 (OpenAI 兼容格式):
- DeepSeek: https://api.deepseek.com/v1
- 千问: https://dashscope.aliyuncs.com/compatible-mode/v1
- 豆包: https://ark.cn-beijing.volces.com/api/v3
- 百度: 适配层封装为 OpenAI 格式
- 元宝: https://api.yuanbao.tencent.com/v1
- 智谱: https://open.bigmodel.cn/api/paas/v4
- 本地 Ollama: http://localhost:11434/v1
2. 智能路由:
- 按用户选择路由
- 按成本自动选择最便宜模型
- 按延迟自动选择最快模型
- 故障转移: 主模型不可用时自动切换
3. API:
- POST /v1/chat/completions (OpenAI 兼容)
- GET /api/v1/models (可用模型列表)
- GET /api/v1/providers (提供商状态)
4. 数据模型:
- providers: id, name, base_url, api_key_encrypted, models_json, status, priority
- model_routing_rules: model, provider_id, priority, is_default
5. 配置:
- YAML 配置文件 + DB 动态更新
- API Key 加密存储 (AES-256)
- 连接池管理
- 超时配置 (默认 30s)
```
**交付物**:
- [ ] llm-router Go 服务
- [ ] 7 个平台适配器
- [ ] 智能路由逻辑
- [ ] 故障转移机制
- [ ] OpenAI 兼容 API
### 2.2 Token 计费引擎(Day 21-27)
**MiMo Code Quest Prompt**:
```
实现 Token 计费引擎 (Go + Redis Lua)。
核心设计原则:
- 先扣后服: 先扣减余额,再允许调用
- 幂等: 通过 idempotency_key 防重复扣费
- 原子: Redis Lua 脚本保证原子性
- 可审计: 每笔变动有 trace_id
Credit 模型:
- 1 Credit = 1000 tokens (默认)
- 不同模型有系数: deepseek-chat=1.0, deepseek-reasoner=2.0, gpt-4o=10.0
Redis Lua 脚本 (metering.lua):
1. 幂等检查 (billing:idempotency:{tenant}:{key})
2. 余额检查 (billing:balance:{tenant})
3. 扣减余额 (DECRBY)
4. 记录幂等结果 (SET + 24h TTL)
5. 更新今日统计 (billing:daily:{tenant}:{date})
Go 服务 (services/billing):
- POST /api/v1/billing/meter (实时计量,调用 Lua)
- POST /api/v1/billing/topup (充值)
- GET /api/v1/billing/balance (查询余额)
- GET /api/v1/billing/transactions (流水查询)
- POST /api/v1/billing/subscribe (订阅管理)
- GET /api/v1/billing/subscription (订阅状态)
订阅套餐:
- Free: ¥0/月, 100 Credits, 2 QPS
- Pro: ¥99/月, 50000 Credits, ¥0.01/Credit 超出, 20 QPS
- Team: ¥499/月, 300000 Credits, ¥0.008/Credit 超出, 100 QPS
Redis Key 设计:
- billing:balance:{tenant_id} → String (毫 Credit)
- billing:idempotency:{tenant_id}:{key} → Hash
- billing:daily:{tenant_id}:{YYYY-MM-DD} → Hash
- billing:subscription:{tenant_id} → Hash
```
**交付物**:
- [ ] metering.lua 脚本
- [ ] billing-service Go 服务
- [ ] 计费 API (6 个接口)
- [ ] 订阅套餐配置
- [ ] 单元测试 (Lua + Go)
### 2.3 用量追踪 Kafka → PostgreSQL(Day 28-32)
**MiMo Code Quest Prompt**:
```
实现用量追踪服务 (Go)。
架构:
LLM Router → Kafka Topic (usage.events) → Metering Consumer → PostgreSQL
Kafka Topic:
- topic: usage.events
- partition_key: tenant_id
- retention: 7d
Consumer (services/metering):
1. 消费 usage.events
2. 写入 token_usage 表 (按月分区)
3. 更新 tenant_balances 表 (从 Redis 同步)
4. 异常处理: 消费失败重试 3 次后进入死信队列
API:
- GET /api/v1/usage/summary?period=daily&date=2026-06-27 (用量汇总)
- GET /api/v1/usage/detail?start=...&end=... (用量明细)
- GET /api/v1/usage/by-model (按模型统计)
- GET /api/v1/usage/by-capability (按能力统计)
PostgreSQL 表:
- token_usage (按月分区,不可变)
- tenant_balances (实时同步)
- usage_summaries (预聚合,每小时刷新)
```
**交付物**:
- [ ] Kafka producer (在 LLM Router 中)
- [ ] metering-service Go 服务
- [ ] Consumer 逻辑
- [ ] 用量查询 API
- [ ] 预聚合定时任务
### 2.4 OpenAPI 网关(Day 33-35)
**MiMo Code Quest Prompt**:
```
实现平台 OpenAPI 网关 (Go)。
功能:
1. 对外暴露统一 OpenAI 兼容 API:
- POST /v1/chat/completions
- GET /v1/models
- POST /v1/embeddings
2. 内部路由到 LLM Router
3. 请求拦截链:
- API Key 验证 → 租户上下文 → 余额检查 → 调用 LLM Router → 计费扣减 → 返回结果
4. 流式响应支持 (SSE)
5. 用量上报 (异步发 Kafka)
API:
- POST /v1/chat/completions (OpenAI 兼容,对外入口)
- POST /v1/capabilities/{id}/invoke (能力调用)
- GET /v1/capabilities (能力列表)
```
**交付物**:
- [ ] openapi-gateway Go 服务
- [ ] OpenAI 兼容 API
- [ ] 流式 SSE 支持
- [ ] 请求拦截链
---
## Phase 3:能力治理(Week 9-12)
> **目标**: 能力注册中心 + Skills 市场 + 用户 Dashboard + 管理后台
> **结束标志**: 用户可在 Dashboard 管理能力、购买技能、查看用量
### 3.1 Capability Registry(Day 36-42)
**MiMo Code Quest Prompt**:
```
实现能力注册中心 (Go + gRPC/REST)。
功能:
1. 能力 CRUD:
- POST /api/v1/capabilities (注册)
- DELETE /api/v1/capabilities/{id} (注销)
- GET /api/v1/capabilities (列表,支持 type/status/tags 过滤)
- GET /api/v1/capabilities/{id} (详情)
- PUT /api/v1/capabilities/{id} (更新)
- POST /api/v1/capabilities/{id}/versions (发布新版本)
2. 能力类型:
- agent: AI 智能体
- mcp: MCP 服务
- skill: 技能
- llm: LLM 提供商
- custom: 自定义 OpenAPI 应用
3. 元数据:
- name, type, version, description, tags
- endpoint (调用地址)
- protocol (rest/grpc/websocket)
- pricing_config (计费配置)
- dependencies (依赖的其他能力)
- status: active / deprecated / beta
4. 服务发现:
- 按类型查询
- 按标签查询
- 按状态过滤
5. gRPC 接口 (服务间调用):
- RegisterCapability
- DeregisterCapability
- GetCapability
- ListCapabilities
- HealthCheck
```
**交付物**:
- [ ] registry-service Go 服务
- [ ] REST API (6 个接口)
- [ ] gRPC 接口 (5 个方法)
- [ ] 能力发现/查询
- [ ] 版本管理
### 3.2 Skills 市场(Day 43-47)
**MiMo Code Quest Prompt**:
```
实现 Skills 市场服务 (Go)。
功能:
1. 技能管理:
- POST /api/v1/skills (发布技能)
- GET /api/v1/skills (市场列表,支持搜索/分类/排序)
- GET /api/v1/skills/{id} (技能详情)
- PUT /api/v1/skills/{id} (更新)
- DELETE /api/v1/skills/{id} (下架)
2. 技能购买:
- POST /api/v1/skills/{id}/purchase (购买,扣 Credit)
- GET /api/v1/skills/purchased (已购列表)
- 扣费通过 Billing Engine API
3. 计费模式:
- per_call: 每次调用扣费
- per_token: 按 Token 扣费
- subscription: 订阅制
- free: 免费
4. 分成:
- 平台抽成 25%
- 开发者分成 75%
- 预留 skill_earnings 表
5. 搜索:
- PostgreSQL 全文搜索 (中文分词: zhparser)
- 按分类、标签、评分排序
```
**交付物**:
- [ ] skills-service Go 服务
- [ ] 技能 CRUD API
- [ ] 购买流程 (调用 Billing)
- [ ] 全文搜索
- [ ] 分成逻辑 (预留)
### 3.3 用户 Dashboard(Day 48-54)
**MiMo Code Quest Prompt**:
```
实现用户 Dashboard (React + TypeScript + Ant Design Pro)。
页面:
1. 首页概览:
- Credit 余额 + 充值按钮
- 今日/本月用量图表 (ECharts)
- 快捷操作 (创建能力、浏览市场)
2. API Key 管理:
- 创建/删除 API Key
- Key 使用统计
3. 用量详情:
- 按日/周/月图表
- 按模型/能力分类统计
- 导出 CSV
4. 账单中心:
- Credit 流水记录
- 订阅管理 (升级/降级/取消)
- 充值历史
5. 我的能力:
- 已创建的能力列表
- 已购买的技能
6. 设置:
- 个人信息
- 通知偏好
技术:
- React 18 + TypeScript + Ant Design Pro 6
- ECharts 图表
- React Query 数据管理
- React Router 路由
```
**交付物**:
- [ ] web React 应用
- [ ] 6 个页面
- [ ] API 对接
- [ ] 响应式设计
### 3.4 管理后台(Day 55-58)
**MiMo Code Quest Prompt**:
```
实现管理后台 (React + TypeScript + Ant Design Pro)。
页面:
1. 仪表盘:
- 总用户数、总租户数、总 API 调用量
- 收入统计
- 系统状态
2. 用户管理:
- 用户列表 (搜索/过滤/分页)
- 用户详情
- 封禁/解封
3. 租户管理:
- 租户列表
- 租户详情 (订阅/用量/余额)
- 调整余额
4. 能力审核:
- 待审核能力列表
- 审核通过/拒绝
5. 系统配置:
- LLM 提供商配置
- 订阅套餐配置
- 全局限流配置
6. 监控:
- API 调用趋势
- 错误率
- 响应时间
```
**交付物**:
- [ ] admin React 应用
- [ ] 6 个管理页面
- [ ] RBAC 权限控制
---
## Phase 4:生态扩展(Week 13-16)
> **目标**: IM Bot + MCP + Agent + ACP 全部接入
> **结束标志**: 用户可通过微信/QQ 与 AI 对话,可使用 MCP 工具,可创建 Agent
### 4.1 IM Bot 网关(Day 59-65)
**MiMo Code Quest Prompt**:
```
实现 IM Bot 网关 (Go)。
功能:
1. 多平台适配器:
- 微信 (通过 LangBot/OpenClaw 协议)
- QQ (通过 go-cqhttp 协议)
- 钉钉 (通过钉钉开放平台 API)
2. 统一路由:
- 消息接收 → 平台识别 → 上下文注入 → 调用 LLM Router → 回复
- 会话管理 (Redis 存储上下文)
3. API:
- POST /api/v1/im/callback/{platform} (平台回调)
- GET /api/v1/im/sessions (会话列表)
- GET /api/v1/im/sessions/{id}/messages (消息历史)
4. 配置:
- 每个平台独立配置 (token, secret, etc.)
- 每个租户独立的 bot 实例
5. 消息格式:
- 文本/图片/文件
- Markdown 渲染
- 按钮交互
```
**交付物**:
- [ ] im-gateway Go 服务
- [ ] 微信适配器 (集成 LangBot)
- [ ] QQ 适配器
- [ ] 钉钉适配器
- [ ] 会话管理
### 4.2 MCP Hub 集成(Day 66-68)
**MiMo Code Quest Prompt**:
```
集成 mcp-hub 开源服务。
1. Docker 部署 mcp-hub
2. 与 Capability Registry 联动:
- MCP Server 注册时自动在 Registry 创建 capability 记录
- Registry 中 MCP 类型能力自动同步到 mcp-hub
3. API 代理:
- /api/v1/mcp/servers → mcp-hub API
- /api/v1/mcp/tools → mcp-hub 工具列表
- /api/v1/mcp/call → mcp-hub 工具调用 (经过计费)
4. 计费集成:
- MCP 工具调用经过 Billing Engine 扣费
```
**交付物**:
- [ ] mcp-hub Docker 配置
- [ ] Registry 联动逻辑
- [ ] MCP API 代理
- [ ] 计费集成
### 4.3 LangFlow Agent 集成(Day 69-73)
**MiMo Code Quest Prompt**:
```
集成 LangFlow 开源服务。
1. Docker 部署 LangFlow
2. 与 Capability Registry 联动:
- LangFlow Flow 发布时自动在 Registry 创建 capability 记录
- 支持 Flow 版本管理
3. API 代理:
- /api/v1/agent/flows → LangFlow Flow 列表
- /api/v1/agent/flows/{id}/run → 运行 Flow (经过计费)
- /api/v1/agent/flows/{id}/chat → 流式对话 (SSE)
4. 计费集成:
- Agent 调用经过 Billing Engine 扣费
5. 用户界面:
- Dashboard 中嵌入 LangFlow 编辑器 (iframe)
- Flow 管理页面
```
**交付物**:
- [ ] LangFlow Docker 配置
- [ ] Registry 联动逻辑
- [ ] Agent API 代理
- [ ] 计费集成
### 4.4 ACP 协议基础(Day 74-77)
**MiMo Code Quest Prompt**:
```
实现 ACP (Agent Communication Protocol) 基础。
1. 协议定义:
- Agent 间消息格式 (JSON)
- 消息类型: request, response, notification, error
- 路由: 基于 agent_id 寻址
2. 消息总线:
- 基于 Kafka 的 Agent 消息队列
- topic: agent.messages.{agent_id}
- 支持同步/异步通信
3. API:
- POST /api/v1/acp/send (发送消息)
- GET /api/v1/acp/messages (接收消息)
- GET /api/v1/acp/agents (已注册 Agent 列表)
4. 安全:
- Agent 间通信需要认证
- 消息签名验证
```
**交付物**:
- [ ] ACP 协议定义
- [ ] 消息总线实现
- [ ] ACP API
- [ ] 安全机制
---
## Phase 5:集成上线(Week 17-20)
> **目标**: 全链路测试 + 生产部署 + 监控 + 文档
> **结束标志**: 平台可在生产环境运行,有完整文档
### 5.1 全链路测试(Day 78-83)
**MiMo Code Quest Prompt**:
```
编写 AI PaaS 平台的全链路测试。
1. 单元测试:
- 各 Go 服务核心逻辑
- Redis Lua 脚本测试
- TypeScript 前端组件测试
2. 集成测试:
- Auth → LLM Router → Billing 完整流程
- Capability 注册 → 调用 → 计费流程
- Skills 购买 → 使用 → 分成流程
3. E2E 测试:
- 用户注册 → 登录 → 创建 API Key → 调用 LLM → 查看用量
- 管理员登录 → 审核能力 → 查看统计
4. 压力测试:
- LLM Router 并发 (100 QPS)
- Billing Engine 并发 (1000 TPS)
- API Gateway 压力 (500 RPS)
5. 测试工具:
- Go: testing + testify
- TypeScript: vitest + playwright
- 压力: k6
```
**交付物**:
- [ ] 单元测试覆盖率 > 80%
- [ ] 集成测试套件
- [ ] E2E 测试脚本
- [ ] 压力测试报告
### 5.2 生产部署(Day 84-88)
**MiMo Code Quest Prompt**:
```
准备 AI PaaS 平台的生产部署配置。
1. Docker Compose (单机部署):
- 所有服务容器化
- 环境变量配置
- 健康检查
- 自动重启
2. Kubernetes (集群部署):
- Helm Chart 编写
- Deployment + Service + Ingress
- ConfigMap + Secret
- HPA 自动扩缩容
- PDB (Pod Disruption Budget)
3. 数据库:
- PostgreSQL 备份策略 (pg_dump 每日)
- Redis 持久化配置
- Kafka 备份
4. 域名 + SSL:
- Nginx Ingress 配置
- Let's Encrypt 自动证书
5. 环境区分:
- dev: docker-compose
- staging: k8s namespace
- production: k8s namespace
```
**交付物**:
- [ ] docker-compose.prod.yml
- [ ] Helm Chart
- [ ] 部署脚本
- [ ] 环境配置模板
### 5.3 监控告警(Day 89-91)
**MiMo Code Quest Prompt**:
```
配置 AI PaaS 平台的监控告警系统。
1. Prometheus:
- 各服务 metrics 端点
- 自定义指标:
- llm_router_request_total (by provider, model, status)
- billing_credit_deduction_total (by tenant)
- api_gateway_request_duration_seconds
- 采集配置
2. Grafana:
- Dashboard 配置:
- 平台总览 (请求数/错误率/延迟)
- LLM Router (各提供商状态/延迟)
- Billing (收入/扣费趋势)
- 用户活跃度
- 告警规则
3. 告警:
- 错误率 > 5% → 告警
- 延迟 P99 > 5s → 告警
- 余额 < 阈值 → 通知用户
- 服务不可用 → 立即告警
4. 日志:
- 结构化日志 (JSON)
- 日志级别: debug/info/warn/error
- 集中收集 (Loki 或 ELK)
```
**交付物**:
- [ ] Prometheus 配置
- [ ] Grafana Dashboard JSON
- [ ] 告警规则
- [ ] 日志配置
### 5.4 文档上线(Day 92-95)
**MiMo Code Quest Prompt**:
```
编写 AI PaaS 平台的完整文档。
1. API 文档:
- OpenAPI 3.0 规范 (api-spec.yaml)
- 每个接口的详细说明
- 请求/响应示例
- 错误码列表
2. 开发者文档:
- 快速开始指南
- 认证说明 (JWT + API Key)
- SDK 使用示例 (Python/Go/TypeScript)
- MCP Server 接入指南
- Agent 发布指南
3. 运维文档:
- 部署指南
- 配置说明
- 故障排查
- 备份恢复
4. 架构文档:
- 系统架构图
- 数据流图
- 数据库 ER 图
- 部署架构图
5. 用户文档:
- 注册/登录指南
- API Key 使用指南
- 用量查看指南
- 订阅管理指南
```
**交付物**:
- [ ] API 文档 (OpenAPI 3.0)
- [ ] 开发者文档站
- [ ] 运维文档
- [ ] 架构文档
- [ ] 用户文档
---
## MiMo Code 核心配置 (.mimocode/AGENTS.md)
```markdown
# AI PaaS Platform
## 架构
- Go 后端服务 (API Gateway, LLM Router, Billing, Registry, Metering, Skills, IM Gateway)
- Python AI 服务 (LangFlow, MCP Hub)
- TypeScript 前端 (React + Ant Design Pro: web + admin)
- Infrastructure: PostgreSQL + Redis + Kafka + Milvus + Keycloak + APISIX
## 技术栈
- Go 1.22+ (高服务: 网关, 路由, 计费, 注册中心)
- Python 3.11+ (AI 服务: LangFlow, MCP)
- TypeScript 5+ (前端: React 18, Ant Design Pro 6, ECharts)
- PostgreSQL 16 (主数据库, RLS 多租户隔离)
- Redis 7 (缓存 + Lua 原子计费)
- Kafka 3.x (事件总线: 用量上报)
- Milvus 2.x (向量数据库: RAG)
- Keycloak 25+ (认证授权)
- Apache APISIX 3.15+ (API Gateway)
- Docker + K8s (部署)
- Prometheus + Grafana (监控)
## 开发规范
- Go: gofmt + golangci-lint, 遵循 Effective Go
- Python: ruff + black
- TypeScript: eslint + prettier
- 所有 API 必须有 OpenAPI 3.0 规范
- 所有数据库变更必须有 Migration 脚本 (版本号递增)
- Git: Conventional Commits (feat/fix/docs/chore)
- 测试: 单元测试覆盖率 > 80%
## 核心模块
- services/auth: Keycloak 适配器 + JWT/API Key 验证
- services/gateway: APISIX 自研插件
- services/llm-router: 多平台 LLM 智能路由 + 故障转移
- services/billing: Token 计费引擎 (Redis Lua 原子操作)
- services/metering: 用量追踪 (Kafka → PostgreSQL)
- services/registry: 能力注册中心 (gRPC + REST)
- services/skills: Skills 市场
- services/im-gateway: IM Bot 多平台网关
## 数据库
- 所有表启用 RLS,策略基于 tenant_id
- token_usage 按月分区
- credit_transactions 不可变 (追加写)
- 所有金额使用整数 (毫 Credit),避免浮点
## 计费原则
- 先扣后服: 先扣减余额,再允许调用
- 幂等: 通过 idempotency_key 防重复扣费
- 原子: Redis Lua 脚本保证原子性
- 可审计: 每笔变动有 trace_id + 原因
## LLM 对接
- 统一 OpenAI 兼容格式: POST /v1/chat/completions
- 百度需要适配层 (非标准 API)
- 其他平台直接兼容
- API Key 加密存储 (AES-256)
```
---
## 风险与对策
| 风险 | 等级 | 影响 | 对策 |
|------|------|------|------|
| 开发周期长 | 高 | 20 周投入大 | 分 Phase 交付,每 Phase 结束有可运行成果 |
| 技术复杂度高 | 中 | 多服务协调 | MiMo Code 辅助生成骨架,降低编码量 |
| 单人开发 | 中 | 人力瓶颈 | 严格控制范围,Phase 内任务优先级排序 |
| APISIX 学习曲线 | 低 | 网关配置复杂 | 文档完善,社区活跃,插件机制成熟 |
| Kafka 运维 | 中 | 消息积压 | 监控 Consumer Lag,自动扩缩容 |
| 数据一致性 | 中 | 计费准确性 | Redis Lua 原子操作 + 每日对账 |
| LLM 平台 API 变动 | 低 | 适配器失效 | 抽象 Provider 接口,变动时只改适配器 |
---
## 每日开发节奏建议
```
09:00-09:15 每日站会 (自检: 昨日完成/今日计划/阻塞)
09:15-12:00 MiMo Code 核心开发 (Quest Mode / Agent Mode)
12:00-13:30 午休
13:30-15:00 MiMo Code 继续开发
15:00-15:30 Code Review + 测试
15:30-17:00 MiMo Code 补充测试 + 文档
17:00-17:30 Git 提交 + 推送 + 更新进度
```
---
## Phase 完成检查清单
每个 Phase 结束时,必须通过以下检查:
### Phase 1 检查
- [ ] `docker-compose up` 所有服务正常启动
- [ ] Keycloak 可注册/登录用户
- [ ] APISIX 可转发请求到后端服务
- [ ] 数据库 Schema 已创建,RLS 策略生效
- [ ] 各服务 health endpoint 返回 200
### Phase 2 检查
- [ ] 可通过 API Key 调用 LLM (至少 3 个平台)
- [ ] 调用后自动扣费,余额正确
- [ ] 用量数据写入 PostgreSQL
- [ ] 流式响应 (SSE) 正常工作
- [ ] 故障转移测试通过 (关闭主模型,自动切换)
### Phase 3 检查
- [ ] 可注册新能力 (Agent/MCP/Skill)
- [ ] 可在市场购买技能
- [ ] Dashboard 显示正确的余额和用量
- [ ] 管理后台可管理用户和租户
- [ ] 搜索功能正常
### Phase 4 检查
- [ ] IM Bot 可收发消息 (至少 1 个平台)
- [ ] MCP 工具可调用并计费
- [ ] LangFlow Flow 可运行并计费
- [ ] ACP 消息可发送和接收
### Phase 5 检查
- [ ] 单元测试覆盖率 > 80%
- [ ] 全链路 E2E 测试通过
- [ ] 压力测试报告 (目标: 500 RPS)
- [ ] Docker Compose 生产配置可用
- [ ] Grafana Dashboard 正常显示
- [ ] API 文档完整 (OpenAPI 3.0)
- [ ] 开发者文档可访问
---
*文档版本: 1.0 | 更新日期: 2026-06-27 | 基于 5 平台交叉验证共识*