# AI PaaS 商业平台开发需求与设计说明书

## 1. 项目背景与目标

本项目旨在构建一套面向个人开发者及中小企业的 **AI PaaS 商业平台**，提供从 Agent 创建、技能交易到多端接入的全链路 AI 能力服务。

**核心目标：**

1. **能力服务化**：将 Agent、MCP、Skills 等 AI 能力封装为标准 API，支持一键部署与调用。
2. **商业闭环**：实现“订阅 + 按量”混合计费，支持多租户隔离与自动化账单。
3. **生态开放**：提供 Skills 市场与 IMBot 接入，构建开发者与用户的双边市场。
4. **工程化落地**：基于 **Qoder** 开发工具，采用“核心自研 + 开源集成”策略，确保 16 周内完成 MVP 上线。

---

## 2. 整体架构概述

平台采用 **微服务 + 云原生** 架构，严格遵循“核心业务自研，基础设施开源”的原则。

### 2.1 架构分层

| 层级 | 核心组件 | 实施策略 | 关键说明 |
| ------ |------ |------ |------ |
| **接入层** | Web 门户 / CLI / IMBot | **自研** | 统一用户入口，多端适配（微信/钉钉/钉钉） |
| **业务层** | Agent 工作台 / Skills 市场 / 计费中心 | **自研** | 平台核心商业逻辑，涉及资金与权限，必须自研 |
| **中间件层** | API Gateway / LLM Router / 注册中心 | **自研 + 封装** | 流量治理与模型路由需自研策略，底层复用 Kong/Nginx |
| **能力层** | Agent Runtime / RAG / MCP Server | **开源集成** | 复用 LangFlow、Milvus、vLLM 等成熟开源方案 |
| **基础设施** | K8s / 数据库 / 消息队列 | **开源/云原生** | PostgreSQL, Redis, Kafka, Prometheus |

### 2.2 自研与开源边界

- **必须自研（护城河）：**
    - **混合计费引擎**：支持 Token 消耗、API 调用次数、订阅套餐的实时扣费与熔断。
    - **多租户治理**：基于 `tenant_id` 的数据隔离、资源配额（Quota）控制、RBAC 权限模型。
    - **LLM 智能路由**：基于成本、延迟、模型能力的动态路由策略及故障自动转移。
- **禁止自研（复用开源）：**
    - **向量检索**：使用 **Milvus** 或 **ChromaDB**，不自行实现向量索引。
    - **模型推理**：使用 **vLLM** 或 **SGLang** 作为推理后端，不自行实现 Attention 算子。
    - **工作流引擎**：使用 **Temporal** 或 **LangFlow** 处理 Agent 编排，不自行实现状态机。

---

## 3. 核心模块详细设计

### 3.1 平台底座

- **认证授权**：OAuth 2.0 + JWT。支持 GitHub/微信第三方登录。
- **多租户架构**：
    - 数据库：PostgreSQL，采用 `Schema` 隔离或 `Row-Level Security` (RLS)。
    - 资源隔离：K8s Namespace 隔离或 Cgroup 资源限制。
- **Dashboard**：
    - 用户侧：API Key 管理、用量图表、账单详情、Agent 部署状态。
    - 管理侧：用户审核、全局监控、内容安全审计、系统配置。

### 3.2 订阅计费系统

- **计费模型**：
    - **Subscription**：月付/年付，包含基础 Token 额度（如 100万 Tokens/月）。
    - **Pay-as-you-go**：超出额度后，按 `Price per 1k Tokens` 或 `Price per Request` 计费。
- **支付集成**：
    - 国内：支付宝/微信（通过 Ping++ 或 Stripe 中国）。
    - 国际：Stripe。
- **实时性**：
    - 使用 Redis 缓存当前用量，Kafka 异步消费日志进行持久化与账单生成。
    - **熔断机制**：当 `Used > Quota + Buffer` 时，API Gateway 立即拦截请求。

### 3.3 标准化中间件（核心）

- **能力注册中心**：
    - 所有 AI 能力（Agent/Skill/MCP）注册为 `Capability` 对象。
    - 元数据：`{id, name, version, type, endpoint, pricing_model, schema}`。
    - 存储：MongoDB（灵活 Schema）或 PostgreSQL (JSONB)。
- **API Gateway**：
    - 基于 **Kong** 或 **APISIX** 二次开发。
    - 插件：`jwt-auth`, `rate-limiting`, `ai-billing`, `protocol-transform`。
- **LLM Provider Router**：
    - **统一接口**：`POST /v1/chat/completions` (OpenAI 兼容)。
    - **路由策略**：
    - **Fallback**：主模型超时/5xx -> 自动切换备用模型 -> 记录错误日志。

### 3.4 AI 能力层

