feat: 方案二详细实施计划 - 5 Phase 20周完整拆解

This commit is contained in:
qyyfw committed 2026-06-27 10:21:15 +00:00
1 parent 2874e8dc90
commit 67c3270aad
1 file changed
+967
+967
View File
@@ -0,0 +1,967 @@
# 方案二:稳扎稳打 — 详细实施计划
> **定位**: 核心服务全部自研,基础设施用开源,架构完全自主可控
> **周期**: 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 平台交叉验证共识*