Files
AIEC_Skills/codebase_architecture_analyzer_v1/reference/examples.md
2025-11-12 10:27:56 +08:00

453 lines
9.6 KiB
Markdown
Raw 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.

# 使用示例
本文档提供实际使用场景的示例。
## 示例 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` 了解各种架构模式的详细识别案例。