Files
AIEC_Skills/codebase_architecture_analyzer_v1/reference/examples.md

453 lines
9.6 KiB
Markdown
Raw Normal View History

2025-11-12 10:27:56 +08:00
# 使用示例
本文档提供实际使用场景的示例。
## 示例 1: 分析 Multi-Agent AI 项目
### 项目结构
```
ai-research-assistant/
├── frontend/
│ ├── src/
│ │ ├── components/
│ │ └── main.tsx
│ └── package.json
├── backend/
│ ├── app/
│ │ ├── main.py
│ │ └── routes.py
│ └── requirements.txt
└── agents/
├── graph.py
└── nodes.py
```
### 用户操作
```
用户: 理解项目
```
### Skill 执行过程
#### Phase 1: 快速扫描 (30秒)
```
⏳ 正在扫描项目结构...
✓ 检测到配置文件:
- backend/requirements.txt (Python)
- frontend/package.json (JavaScript)
✓ 读取依赖:
- Python: fastapi, langgraph, openai
- JavaScript: react, typescript
✓ 扫描目录:
- frontend/ (82 个 .tsx 文件)
- backend/ (45 个 .py 文件)
- agents/ (8 个 .py 文件)
✓ 快速扫描完成
项目类型: AI 驱动的 Web 应用
主语言: Python (后端 + AI)
次要语言: TypeScript (前端)
核心框架: FastAPI + LangGraph + React
架构: 前后端分离 + Multi-Agent
```
#### Phase 2: 系统架构分析 (2分钟)
```
⏳ 调用 Explore sub-agent 分析系统架构...
[Sub-agent 执行]
- 搜索 API 端点: @app.post, @router.
- 发现端点: /api/research, /api/status
- 搜索 WebSocket: WebSocket(
- 发现: /ws 实时通信端点
- 搜索数据库: Redis, PostgreSQL
- 发现: Redis 缓存, PostgreSQL 持久化
✓ 系统架构分析完成
识别出 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
通信机制:
- Frontend → Backend: WebSocket (/ws)
- Frontend → Backend: HTTP POST (/api/research)
- Backend → Agent Layer: 直接调用 invoke()
- Agent Layer → Redis: 缓存中间结果
- Agent Layer → PostgreSQL: 持久化数据
```
**生成的架构图**:
```mermaid
graph TB
User[用户] --> Frontend[前端<br/>React + TypeScript]
Frontend -->|WebSocket /ws| Backend[后端 API<br/>FastAPI]
Frontend -->|POST /api/research| Backend
Backend -->|invoke| AgentLayer[Agent 编排层<br/>LangGraph]
AgentLayer -->|缓存| Redis[(Redis)]
AgentLayer -->|持久化| DB[(PostgreSQL)]
style AgentLayer fill:#f9f,stroke:#333,stroke-width:3px
```
**代码位置索引**:
- Frontend 入口: `frontend/src/main.tsx:1`
- Backend 入口: `backend/app/main.py:1`
- API 定义: `backend/app/routes.py:42`
- Agent 调用: `backend/app/routes.py:58`
#### Phase 3: 核心流程提取 (5分钟)
```
⏳ 检测到 agents/ 目录,正在深度分析 Multi-Agent 编排...
⏳ 调用 Explore sub-agent 提取工作流...
[Sub-agent 执行]
- 搜索 StateGraph 定义
- 发现: agents/graph.py:23
- 提取 Agent 节点:
* researcher (agents/nodes.py:45)
* writer (agents/nodes.py:78)
* reviewer (agents/nodes.py:112)
- 分析流转规则:
* researcher → writer (顺序)
* writer → reviewer (顺序)
* reviewer → researcher (条件: quality < 7)
* reviewer → END (条件: quality >= 7)
✓ Multi-Agent 编排流程解析完成
识别出 3 个 Agent:
1. Researcher (agents/nodes.py:45)
- 职责: 调用搜索 API 收集资料
- 输入: ResearchTask
- 输出: List[Document]
2. Writer (agents/nodes.py:78)
- 职责: 基于资料生成报告
- 输入: List[Document]
- 输出: Report
3. Reviewer (agents/edges.py:12)
- 职责: 评估报告质量
- 决策: quality < 7 返回 Researcher
quality >= 7 → 结束流程
```
**生成的流程图**:
```mermaid
stateDiagram-v2
[*] --> Researcher: 用户查询
Researcher --> Writer: 研究完成
Writer --> Reviewer: 生成草稿
Reviewer --> Researcher: 质量不足<br/>评分 < 7
Reviewer --> [*]: 质量通过
note right of Researcher
agents/nodes.py:45
调用 Tavily 搜索 API
返回 List[Document]
end note
note right of Writer
agents/nodes.py:78
基于搜索结果
调用 GPT-4 生成报告
end note
note right of Reviewer
agents/edges.py:12
评估报告质量
决定是否重新研究
end note
```
#### Phase 4: 数据流追踪 (1分钟)
```
⏳ 追踪数据流...
✓ 识别核心数据模型:
- ResearchTask (models/task.py:8)
- SearchResults (models/results.py:15)
- Report (models/report.py:22)
✓ 数据转换链路:
用户输入 (str)
→ ResearchTask (models/task.py:8)
→ SearchResults (agents/researcher.py:45)
→ Report (agents/writer.py:78)
→ HTML (backend/routes.py:65)
```
**生成的序列图**:
```mermaid
sequenceDiagram
participant U as 用户
participant F as Frontend
participant B as Backend
participant R as Researcher
participant W as Writer
U->>F: 输入查询 "AI 发展趋势"
F->>B: POST /api/research<br/>{query, depth: 3}
Note over B: 构造 ResearchTask
B->>R: invoke(ResearchTask)
R->>R: 调用搜索引擎
R-->>B: SearchResults (10 文档)
B->>W: 传递 SearchResults
W->>W: GPT-4 生成报告
W-->>B: Report (2000 字)
B->>F: 返回 HTML
F->>U: 展示报告
```
#### Phase 5: 生成报告 (30秒)
```
⏳ 生成最终报告...
✓ 分析完成!
报告已保存: PROJECT_ARCHITECTURE.md
核心发现:
- 采用 LangGraph 编排 Multi-Agent 工作流
- 支持条件路由和循环优化
- 数据流: 查询 → 搜索 → 写作 → 审核 → 报告
快速上手:
1. 安装依赖: pip install -r backend/requirements.txt
2. 配置环境: cp .env.example .env
3. 启动后端: cd backend && uvicorn app.main:app --reload
4. 启动前端: cd frontend && npm install && npm start
5. 访问: http://localhost:3000
```
---
## 示例 2: 分析微服务项目
### 项目结构
```
ecommerce-platform/
├── docker-compose.yml
├── services/
│ ├── api-gateway/
│ ├── user-service/
│ ├── order-service/
│ └── notification-service/
└── shared/
```
### 用户操作
```
用户: 分析代码库架构
```
### 执行过程(简化版)
```
[30s] ✓ 检测到 docker-compose.yml
识别为微服务架构
发现 4 个服务: api-gateway, user-service, order-service, notification-service
[2min] ✓ 服务调用拓扑图已生成
api-gateway → user-service (HTTP GET /users/:id)
api-gateway → order-service (HTTP POST /orders)
api-gateway → notification-service (HTTP POST /notify)
[5min] ✓ 报告已保存: PROJECT_ARCHITECTURE.md
```
**生成的架构图**:
```mermaid
graph TB
Client[客户端] --> Gateway[API Gateway<br/>:8000]
Gateway -->|GET /users/:id| UserSvc[User Service<br/>:8001]
Gateway -->|POST /orders| OrderSvc[Order Service<br/>:8002]
Gateway -->|POST /notify| NotifySvc[Notification Service<br/>:8003]
UserSvc --> UserDB[(User DB<br/>PostgreSQL)]
OrderSvc --> OrderDB[(Order DB<br/>PostgreSQL)]
style Gateway fill:#ff6b6b
style UserSvc fill:#4ecdc4
style OrderSvc fill:#45b7d1
style NotifySvc fill:#f9ca24
```
---
## 示例 3: 分析 ETL 数据管道
### 项目结构
```
data-pipeline/
├── pipeline.py
├── extractors/
├── transformers/
└── loaders/
```
### 执行结果
```
[30s] ✓ 检测到 ETL 模式
识别函数: extract_from_csv, transform_data, load_to_database
[3min] ✓ 数据管道流程图已生成
```
**生成的流程图**:
```mermaid
flowchart LR
CSV[CSV 文件] --> Extract[Extract<br/>提取数据]
Extract --> Clean[Clean<br/>去重]
Clean --> Enrich[Enrich<br/>添加元数据]
Enrich --> Validate[Validate<br/>校验]
Validate --> DB[(PostgreSQL)]
Validate --> S3[(S3 存储)]
```
---
## 示例 4: 只分析特定模块
### 用户操作
```
用户: 只分析 agents/ 目录的工作流编排
```
### 执行过程
```
✓ 限定分析范围: agents/
[跳过 Phase 1, Phase 2]
[3min] ✓ 深度分析 agents/ 目录完成
识别出 LangGraph 编排:
- 3 个 Agent 节点
- 2 个条件分支
- 1 个循环优化路径
流程图已生成(仅包含 agents/ 的逻辑)
```
---
## 示例 5: 更新现有分析
### 场景
项目代码已更新,需要重新分析。
### 用户操作
```
用户: 更新架构分析报告
```
### 执行过程
```
✓ 检测到已存在 PROJECT_ARCHITECTURE.md
[对比文件时间戳]
- agents/graph.py 已修改2 天前)
- backend/routes.py 未修改
⏳ 只重新分析有变更的部分...
[2min] ✓ 增量分析完成
- Agent 层新增 1 个节点: Optimizer
- 流程图已更新
✓ 报告已更新: PROJECT_ARCHITECTURE.md
```
---
## 最佳实践
### 1. 项目克隆后立即分析
```bash
git clone https://github.com/user/project.git
cd project
# 打开 Claude Code
```
```
理解项目
```
优势:快速建立项目全景认知。
### 2. 结合其他 Skills
```
理解项目,然后生成开发者入门文档
```
先分析架构,再基于分析结果生成文档。
### 3. 针对性分析
```
只分析后端的 API 路由和业务逻辑
```
节省时间,聚焦关键部分。
---
## 故障排除示例
### 问题: 无法识别自定义框架
**场景**: 公司内部自研框架
**解决方案**:
手动提示:
```
这个项目使用了内部框架 InternalFlow它的工作流定义在 workflows/ 目录,
请分析 workflows/ 中的 YAML 文件来理解流程编排。
```
---
## 更多示例
查看 `patterns.md` 了解各种架构模式的详细识别案例。