feat: 完成12个订单班AI Agent架构设计

完成内容:
- 创建AI Agent架构设计文档,定义100+专业Agent
- 创建orderClasses.json统一配置文件
- 每个订单班配置7-9个专业Agent
- 定义4种Agent协作模式:串行、并行、主从、迭代
- 文档和资源重新组织整理

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Yep_Q
2025-09-28 15:57:17 +08:00
parent 114fa7ddd1
commit 9ab8cf48ab
2260 changed files with 1563 additions and 6 deletions

View File

@@ -0,0 +1,413 @@
# 统一多订单班AI演示系统 - 实施计划 V2.0
## 一、项目概述
### 1.1 核心理念变更
**原方案**为每个订单班创建独立的演示项目12个独立项目
**新方案**在单一exhibition-demo项目中实现所有订单班的动态切换
### 1.2 优势分析
- **代码复用最大化**一套代码服务12个订单班
- **维护成本降低**:只需维护一个项目
- **用户体验统一**:所有订单班使用相同的交互流程
- **数据管理集中**:通过统一的数据存储管理所有配置
- **扩展性强**:新增订单班只需添加数据配置
## 二、系统架构设计
### 2.1 整体架构
```
exhibition-demo/
├── src/
│ ├── components/
│ │ ├── RequirementModal.tsx # 需求选择模态框(新增订单班选择)
│ │ ├── AgentGrid.tsx # Agent网格展示动态加载
│ │ ├── TerminalOutput.tsx # 终端输出组件
│ │ └── ResultModal.tsx # 结果展示模态框
│ ├── data/
│ │ ├── orderClasses.json # 所有订单班配置数据
│ │ └── agentTemplates.json # Agent模板定义
│ ├── services/
│ │ ├── dataLoader.ts # 数据加载服务
│ │ ├── agentService.ts # Agent执行逻辑
│ │ └── resultGenerator.ts # 结果生成服务
│ └── store/
│ └── demoStore.ts # 状态管理(支持多订单班)
├── public/
│ └── agents/ # Agent头像资源
│ ├── 文旅/
│ ├── 食品/
│ ├── 财经商贸/
│ └── ...(其他订单班)
└── web_result/ # 结果展示页面
└── templates/ # 各订单班结果模板
```
### 2.2 数据存储方案
#### 方案对比
| 方案 | 优点 | 缺点 | 推荐度 |
|------|------|------|--------|
| **JSON文件** | 简单直观、无需数据库、易于版本控制 | 文件可能较大、不支持复杂查询 | ⭐⭐⭐⭐⭐ |
| SQLite | 支持查询、关系型存储 | 需要数据库依赖、部署复杂 | ⭐⭐⭐ |
| YAML | 可读性好、支持注释 | 解析性能较低、前端支持有限 | ⭐⭐⭐ |
| CSV | 表格化管理 | 不支持嵌套结构、功能受限 | ⭐⭐ |
**推荐方案JSON文件存储**
#### 数据结构设计
```json
// orderClasses.json
{
"orderClasses": [
{
"id": "exhibition",
"name": "文旅",
"displayName": "文旅订单班",
"icon": "🎪",
"description": "展会策划与执行专业",
"scenario": "新能源汽车产业博览会策划",
"mockRequirement": "策划一场2025年新能源汽车产业博览会预算1000万预计参展商500家",
"agents": [
{
"id": "info_retrieval",
"name": "信息检索专家",
"model": "DeepSeek Chat Model5",
"avatar": "/agents/文旅/info_retrieval.png",
"role": "负责市场调研、数据收集、竞品分析",
"skills": ["市场分析", "数据挖掘", "趋势预测"],
"outputSamples": [
"发现市场规模1200亿年增长18%",
"识别目标客群:汽车厂商、零部件供应商、科技公司"
]
},
{
"id": "planning",
"name": "会展策划专家",
"model": "Chat Models + Memories",
"avatar": "/agents/文旅/planning.png",
"role": "统筹协调、方案整合、决策支持",
"skills": ["项目管理", "资源协调", "风险控制"]
}
// ... 其他5个Agent
],
"workflow": {
"phases": [
{
"name": "需求分析",
"duration": "2分钟",
"parallelAgents": ["info_retrieval"]
},
{
"name": "方案设计",
"duration": "5分钟",
"parallelAgents": ["planning", "design", "marketing"]
},
{
"name": "预算规划",
"duration": "3分钟",
"parallelAgents": ["finance", "execution"]
}
]
},
"resultTemplate": "exhibition_result.html"
},
{
"id": "food",
"name": "食品",
"displayName": "食品订单班",
"icon": "🍽️",
"description": "餐饮创业与轻食经营",
"scenario": "中高端轻食店铺经营方案",
"mockRequirement": "开设一家青莳轻食品牌店初始投资85万目标客群25-40岁",
"agents": [
{
"id": "market_research",
"name": "餐饮市场调研专家",
"model": "DeepSeek Chat Model1",
"avatar": "/agents/食品/market_research.png",
"role": "轻食市场分析、客群定位、竞品研究"
},
{
"id": "nutrition",
"name": "营养配方师",
"model": "Google Gemini Chat Model1",
"avatar": "/agents/食品/nutrition.png",
"role": "营养配比、菜品设计、健康认证"
}
// ... 其他Agent
]
}
// ... 其他10个订单班
]
}
```
### 2.3 核心功能设计
#### 2.3.1 需求选择界面
```typescript
// RequirementModal.tsx 改造
interface RequirementModalProps {
onSelectOrderClass: (classId: string, requirement: string) => void;
}
const RequirementModal = () => {
const [selectedClass, setSelectedClass] = useState<string>('');
const [customRequirement, setCustomRequirement] = useState<string>('');
return (
<div className="modal">
{/* 订单班选择网格 */}
<div className="grid grid-cols-3 gap-4">
{orderClasses.map(oc => (
<button
key={oc.id}
onClick={() => setSelectedClass(oc.id)}
className={`p-4 border-2 ${
selectedClass === oc.id ? 'border-blue-500' : 'border-gray-300'
}`}
>
<span className="text-2xl">{oc.icon}</span>
<h3>{oc.displayName}</h3>
<p className="text-sm">{oc.scenario}</p>
</button>
))}
</div>
{/* 需求输入区 */}
{selectedClass && (
<div className="mt-4">
<button onClick={() => setCustomRequirement(getMockRequirement(selectedClass))}>
使用预设需求
</button>
<textarea
value={customRequirement}
onChange={(e) => setCustomRequirement(e.target.value)}
placeholder="或输入自定义需求..."
/>
</div>
)}
</div>
);
};
```
#### 2.3.2 Agent动态加载
```typescript
// AgentGrid.tsx
const AgentGrid = ({ orderClassId }: { orderClassId: string }) => {
const agents = useAgentStore(state => state.getAgentsByClass(orderClassId));
// 未选择订单班时不显示
if (!orderClassId) return null;
return (
<div className="grid grid-cols-7 gap-2">
{agents.map(agent => (
<div key={agent.id} className="agent-card">
<img src={agent.avatar} alt={agent.name} />
<span>{agent.name}</span>
<div className={`status-indicator ${agent.status}`} />
</div>
))}
</div>
);
};
```
#### 2.3.3 执行流程管理
```typescript
// agentService.ts
class AgentService {
async executeWorkflow(orderClassId: string, requirement: string) {
const orderClass = await this.loadOrderClass(orderClassId);
const workflow = orderClass.workflow;
for (const phase of workflow.phases) {
await this.executePhase(phase, orderClass.agents);
}
return this.generateResult(orderClass, requirement);
}
private async executePhase(phase: WorkflowPhase, agents: Agent[]) {
const parallelTasks = phase.parallelAgents.map(agentId => {
const agent = agents.find(a => a.id === agentId);
return this.runAgent(agent);
});
await Promise.all(parallelTasks);
}
}
```
## 三、实施任务清单
### 数据准备任务
- [ ] 从n8n工程文档提取已有的3个订单班Agent配置文旅、食品、智能开发
- [ ] 基于notion文档为其余9个订单班设计Agent角色
- [ ] 创建统一的orderClasses.json配置文件
- [ ] 设计每个订单班的执行workflow
- [ ] 使用AI生成所有Agent专家头像约100个头像
- [ ] 组织头像文件目录结构
### 核心开发任务
- [ ] 改造RequirementModal组件添加12个订单班选择界面
- [ ] 实现dataLoader.ts数据加载服务
- [ ] 更新demoStore.ts支持多订单班状态管理
- [ ] 实现Agent动态加载和条件显示逻辑
- [ ] 开发多订单班workflow执行引擎
- [ ] 实现动态终端输出内容生成器
- [ ] 集成web_result结果展示页面
- [ ] 为每个订单班创建结果展示模板
### 界面优化任务
- [ ] 设计订单班选择卡片样式
- [ ] 实现订单班切换动画效果
- [ ] 优化Agent网格响应式布局
- [ ] 统一各订单班的视觉风格
- [ ] 添加loading和过渡动画
### 测试与部署任务
- [ ] 测试12个订单班的完整执行流程
- [ ] 实现性能优化(懒加载、缓存)
- [ ] 创建统一启动脚本
- [ ] 编写技术文档和使用说明
## 四、技术实现细节
### 4.1 Agent头像生成策略
```python
# 使用Google Gemini生成头像的prompt模板
prompt_template = """
生成一个{role}的专业头像:
- 风格:现代商务插画风格
- 色调:{color_scheme}
- 特征:{characteristics}
- 背景:简洁渐变背景
- 表情:自信专业
- 服装:{attire}
"""
# 各订单班的色调方案
color_schemes = {
"文旅": "蓝色系",
"食品": "绿色系",
"财经商贸": "金色系",
"智能开发": "紫色系",
"智能制造": "橙色系"
# ...
}
```
### 4.2 动态内容生成
```typescript
// 基于订单班生成不同的输出内容
const generateOutput = (orderClass: string, agent: Agent) => {
const templates = {
"文旅": {
"信息检索专家": [
"正在分析会展市场数据...",
"> 发现市场规模{value}亿,年增长{growth}%",
"> 识别目标展商:{exhibitors}"
]
},
"食品": {
"营养配方师": [
"正在设计营养菜单...",
"> 设计{count}款核心产品",
"> 热量控制:{calories}大卡"
]
}
// ...
};
return templates[orderClass][agent.name];
};
```
### 4.3 结果页面模板
```html
<!-- web_result/templates/food_result.html -->
<div class="result-container">
<header>
<h1>青莳轻食 - 中高端轻食店铺经营方案</h1>
<div class="stats">
<span>📊 投资回报期14个月</span>
<span>💰 初始投资85万</span>
<span>🎯 月营收30-35万</span>
</div>
</header>
<section class="content">
<!-- 动态生成的内容 -->
</section>
</div>
```
## 五、技术难点与解决方案
### 5.1 关键技术挑战
| 挑战 | 解决方案 |
|------|----------|
| 数据文件过大影响加载 | 实现懒加载,按需加载订单班数据 |
| Agent头像资源管理 | 使用CDN或图片压缩提供fallback头像 |
| 不同订单班逻辑差异 | 策略模式+配置驱动,减少硬编码 |
| 结果页面模板复杂 | 组件化设计,复用通用模块 |
## 六、验收标准
### 6.1 功能验收
- ✅ 支持12个订单班动态切换
- ✅ Agent根据选择动态加载
- ✅ 每个订单班有独特的执行流程
- ✅ 生成对应的结果展示页面
- ✅ 一键启动所有服务
### 6.2 性能指标
- 页面加载时间 < 3秒
- 订单班切换响应 < 500ms
- Agent执行动画流畅60fps
- 内存占用 < 200MB
### 6.3 用户体验
- 清晰的订单班选择界面
- 流畅的执行过程展示
- 专业的结果输出
- 统一的视觉风格
## 七、核心实现要点
### 7.1 必须完成的功能
1. **订单班选择**用户必须先选择订单班才能看到Agent
2. **动态Agent显示**根据选择的订单班显示对应的专家
3. **个性化执行**每个订单班有独特的执行内容和输出
4. **结果展示**集成web_result展示专业的输出成果
### 7.2 数据结构核心
- 使用JSON存储所有订单班配置
- 每个订单班包含基本信息Agent列表执行流程结果模板
- Agent信息包含名称角色头像输出样例
### 7.3 关键代码改造点
1. `RequirementModal.tsx` - 添加订单班选择网格
2. `AgentGrid.tsx` - 实现条件渲染未选择时隐藏
3. `demoStore.ts` - 支持多订单班状态管理
4. `WorkflowPage.tsx` - 根据订单班加载不同数据
## 八、总结
本方案的核心创新
- **一个项目多个场景**不再需要12个独立项目
- **数据驱动**通过配置文件管理所有订单班
- **动态加载**根据用户选择加载对应内容
- **统一体验**所有订单班使用相同交互流程
这样的架构更优雅更易维护更易扩展
---
*文档版本2.0*
*创建日期2025-09-28*
*状态待审核*