- **Agent 编排**：
    - 集成 **LangFlow** 或 **Dify** 作为可视化后端，前端自研管理界面。
    - 支持 Python/YAML 定义工作流，Docker 容器化执行。
- **MCP 支持**：
    - 实现 MCP Server 适配器，将内部 API 暴露为 MCP 资源/工具。
    - 支持 SSE/Stdio 传输协议。
- **Skills 市场**：
    - 发布流程：Git Repo -> 静态分析 -> 沙箱测试 -> 人工审核 -> 上架。
    - 交易：支持免费/付费/订阅，平台抽成 30%。
- **IMBot**：
    - 适配器模式：`WeChatAdapter`, `DingTalkAdapter`。
    - 消息队列：接收 Webhook -> Kafka -> Agent Runtime -> 回复。

---

## 4. 技术栈选型

| 领域 | 推荐技术 | 选型理由 |
| ------ |------ |------ |
| **后端框架** | **NestJS** (Node) 或 **FastAPI** (Python) | NestJS 适合网关/BFF，FastAPI 适合 AI 服务，生态丰富，Qoder 生成质量高 |
| **前端** | **Next.js** + **Shadcn/UI** | SSR 支持好，组件库美观，开发效率高 |
| **数据库** | **PostgreSQL** + **Redis** | PG 支持 JSONB 和 RLS，Redis 用于缓存/限流/队列 |
| **向量库** | **Milvus** 或 **ChromaDB** | 生产级向量检索，避免自研 |
| **消息队列** | **Kafka** 或 **RabbitMQ** | 解耦计费、日志、IM 消息处理 |
| **推理引擎** | **vLLM** | 高吞吐，PagedAttention，支持连续批处理 |
| **容器编排** | **Kubernetes** | 弹性伸缩，多租户隔离基础 |
| **监控** | **Prometheus** + **Grafana** | 行业标准，Qoder 可生成配置 |

---

## 5. 开发阶段规划

基于 Qoder 辅助开发，预计 **16 周** 完成 MVP：

| 阶段 | 周期 | 核心任务 | Qoder 重点指令 |
| ------ |------ |------ |------ |
| **P0: 骨架** | W1-2 | 项目初始化、DB Schema、Auth 模块、CI/CD | "生成 NestJS 多租户项目结构，包含 TypeORM 配置和 JWT 守卫" |
| **P1: 底座** | W3-6 | 用户中心、API Key 管理、基础 Dashboard | "实现 API Key 的 CRUD 接口，包含权限校验和数据库事务" |
| **P2: 中间件** | W7-10 | API Gateway、LLM Router、计费引擎 | "编写 LLM 路由插件，实现基于 Token 的实时扣费逻辑" |
| **P3: AI 能力** | W11-14 | Agent Runtime、Skills 市场、RAG 集成 | "集成 LangFlow，封装 Agent 执行接口，支持流式输出" |
| **P4: 交付** | W15-16 | 压力测试、安全审计、文档生成、部署 | "生成 K8s Helm Chart，编写 OpenAPI 文档，执行 JMeter 压测脚本" |

---

## 6. 给 Qoder 的具体指令建议

为确保 Qoder 生成的代码符合架构要求，请在 Prompt 中遵循以下规范：

### 6.1 代码规范

- **语言**：后端统一使用 TypeScript (NestJS) 或 Python (FastAPI)，禁止混用。
- **类型安全**：必须定义完整的 Interface/Type，禁止使用 `any`。
- **错误处理**：统一使用 `HttpException` 或自定义 `AppException`，禁止裸 `throw`。
- **日志**：使用 `Logger` 服务，关键操作（支付、权限变更）必须记录审计日志。

### 6.2 模块拆分指令

- **不要生成单体文件**：对于计费、路由等复杂模块，要求 Qoder 按 `Controller -> Service -> Repository -> Strategy` 分层。
- **配置外置**：所有密钥、URL、阈值必须从 `ConfigService` 读取，禁止硬编码。
- **接口先行**：先让 Qoder 生成 OpenAPI (Swagger) 定义，确认无误后再实现逻辑。

### 6.3 关键场景 Prompt 示例

**场景：实现 LLM 路由策略**
"请基于 Strategy 模式实现 LLM Provider Router。

**场景：实现计费扣费**
"实现一个基于 Redis + Lua 的原子扣费服务。

### 6.4 验收标准

- **测试覆盖率**：核心模块（计费、路由） > 80%。
- **文档**：每个模块必须有 `README.md` 和 Swagger 文档。
- **安全**：通过 `npm audit` / `pip-audit`，无高危漏洞。

---

**备注**：本文档为 Qoder 开发的上下文基准。在执行具体任务时，请始终引用本架构设计，避免偏离“核心自研、开源集成”的原则。对于未定义的边缘场景，优先选择 **PostgreSQL + Redis + Kafka** 组合，避免引入不必要的新技术栈。

