125 lines
3.5 KiB
Markdown
125 lines
3.5 KiB
Markdown
# Phase 2: 系统架构分析指南
|
||
|
||
**执行时间**:约 2 分钟
|
||
|
||
**目标**:识别子系统边界和通信机制
|
||
|
||
---
|
||
|
||
## ⚠️ 重要约束
|
||
|
||
**Explore agent 只返回文本结果,不要生成任何文件。**
|
||
|
||
---
|
||
|
||
## 分析方法
|
||
|
||
使用 **Task tool** 调用内置的 **Explore sub-agent** 进行深度分析。
|
||
|
||
### 步骤 1: 启动 Task tool
|
||
|
||
指定以下参数:
|
||
- `subagent_type: Explore`
|
||
- `description: "系统架构分析"`
|
||
- `prompt`: 包含下面的详细任务
|
||
|
||
### 步骤 2: Sub-agent 任务定义
|
||
|
||
```
|
||
⚠️ 重要约束:本次分析只返回文本结果,禁止生成任何文件(.md, .txt 等)。
|
||
所有 Mermaid 图表、清单、分析结论都应包含在你的文本回复中,不要使用 Write 或其他文件创建工具。
|
||
|
||
分析项目的子系统划分和通信机制:
|
||
|
||
1. 子系统边界识别
|
||
- 扫描顶层目录,识别 frontend/, backend/, agents/ 等模式
|
||
- 查找独立配置文件(package.json, requirements.txt)
|
||
- 解析 docker-compose.yml 中的 services
|
||
|
||
2. API 端点定位
|
||
- 搜索:@app.(get|post|put|delete)
|
||
- 搜索:@router., app.route
|
||
- 提取端点路径和处理函数位置
|
||
|
||
3. 通信协议识别
|
||
- HTTP: requests.get/post, axios, fetch
|
||
- WebSocket: WebSocket, socket.io
|
||
- 消息队列: RabbitMQ, Kafka, Redis pub/sub
|
||
- gRPC: grpc, .proto
|
||
|
||
4. 数据库连接
|
||
- PostgreSQL: psycopg2, SQLAlchemy
|
||
- Redis: redis.Redis
|
||
- MongoDB: pymongo
|
||
|
||
输出格式:
|
||
- 子系统清单(名称、路径、技术栈、入口文件:行号)
|
||
- 通信关系(from → to, 协议, 端点)
|
||
- 生成 Mermaid graph TB 架构图(使用 `<br/>` 换行)
|
||
```
|
||
|
||
### 步骤 3: 执行过程
|
||
|
||
1. **Explore sub-agent 自动执行**:使用 Glob、Grep、Read 工具搜索代码
|
||
2. **接收结果**:sub-agent 返回分析报告
|
||
3. **验证结果**:检查是否包含所有子系统和通信关系
|
||
|
||
---
|
||
|
||
## 预期输出格式
|
||
|
||
### 1. Mermaid 系统架构图
|
||
|
||
```mermaid
|
||
graph TB
|
||
User[用户] --> Frontend[前端<br/>React + TypeScript]
|
||
Frontend -->|HTTP POST /api/research| Backend[后端 API<br/>FastAPI]
|
||
Frontend -->|WebSocket /ws| Backend
|
||
Backend -->|invoke| AgentLayer[Agent 编排层<br/>LangGraph]
|
||
AgentLayer -->|缓存| Redis[(Redis)]
|
||
AgentLayer -->|持久化| DB[(PostgreSQL)]
|
||
|
||
style AgentLayer fill:#f9f,stroke:#333,stroke-width:3px
|
||
```
|
||
|
||
### 2. 代码位置索引
|
||
|
||
- Frontend 入口: `frontend/src/main.tsx:1`
|
||
- Backend 入口: `backend/app/main.py:1`
|
||
- API 定义: `backend/app/routes.py:42`
|
||
- Agent 调用: `backend/app/routes.py:58`
|
||
|
||
### 3. 子系统清单
|
||
|
||
```
|
||
识别出 3 个子系统:
|
||
├─ Frontend (frontend/)
|
||
│ ├─ 技术: React 18 + TypeScript
|
||
│ └─ 入口: src/main.tsx:1
|
||
├─ Backend (backend/)
|
||
│ ├─ 技术: FastAPI + Python 3.11
|
||
│ └─ 入口: app/main.py:1
|
||
└─ Agent Layer (agents/)
|
||
├─ 技术: LangGraph 0.2.5
|
||
└─ 入口: graph.py:1
|
||
```
|
||
|
||
### 4. 通信机制
|
||
|
||
```
|
||
- Frontend → Backend: WebSocket (/ws)
|
||
- Frontend → Backend: HTTP POST (/api/research)
|
||
- Backend → Agent Layer: 直接调用 invoke()
|
||
- Agent Layer → Redis: 缓存中间结果
|
||
- Agent Layer → PostgreSQL: 持久化数据
|
||
```
|
||
|
||
---
|
||
|
||
## 注意事项
|
||
|
||
1. **配置文件优先**:优先解析 docker-compose.yml,它通常包含完整的服务拓扑
|
||
2. **多种通信协议**:一个项目可能同时使用 HTTP、WebSocket、消息队列
|
||
3. **入口文件定位**:确保记录每个子系统的主入口文件和行号
|
||
4. **Mermaid 样式**:使用 `style` 语法突出显示核心子系统
|