Files
ai-paas-comparison/docs/06-MiMoCode实操指南.md

296 lines
9.0 KiB
Markdown
Raw Permalink 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.
# MiMo Code 投喂实操指南
> 本指南告诉 MiMo Code **怎么用、先喂什么、每次喂多少**。
> 核心原则:**每次只给它当前任务需要的上下文,不要一次全塞。**
---
## 1. 项目目录结构(先搭好骨架)
```
QihuAI/
├── .mimocode/
│ └── AGENTS.md ← 【头】永远加载,每次对话自动读
├── docs/ ← 【尾】按需读取,不自动加载
│ ├── 01-PRD-产品需求文档.md
│ ├── 02-系统架构设计.md
│ ├── 03-数据库设计.md
│ ├── 04-API接口规范.md
│ └── 05-AGENTS-MiMoCode配置.md
├── services/ ← 代码目录(逐步填充)
├── packages/ ← 前端代码
├── deploy/
│ └── docker-compose.yml
└── README.md
```
## 2. 投喂顺序:三步走
### 第一步:搭骨架(头文件)
```
在你的开发机上执行:
mkdir -p QihuAI/.mimocode
mkdir -p QihuAI/docs
mkdir -p QihuAI/services
mkdir -p QihuAI/packages/web
mkdir -p QihuAI/deploy
# 把 docs/ 复制过去
cp docs/*.md QihuAI/docs/
# 把 AGENTS.md 放到 .mimocode/ 下
cp docs/05-AGENTS-MiMoCode配置.md QihuAI/.mimocode/AGENTS.md
# 用 VS Code 打开
code QihuAI
```
### 第二步:启动 MiMo Code,开始对话
打开 VS Code 后,MiMo Code 会**自动读取 `.mimocode/AGENTS.md`**。
然后你**每次给一个具体任务**,像跟人说话一样:
---
## 3. 每次对话怎么喂(实战示例)
### 🔹 对话 1:初始化项目结构
```
你: 根据 .mimocode/AGENTS.md 和 docs/02-系统架构设计.md,
创建整个项目的目录结构,包括:
1. services/ 下的 6 个 FastAPI 服务骨架(每个有 main.py + config.py + requirements.txt)
2. deploy/docker-compose.yml(含 PostgreSQL + Redis + Kafka + Casdoor + NEW API + APISIX)
3. pyproject.toml(顶层依赖管理)
4. README.md
先创建骨架,不要写业务逻辑。
```
> MiMo Code 会读 AGENTS.md(自动)+ 指定的 docs/02(按需读)
### 🔹 对话 2:写计费引擎
```
你: 参考 .mimocode/AGENTS.md、docs/03-数据库设计.md、docs/04-API接口规范.md,
实现 ai-paas-billing 服务。
请先读 docs/03-数据库设计.md 中的 credit_transactions 表定义,
然后实现:
1. Redis Lua 原子扣费脚本(先扣后服+幂等)
2. POST /api/v1/billing/subscribe(订阅管理)
3. GET /api/v1/billing/transactions(流水查询)
4. POST /api/v1/billing/topup(充值)
使用 FastAPI + Redis + PostgreSQL,遵循 ruff + black 格式。
```
> MiMo Code 读 AGENTS.md(自动)+ docs/03 + docs/04(按需)
### 🔹 对话 3:写前端登录页
```
你: 参考 docs/04-API接口规范.md 中的认证接口定义,
实现 Web 前端的登录/注册页面。
使用 React + TypeScript + Ant Design Pro。
页面:
1. 登录页(手机号+验证码 / 邮箱+密码)
2. 注册页(手机号+验证码)
3. 实名认证页(姓名+身份证号)
4. 个人中心页(显示订阅状态、余额)
API 对接: BASE_URL = http://localhost:8080
```
### 🔹 对话 4:写 LLM 调用网关
```
你: 实现 ai-paas-gateway 的核心 LLM 调用链路。
参考:
- .mimocode/AGENTS.md(整体架构)
- docs/04-API接口规范.md 第5节 LLM 调用接口
调用链:
1. 接收请求 → JWT/API Key 验证(查 Casdoor)
2. 检查用户状态(订阅/欠费)
3. Redis Lua 扣费
4. 转发到 NEW API(http://new-api:3000/v1/chat/completions)
5. 流式 SSE 透传回客户端
6. 异步上报用量到 Kafka
特别注意: 流式响应不能缓冲,要实时透传。
```
---
## 4. 关键原则
### 原则 1:头永远读,尾按需喂
```
┌─────────────────────────────────────────┐
│ .mimocode/AGENTS.md │ ← 【头】每次自动加载
│ 包含: 项目概述、技术栈、开发规范、 │ MiMo Code 自动读
│ 核心模块说明、计费原则 │
│ 大小: 控制在 300-500 行以内 │ 不要太大,否则噪音多
├─────────────────────────────────────────┤
│ docs/01-PRD-产品需求文档.md │ ← 【尾】按需读取
│ docs/02-系统架构设计.md │ 你告诉 MiMo Code
│ docs/03-数据库设计.md │ "请读 docs/03"
│ docs/04-API接口规范.md │ 它才会去读
│ docs/05-AGENTS-MiMoCode配置.md │
└─────────────────────────────────────────┘
```
### 原则 2:每次只给一个任务
```
❌ 错误: "把所有服务都写完"
✅ 正确: "先写 billing 服务的 Redis Lua 扣费脚本"
```
### 原则 3:明确告诉它读哪个文件
```
❌ 错误: "参考设计文档写代码"(它不知道读哪个)
✅ 正确: "参考 docs/03-数据库设计.md 中的 credit_transactions 表定义"
```
### 原则 4:先骨架,后逻辑
```
第一轮: 创建项目结构 + 所有 main.py 骨架(空路由)
第二轮: 逐个服务填充业务逻辑
第三轮: 服务间联调
第四轮: 前端对接
```
### 原则 5:遇到问题直接问 MiMo Code
```
你: 我们要对接阿里云实名认证 API,帮我调研一下接入方式,
然后写一个 FastAPI 的 /api/v1/auth/verify 接口。
MiMo Code 会自动搜索、调研、然后写出代码。
```
---
## 5. 完整开发顺序
### Phase 1(第 1-3 周): 基座搭建
| 对话# | 任务 | 喂什么文件 | 预计输出 |
|-------|------|-----------|---------|
| 1 | 项目骨架 | AGENTS.md + docs/02 | 目录结构 + docker-compose |
| 2 | 数据库初始化 | AGENTS.md + docs/03 | migrations/ + init.sql |
| 3 | Casdoor 配置 | AGENTS.md + docs/02 | casdoor/ 配置文件 |
| 4 | NEW API 配置 | AGENTS.md + docs/02 | new-api/ 配置文件 |
| 5 | gateway 骨架 | AGENTS.md + docs/04 | main.py + 路由 + 中间件 |
| 6 | JWT 验证 | AGENTS.md + docs/04 | auth middleware |
| 7 | LLM 调用链路 | AGENTS.md + docs/04 | gateway → NEW API 透传 |
| 8 | 里程碑验证 | — | 注册→登录→调LLM |
### Phase 2(第 4-6 周): 计费引擎
| 对话# | 任务 | 喂什么文件 |
|-------|------|-----------|
| 9 | Redis Lua 扣费 | AGENTS.md + docs/03 |
| 10 | 订阅管理 | AGENTS.md + docs/03 + docs/04 |
| 11 | 充值/Token包 | AGENTS.md + docs/04 |
| 12 | 用量追踪 | AGENTS.md + docs/03 |
| 13 | Kafka 消费者 | AGENTS.md + docs/02 |
### Phase 3(第 7-9 周): 能力市场
| 对话# | 任务 | 喂什么文件 |
|-------|------|-----------|
| 14 | 能力 CRUD | AGENTS.md + docs/03 + docs/04 |
| 15 | Skills 市场 | AGENTS.md + docs/03 + docs/04 |
| 16 | 实名认证对接 | AGENTS.md + docs/04 |
| 17 | 能力审核流程 | AGENTS.md + docs/04 |
| 18 | 开发者提现 | AGENTS.md + docs/03 + docs/04 |
---
## 6. 常见坑与避坑
### 坑 1:MiMo Code 生成的代码风格不统一
**解法**: 在 AGENTS.md 中明确写开发规范(已有),每次对话开头强调:
```
"遵循 docs/05-AGENTS-MiMoCode配置.md 中的开发规范"
```
### 坑 2:它不知道你的数据库表结构
**解法**: 每次涉及数据库的对话,明确告诉它:
```
"请先读 docs/03-数据库设计.md 中的 [表名] 表定义"
```
### 坑 3:它生成的 API 不符合你的规范
**解法**: 每次涉及 API 的对话,明确告诉它:
```
"请先读 docs/04-API接口规范.md 中的 [接口名] 定义,严格按照这个格式实现"
```
### 坑 4:上下文太长,它开始犯糊涂
**解法**: 一个对话只做一件事。做完就开新对话。不要在一个对话里堆太多任务。
### 坑 5:它不知道开源组件怎么配置
**解法**: 直接告诉它:
```
"NEW API 的 Docker 镜像是 justsong/one-api:latest,端口 3000,
配置文件在 infra/new-api/config.yaml。帮我写配置。"
```
---
## 7. AGENTS.md 投喂策略
AGENTS.md 是 MiMo Code 的"大脑",但**不是越大越好**。
### 推荐结构(300-500 行)
```markdown
# 项目概述(50行)
- 一句话描述
- 用户模型
- 核心技术栈
# 项目结构(50行)
- 目录树
- 每个目录的职责
# 开发规范(100行)
- Python 规范
- TypeScript 规范
- Git 规范
- 测试规范
# 核心服务说明(200行)
- 每个服务的职责、端口、核心逻辑
# 计费原则(30行)
- 最重要的业务规则
# 重要约束(20行)
- 必须遵守的红线
```
### 不要放进去的东西
- ❌ 完整的数据库表定义(放 docs/03)
- ❌ 完整的 API 定义(放 docs/04)
- ❌ 完整的 PRD(放 docs/01)
- ❌ 部署步骤(放 README.md)
**AGENTS.md 放"概述+规范",docs/ 放"细节"。MiMo Code 自动读概述,你按需让它读细节。**
---
*文档结束*