---
created: 2026-03-29
updated: 2026-04-06
type: project
status: COMPLETED (2026-03-30)
parent: "[[Smart Support]]"
phase: 3
timeline: 第 4-6 周
tags:
  - phase-3
  - openapi
  - mcp
  - ssrf
  - security
  - llm-classification
  - code-generation
  - api-parsing
  - async-import
---

# Phase 3：OpenAPI 自动发现

> Status: COMPLETED (2026-03-30)

## 目标

实现 Smart Support 的「10x 差异化功能」：用户粘贴 OpenAPI 规范 URL，系统自动生成 @tool 函数和 Agent 配置。

## 阶段产出

- SSRF 防护模块：私有 IP 拦截、DNS 重绑定防御、重定向链验证
- OpenAPI 获取器：SSRF 安全、JSON/YAML 自动检测、10MB 大小限制
- 结构化 OpenAPI 验证器：3.0.x 和 3.1.x
- 端点解析器：$ref 解析、参数提取、自动生成 operationId
- 启发式 + LLM 端点分类器：GET=read, POST/PUT/PATCH/DELETE=write，LLM 失败回退启发式
- 审核 API（/api/openapi）：导入任务、分类审核、批准生成
- @tool 代码生成器：async 函数 + httpx
- Agent YAML 生成器：按分类分组端点
- 导入编排器：fetch -> validate -> parse -> classify 全流程
- 内存任务存储：导入状态追踪

## 新增文件

| 文件 | 用途 | 行数 |
|------|------|------|
| `app/openapi/models.py` | 冻结数据类：EndpointInfo, ClassificationResult, ImportJob | 68 |
| `app/openapi/ssrf.py` | SSRF 防护（validate_url, safe_fetch, DNS 解析） | 162 |
| `app/openapi/fetcher.py` | SSRF 安全规范获取 | 94 |
| `app/openapi/validator.py` | 结构化规范验证 | 52 |
| `app/openapi/parser.py` | 端点提取 + $ref 解析 | 153 |
| `app/openapi/classifier.py` | 启发式 + LLM 分类器 | 164 |
| `app/openapi/review_api.py` | 导入/审核 API 路由 | 180 |
| `app/openapi/generator.py` | @tool 代码 + YAML 生成 | 157 |
| `app/openapi/importer.py` | 异步导入流水线 | 117 |

## 测试覆盖

- 新增测试：125 个（118 单元 + 7 集成）
- 总测试：322
- 覆盖率：93.23%
- SSRF 测试最多：42 个

## 与计划的偏差

- 未构建自定义工具基类（架构文档明确禁止）
- 使用轻量级结构化验证器而非包装外部库
- 内存任务存储而非数据库（可后续迁移 PostgreSQL）
- 前端审核 UI 推迟到 Phase 5

## 技术债务

- 前端 ReviewPage 推迟（API 就绪）
- 代码生成基于字符串模板
- LLM 分类提示可用真实案例调优
- 审核 API 无速率限制

## Related

- [[Smart Support/Phase 2 - 多 Agent + 安全]]
- [[Smart Support/Phase 4 - 分析 + 回放]]
- [[Smart Support]]
