Files
ai-paas-comparison/docs/05-AGENTS-MiMoCode配置.md
T
qyyfw d9a8a0e93c docs: 补全基础设施文档 (DB设计/API规范/MiMoCode配置)
- 03-数据库设计.md: ER图 + 12张表定义 + Redis数据结构 + Migration策略
- 04-API接口规范.md: OpenAPI 3.0 约定 + 全部接口定义 (Auth/APIKey/LLM/Billing/Registry/Skills/IM/Admin)
- 05-AGENTS-MiMoCode配置.md: MiMo Code 核心配置文件,包含项目结构/技术栈/开发规范/模块说明

至此 docs/ 目录包含完整的6份基础设计文档,可作为 MiMo Code 的上下文输入
2026-06-27 10:51:13 +00:00

187 lines
6.5 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.
# AI PaaS Platform — AGENTS.md(MiMo Code 核心配置)
> 此文件放在项目根目录 `.mimocode/AGENTS.md`,MiMo Code 每次启动时自动加载。
> 这是 MiMo Code 理解整个项目的唯一上下文来源——写得越精确,生成的代码质量越高。
---
# AI PaaS 商业平台
## 项目概述
面向个人开发者的 AI 能力服务平台。提供 Agent、MCP、Skills、IM Bot、LLM 调用等 AI 能力,支持按 Token 计费和订阅制收费。
## 架构模式
微服务架构 + 事件驱动。核心业务自研,基础设施开源。
## 技术栈
- **后端核心**: Go 1.22+ (所有核心服务)
- **AI 服务**: Python 3.11+ (LangFlow, MCP Hub 集成)
- **前端**: React 18 + TypeScript 5+ + Ant Design Pro 6 + ECharts
- **数据库**: PostgreSQL 16 (RLS 多租户隔离)
- **缓存**: Redis 7 (Lua 原子计费)
- **消息队列**: Kafka 3.x (用量上报)
- **向量库**: Milvus 2.x (RAG)
- **认证**: Keycloak 25+ (JWT + API Key)
- **网关**: Apache APISIX 3.15+ (API Gateway)
- **Agent**: LangFlow (工作流编排)
- **MCP**: mcp-hub (MCP 服务管理)
- **监控**: Prometheus + Grafana
## 项目结构
```
ai-paas-platform/
├── .mimocode/
│ └── AGENTS.md ← 本文件
├── docs/ ← 设计文档
│ ├── 01-PRD-产品需求文档.md
│ ├── 02-系统架构设计.md
│ ├── 03-数据库设计.md
│ └── 04-API接口规范.md
├── packages/ ← 前端应用
│ ├── web/ ← 用户 Dashboard (React)
│ └── admin/ ← 管理后台 (React)
├── services/ ← 后端服务 (Go)
│ ├── auth/ ← 认证服务 (:8081)
│ ├── registry/ ← 能力注册中心 (:8082)
│ ├── openapi-gateway/ ← OpenAI 兼容网关 (:8083)
│ ├── billing/ ← 计费引擎 (:8084)
│ ├── skills/ ← Skills 市场 (:8085)
│ ├── admin/ ← 管理后台 API (:8086)
│ ├── im-gateway/ ← IM Bot 网关 (:8087)
│ ├── metering/ ← 用量追踪 (:8090)
│ └── llm-router/ ← LLM 智能路由 (:8091)
├── infra/ ← 基础设施配置
│ ├── keycloak/
│ ├── postgresql/
│ ├── redis/
│ ├── kafka/
│ ├── milvus/
│ └── apisix/
├── deploy/ ← 部署配置
│ ├── docker-compose.yml
│ └── k8s/
└── migrations/ ← 数据库 Migration
├── 001_init.sql
└── ...
```
## 开发规范
### Go 服务
- 遵循 Effective Go + gofmt + golangci-lint
- 每个服务独立 main.go,可独立编译运行
- 服务间通信: 同步用 HTTP/gRPC,异步用 Kafka
- 错误处理: 统一错误码,返回 `{code, message, data}` 格式
- 配置管理: 环境变量 + YAML 配置文件
- 日志: 结构化 JSON 日志 (slog)
### TypeScript 前端
- 遵循 eslint + prettier
- 组件: React 函数组件 + Hooks
- 状态管理: React Query (服务端) + Zustand (客户端)
- 路由: React Router v6
- 样式: Ant Design Pro 内置 + CSS Modules
### Python AI 服务
- 遵循 ruff + black
- 类型注解: 必须
- 异步: asyncio
### 数据库
- 所有表启用 RLS,策略基于 tenant_id
- 所有金额使用整数 (毫 Credit),避免浮点
- Migration 文件名: `{序号}_{描述}.sql`
- 不可变表: credit_transactions, token_usage (无 UPDATE/DELETE)
### Git
- 分支: main (生产), develop (开发), feature/* (功能)
- 提交: Conventional Commits (feat/fix/docs/chore/test)
- PR: 必须通过 CI + Code Review
### 测试
- Go: testing + testify, 覆盖率 > 80%
- TypeScript: vitest + playwright
- 单元测试: 每个服务的核心逻辑
- 集成测试: 服务间调用链
## 核心模块说明
### auth-service (:8081)
- Keycloak 适配器
- JWT 验证中间件
- API Key 验证 (SHA-256 哈希查 DB)
- 租户上下文提取 (JWT claim → tenant_id)
- RBAC: owner > admin > developer > user
### llm-router (:8091)
- 多平台 LLM 对接 (OpenAI 兼容格式)
- 7 个平台: DeepSeek, 千问, 豆包, 智谱, 元宝, 百度, Ollama
- 智能路由: 用户选择 / 成本优先 / 延迟优先
- 故障转移: 主模型不可用自动切换
- 流式响应: SSE 透传
- API Key 加密存储 (AES-256-GCM)
### billing (:8084)
- Credit 模型: 1 Credit = 1000 tokens
- 模型系数: deepseek-chat=1.0, deepseek-reasoner=2.0, doubao-pro=1.5
- Redis Lua 原子操作: 先扣后服 + 幂等 + 可审计
- 订阅套餐: Free/Pro/Team/Enterprise
- 每日对账: Redis ↔ PostgreSQL 一致性检查
### registry (:8082)
- 能力 CRUD (REST + gRPC 双协议)
- 能力类型: agent/mcp/skill/llm/custom
- 版本管理: SemVer
- 状态: draft → pending_review → active → deprecated
- 服务发现: 按类型/标签/状态查询
### metering (:8090)
- Kafka Consumer: 消费 usage.events
- PostgreSQL 持久化: token_usage 表 (按月分区)
- 预聚合: 每小时刷新 usage_summaries
- 用量查询: 按日/周/月/模型/能力统计
### skills (:8085)
- 技能发布/审核/交易
- 计费模式: per_call/per_token/subscription/free
- 分成: 平台 25% / 开发者 75%
- 全文搜索: PostgreSQL GIN 索引
### im-gateway (:8087)
- 多平台适配器: 微信(LangBot) / QQ(OneBot) / 钉钉
- 会话管理: Redis Hash, 24h 过期
- 上下文窗口: 最近 20 条消息
- 指令系统: /help /model /clear /balance
### openapi-gateway (:8083)
- OpenAI 兼容 API: POST /v1/chat/completions
- 请求拦截链: Auth → Balance → LLM → Billing → Response
- 流式 SSE 支持
- 用量异步上报 Kafka
## 计费原则(最重要)
1. **先扣后服**: 先扣减余额,再允许调用
2. **幂等**: 通过 idempotency_key 防重复扣费
3. **原子**: Redis Lua 脚本保证原子性
4. **可审计**: 每笔变动有 trace_id + 原因
5. **实时可见**: Dashboard 余额秒级更新
## LLM 对接
- 统一 OpenAI 兼容格式: POST /v1/chat/completions
- 百度需适配层 (非标准 API)
- 其他平台直接兼容
- 流式: SSE (text/event-stream)
## 部署
- 开发: docker-compose.yml (一键启动)
- 生产: Kubernetes + Helm Charts
- 监控: Prometheus + Grafana
- 日志: 结构化 JSON → Loki
## 重要约束
- 所有 API 必须有 OpenAPI 3.0 规范
- 所有数据库变更必须有 Migration
- 所有金额使用整数 (毫 Credit)
- 所有敏感数据加密 (AES-256)
- 所有关键操作有审计日志