# 方案二:稳扎稳打 — 详细实施计划 > **定位**: 核心服务全部自研,基础设施用开源,架构完全自主可控 > **周期**: 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 平台交叉验证共识*