674 lines
19 KiB
Markdown
674 lines
19 KiB
Markdown
|
|
# 终端模拟文件创建最佳实践
|
|||
|
|
|
|||
|
|
## 概述
|
|||
|
|
本文档记录创建订单班终端模拟文件(terminalSimulations)的标准流程和最佳实践,基于食品和视觉设计两个订单班的实际处理经验总结。
|
|||
|
|
|
|||
|
|
## 一、文件位置规范
|
|||
|
|
|
|||
|
|
### 存放目录
|
|||
|
|
```
|
|||
|
|
web_frontend/exhibition-demo/src/data/terminalSimulations/
|
|||
|
|
├── index.ts # 类型定义和导出
|
|||
|
|
├── food.ts # 食品订单班
|
|||
|
|
├── visualDesign.ts # 视觉设计订单班
|
|||
|
|
└── [其他订单班].ts
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 为什么放在 src/data/ 而不是 public/data/?
|
|||
|
|
- **src/data/** 存放 TypeScript 代码和配置逻辑
|
|||
|
|
- **public/data/** 存放图片、文档等静态资源
|
|||
|
|
- 终端模拟文件是 TypeScript 代码,会被打包,因此放在 src/data/
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 二、创建前的准备工作
|
|||
|
|
|
|||
|
|
### 1. 文档资料准备
|
|||
|
|
必须确保以下资料完整:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
data/订单班文档资料/[订单班名称]/
|
|||
|
|
├── notion文稿/
|
|||
|
|
│ ├── [主文档].md # 核心文档
|
|||
|
|
│ └── image/ # 图片资源(已重命名为描述性名称)
|
|||
|
|
├── Agent_prompt/ # Agent 提示词文件
|
|||
|
|
│ ├── Agent1.md
|
|||
|
|
│ ├── Agent2.md
|
|||
|
|
│ └── ...
|
|||
|
|
└── agent头像/ # Agent 头像图片
|
|||
|
|
├── Agent1.jpg
|
|||
|
|
├── Agent2.jpg
|
|||
|
|
└── ...
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**关键要求**:
|
|||
|
|
- ✅ 图片文件名必须是**描述性名称**(如:店面图片_正门.jpg)
|
|||
|
|
- ✅ Markdown 文档中的图片引用必须与实际文件名一致
|
|||
|
|
- ✅ Agent_prompt 文件数量必须与 agent头像 数量一致
|
|||
|
|
|
|||
|
|
### 2. 文档内容审查
|
|||
|
|
|
|||
|
|
**检查清单**:
|
|||
|
|
- [ ] 是否有清晰的章节结构?
|
|||
|
|
- [ ] 每个章节对应的图片是否有明确标注?
|
|||
|
|
- [ ] 是否有关键数据(预算、时间、数量等)?
|
|||
|
|
- [ ] 特殊内容(如 CSV 表格、对比图)是否已标注?
|
|||
|
|
|
|||
|
|
**示例**:视觉设计订单班的特殊标注
|
|||
|
|
```markdown
|
|||
|
|
# 五、分镜设计
|
|||
|
|
|
|||
|
|
| 镜号 | 生成图片 | 线稿图片 | 景别 | 时长 | ...
|
|||
|
|
```
|
|||
|
|
→ 这表示有一个 CSV 表格,展示 AIGC 分镜预览(线稿 → AI 生成图)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 三、Agent 配置设计
|
|||
|
|
|
|||
|
|
### 1. 确定 Agent 数量和类型
|
|||
|
|
|
|||
|
|
**步骤**:
|
|||
|
|
1. 检查 `Agent_prompt/` 文件夹中的提示词文件数量
|
|||
|
|
2. 阅读每个提示词文件,理解 Agent 职责
|
|||
|
|
3. 按照文档章节顺序或工作流程顺序排列
|
|||
|
|
|
|||
|
|
**食品订单班示例**(7个Agent):
|
|||
|
|
```typescript
|
|||
|
|
const foodAgents: Agent[] = [
|
|||
|
|
{ id: 'food_market_analyst', name: '餐饮市场调研专家', icon: '📊' },
|
|||
|
|
{ id: 'food_brand_designer', name: '餐饮品牌设计专家', icon: '🎨' },
|
|||
|
|
{ id: 'food_location_decorator', name: '餐厅选址装修专家', icon: '🏗️' },
|
|||
|
|
{ id: 'food_menu_developer', name: '菜品研发专家', icon: '👨🍳' },
|
|||
|
|
{ id: 'food_operation_expert', name: '轻食店经营管理专家', icon: '🍽️' },
|
|||
|
|
{ id: 'food_team_manager', name: '餐饮团队人员管理专家', icon: '👥' },
|
|||
|
|
{ id: 'food_finance_advisor', name: '财务预算专家', icon: '💰' }
|
|||
|
|
];
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**视觉设计订单班示例**(5个Agent):
|
|||
|
|
```typescript
|
|||
|
|
const visualDesignAgents: Agent[] = [
|
|||
|
|
{ id: 'visual_project_director', name: '客户对接-项目总监', icon: '🎬' },
|
|||
|
|
{ id: 'visual_screenwriter', name: '编剧', icon: '✍️' },
|
|||
|
|
{ id: 'visual_director', name: '导演', icon: '🎥' },
|
|||
|
|
{ id: 'visual_storyboard_artist', name: '分镜师', icon: '🎨' },
|
|||
|
|
{ id: 'visual_production_manager', name: '制片主任', icon: '📋' }
|
|||
|
|
];
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. Agent 配置字段说明
|
|||
|
|
|
|||
|
|
```typescript
|
|||
|
|
{
|
|||
|
|
id: 'unique_agent_id', // 唯一标识,建议格式:[订单班]_[职责]
|
|||
|
|
name: 'Agent显示名称', // 与提示词文件名一致
|
|||
|
|
icon: '🎨', // 合适的emoji图标
|
|||
|
|
avatar: '/data/订单班文档资料/[订单班]/agent头像/[Agent].jpg',
|
|||
|
|
model: 'GPT-4', // AI 模型名称(可随意分配)
|
|||
|
|
role: '简短职责描述', // 3-5个词概括职责
|
|||
|
|
status: 'waiting', // 初始状态固定为 waiting
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. Agent 顺序原则
|
|||
|
|
|
|||
|
|
**按工作流程顺序**:
|
|||
|
|
- ✅ **食品订单班**:市场调研 → 品牌设计 → 选址装修 → 菜品研发 → 运营管理 → 人员管理 → 财务预算
|
|||
|
|
- ✅ **视觉设计订单班**:客户对接 → 编剧 → 导演 → 分镜师 → 制片主任
|
|||
|
|
|
|||
|
|
**原则**:
|
|||
|
|
- 前期准备 Agent 在前(调研、策划、设计)
|
|||
|
|
- 执行落地 Agent 在中(实施、制作、拍摄)
|
|||
|
|
- 收尾总结 Agent 在后(财务、验收、交付)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 四、内容创作策略
|
|||
|
|
|
|||
|
|
### 1. 启动序列(startupSequence)
|
|||
|
|
|
|||
|
|
**目的**:营造系统初始化的氛围
|
|||
|
|
|
|||
|
|
**标准模板**:
|
|||
|
|
```typescript
|
|||
|
|
startupSequence: [
|
|||
|
|
{ type: 'info', content: '🚀 启动[项目名称]生成系统...' },
|
|||
|
|
{ type: 'system', content: '初始化多Agent协作框架' },
|
|||
|
|
{ type: 'success', content: '✓ 系统核心加载完成' },
|
|||
|
|
{ type: 'system', content: '加载专业知识库: [领域1]/[领域2]/[领域3]' },
|
|||
|
|
{ type: 'progress', content: '████████████████████ 100%', duration: 1500 },
|
|||
|
|
{ type: 'success', content: '✓ 知识库加载完成' },
|
|||
|
|
{ type: 'info', content: '连接行业数据源...' },
|
|||
|
|
{ type: 'system', content: '├─ [数据源1]' },
|
|||
|
|
{ type: 'system', content: '├─ [数据源2]' },
|
|||
|
|
{ type: 'system', content: '├─ [数据源3]' },
|
|||
|
|
{ type: 'system', content: '└─ [数据源4]' },
|
|||
|
|
{ type: 'success', content: '✓ 数据源连接成功' },
|
|||
|
|
{ type: 'warning', content: '⚡ 检测到需求: [项目核心需求]' },
|
|||
|
|
{ type: 'info', content: '核心特点: [差异化定位/亮点]' },
|
|||
|
|
{ type: 'info', content: '正在分配[N]位专业Agent...' },
|
|||
|
|
]
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**时长建议**:10-15条消息
|
|||
|
|
|
|||
|
|
### 2. Agent 输出序列(agentSequence)
|
|||
|
|
|
|||
|
|
**结构设计原则**:
|
|||
|
|
|
|||
|
|
#### (1) 每个 Agent 的输出模板
|
|||
|
|
```typescript
|
|||
|
|
{
|
|||
|
|
agent: () => agents[0], // 当前 Agent
|
|||
|
|
outputs: [
|
|||
|
|
// 1. 开场白(必须)
|
|||
|
|
{ type: 'system', content: '[图标] [Agent名称] 正在[动作]...' },
|
|||
|
|
|
|||
|
|
// 2. 工作说明(必须)
|
|||
|
|
{ type: 'info', content: '[工作内容概述]' },
|
|||
|
|
|
|||
|
|
// 3. 进度条(可选,用于长时间任务)
|
|||
|
|
{ type: 'progress', content: '分析中...', duration: 1000 },
|
|||
|
|
|
|||
|
|
// 4. 核心结果(3-8条)
|
|||
|
|
{ type: 'success', content: '✓ [关键成果1]' },
|
|||
|
|
{ type: 'success', content: '✓ [关键成果2]' },
|
|||
|
|
|
|||
|
|
// 5. 详细输出(可选,用于列表数据)
|
|||
|
|
{ type: 'output', content: ' • [明细项1]' },
|
|||
|
|
{ type: 'output', content: ' • [明细项2]' },
|
|||
|
|
|
|||
|
|
// 6. 图片展示(核心亮点)
|
|||
|
|
{
|
|||
|
|
type: 'image',
|
|||
|
|
content: '[图标] [图片标题]',
|
|||
|
|
imageSrc: '/data/订单班文档资料/[订单班]/notion文稿/image/[图片名].jpg',
|
|||
|
|
imageAlt: '[图片描述]'
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
// 7. 总结(必须)
|
|||
|
|
{ type: 'success', content: '✓ [Agent工作总结]' },
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### (2) 图片使用策略
|
|||
|
|
|
|||
|
|
**原则**:
|
|||
|
|
- ✅ 每个 Agent 至少展示 1-3 张关键图片
|
|||
|
|
- ✅ 图片必须与当前 Agent 的工作内容紧密相关
|
|||
|
|
- ✅ 图片顺序遵循文档章节顺序
|
|||
|
|
- ✅ 使用描述性的 `content` 和 `imageAlt`
|
|||
|
|
|
|||
|
|
**食品订单班图片示例**:
|
|||
|
|
```typescript
|
|||
|
|
// 市场调研专家 → 市场宣传图
|
|||
|
|
{
|
|||
|
|
type: 'image',
|
|||
|
|
content: '📊 市场宣传营销策略',
|
|||
|
|
imageSrc: '/data/订单班文档资料/食品/notion文稿/image/市场宣传营销.jpg',
|
|||
|
|
imageAlt: '青莳轻食市场定位与营销'
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 品牌设计专家 → 品牌Logo
|
|||
|
|
{
|
|||
|
|
type: 'image',
|
|||
|
|
content: '🏷️ 青莳品牌LOGO设计',
|
|||
|
|
imageSrc: '/data/订单班文档资料/食品/notion文稿/image/品牌LOGO.jpg',
|
|||
|
|
imageAlt: '青莳轻食品牌Logo'
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**视觉设计订单班特殊处理(AIGC对比)**:
|
|||
|
|
```typescript
|
|||
|
|
// 分镜师展示线稿 → AI生成对比
|
|||
|
|
{
|
|||
|
|
type: 'image',
|
|||
|
|
content: '📐 镜头4-线稿图',
|
|||
|
|
imageSrc: '/data/订单班文档资料/视觉设计/notion文稿/分镜/线稿图片/xxx.jpg',
|
|||
|
|
imageAlt: '传统乐器表演场景线稿'
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
type: 'image',
|
|||
|
|
content: '🎬 镜头4-AI生成图',
|
|||
|
|
imageSrc: '/data/订单班文档资料/视觉设计/notion文稿/分镜/生成图片/xxx.jpg',
|
|||
|
|
imageAlt: 'AI生成的表演场景最终效果'
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### (3) 数据展示规范
|
|||
|
|
|
|||
|
|
**财务数据格式**:
|
|||
|
|
```typescript
|
|||
|
|
{ type: 'info', content: '成本结构分析:' },
|
|||
|
|
{ type: 'output', content: ' • 食材成本: 35% = 101.6万' },
|
|||
|
|
{ type: 'output', content: ' • 租金成本: 12% = 34.8万' },
|
|||
|
|
{ type: 'output', content: ' • 人工成本: 20% = 58.0万' },
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**时间安排格式**:
|
|||
|
|
```typescript
|
|||
|
|
{ type: 'info', content: '拍摄时间表:' },
|
|||
|
|
{ type: 'output', content: ' • D1: 勘景与报批(机位/日光测绘)' },
|
|||
|
|
{ type: 'output', content: ' • D2: 开篇·江南序曲(晨雾窗口)' },
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**人员配置格式**:
|
|||
|
|
```typescript
|
|||
|
|
{ type: 'success', content: '✓ 导演(6+1天): 12,000元 - 全程在场' },
|
|||
|
|
{ type: 'success', content: '✓ 制片PM(6+1天): 9,000元 - 预算与协调' },
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. 完成序列(completionSequence)
|
|||
|
|
|
|||
|
|
**目的**:总结整个项目的核心亮点和交付成果
|
|||
|
|
|
|||
|
|
**标准模板**:
|
|||
|
|
```typescript
|
|||
|
|
completionSequence: [
|
|||
|
|
{ type: 'system', content: '=' .repeat(70) },
|
|||
|
|
{ type: 'success', content: '🎉 [项目名称] 生成完成!' },
|
|||
|
|
{ type: 'system', content: '=' .repeat(70) },
|
|||
|
|
{ type: 'info', content: '' },
|
|||
|
|
|
|||
|
|
// 1. 核心竞争优势(3-6条)
|
|||
|
|
{ type: 'info', content: '🎯 核心竞争优势:' },
|
|||
|
|
{ type: 'success', content: '✓ [优势1]' },
|
|||
|
|
{ type: 'success', content: '✓ [优势2]' },
|
|||
|
|
|
|||
|
|
// 2. 财务亮点(3-5条)
|
|||
|
|
{ type: 'info', content: '💰 财务亮点:' },
|
|||
|
|
{ type: 'success', content: '✓ [财务指标1]' },
|
|||
|
|
{ type: 'success', content: '✓ [财务指标2]' },
|
|||
|
|
|
|||
|
|
// 3. 风险管理/创新亮点(可选)
|
|||
|
|
{ type: 'info', content: '🎨 AIGC技术创新:' },
|
|||
|
|
{ type: 'output', content: ' • [创新点1]' },
|
|||
|
|
|
|||
|
|
// 4. 交付物清单
|
|||
|
|
{ type: 'info', content: '📋 交付物清单:' },
|
|||
|
|
{ type: 'output', content: ' 1. [交付物1]' },
|
|||
|
|
|
|||
|
|
// 5. 文件保存位置
|
|||
|
|
{ type: 'success', content: '✅ 完整方案已保存至: /projects/[路径].pdf' },
|
|||
|
|
{ type: 'info', content: '📄 附件包含: [附件列表]' },
|
|||
|
|
]
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**时长建议**:20-30条消息
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 五、特殊内容处理
|
|||
|
|
|
|||
|
|
### 1. CSV 表格数据
|
|||
|
|
|
|||
|
|
**场景**:视觉设计订单班的分镜表
|
|||
|
|
|
|||
|
|
**处理方式**:
|
|||
|
|
- 不直接展示完整表格
|
|||
|
|
- 提取关键镜头展示(3-5个代表性镜头)
|
|||
|
|
- 配合图片展示线稿 → AI生成对比
|
|||
|
|
|
|||
|
|
**示例**:
|
|||
|
|
```typescript
|
|||
|
|
{ type: 'success', content: '✓ 镜头1: 远景/无人机/24mm - 俯瞰古镇屋顶' },
|
|||
|
|
{ type: 'success', content: '✓ 镜头2: 中景/滑轨/50mm - 夕阳下古亭' },
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. 对比内容(如 AIGC 分镜)
|
|||
|
|
|
|||
|
|
**展示策略**:
|
|||
|
|
1. 先说明创新点("AIGC辅助分镜预览")
|
|||
|
|
2. 展示线稿图片
|
|||
|
|
3. 展示AI生成图片
|
|||
|
|
4. 简短说明镜头内容
|
|||
|
|
|
|||
|
|
**示例**:
|
|||
|
|
```typescript
|
|||
|
|
{ type: 'info', content: 'AIGC分镜对比展示(线稿 → AI生成):' },
|
|||
|
|
{
|
|||
|
|
type: 'image',
|
|||
|
|
content: '📐 镜头4-线稿图',
|
|||
|
|
imageSrc: '/path/to/sketch.jpg',
|
|||
|
|
imageAlt: '场景线稿'
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
type: 'image',
|
|||
|
|
content: '🎬 镜头4-AI生成图',
|
|||
|
|
imageSrc: '/path/to/ai_generated.jpg',
|
|||
|
|
imageAlt: 'AI生成最终效果'
|
|||
|
|
},
|
|||
|
|
{ type: 'output', content: ' → 中景/手持稳定器 - 场景描述' },
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. 多层级数据
|
|||
|
|
|
|||
|
|
**场景**:预算明细、人员配置、设备清单
|
|||
|
|
|
|||
|
|
**展示原则**:
|
|||
|
|
- 先展示总数
|
|||
|
|
- 再分类展示
|
|||
|
|
- 使用缩进区分层级
|
|||
|
|
|
|||
|
|
**示例**:
|
|||
|
|
```typescript
|
|||
|
|
{ type: 'success', content: '✓ 总预算: 273,800元' },
|
|||
|
|
{ type: 'info', content: '成本结构分解:' },
|
|||
|
|
{ type: 'output', content: ' • 前期: 19,000元' },
|
|||
|
|
{ type: 'output', content: ' • 拍摄人力: 82,900元' },
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 六、图片路径规范
|
|||
|
|
|
|||
|
|
### 1. 路径格式
|
|||
|
|
|
|||
|
|
**固定前缀**:`/data/订单班文档资料/`
|
|||
|
|
|
|||
|
|
**完整格式**:
|
|||
|
|
```
|
|||
|
|
/data/订单班文档资料/[订单班名称]/notion文稿/image/[描述性文件名].jpg
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**示例**:
|
|||
|
|
```typescript
|
|||
|
|
// ✅ 正确(描述性文件名)
|
|||
|
|
imageSrc: '/data/订单班文档资料/食品/notion文稿/image/店面图片_正门.jpg'
|
|||
|
|
|
|||
|
|
// ❌ 错误(通用文件名)
|
|||
|
|
imageSrc: '/data/订单班文档资料/食品/notion文稿/image/图片_01.jpg'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. 图片文件名规范
|
|||
|
|
|
|||
|
|
**命名原则**:
|
|||
|
|
- ✅ 使用描述性名称(如:市场宣传营销.jpg)
|
|||
|
|
- ✅ 中文命名可接受
|
|||
|
|
- ✅ 使用下划线分隔(如:店面图片_正门.jpg)
|
|||
|
|
- ❌ 避免通用名称(如:图片_01.jpg)
|
|||
|
|
- ❌ 避免 UUID 或乱码
|
|||
|
|
|
|||
|
|
**重命名流程**(如果遇到通用文件名):
|
|||
|
|
1. 阅读 Markdown 文档,理解每张图片对应的内容
|
|||
|
|
2. 创建图片映射表(旧名 → 新名)
|
|||
|
|
3. 使用 Python 脚本批量重命名
|
|||
|
|
4. 更新 Markdown 中的图片引用
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 七、质量检查清单
|
|||
|
|
|
|||
|
|
### 创建前检查
|
|||
|
|
- [ ] Agent 数量与提示词文件一致
|
|||
|
|
- [ ] Agent 头像文件都存在
|
|||
|
|
- [ ] 图片文件名都是描述性的
|
|||
|
|
- [ ] Markdown 文档结构清晰
|
|||
|
|
- [ ] 关键数据已标记(预算、时间、数量)
|
|||
|
|
|
|||
|
|
### 创建中检查
|
|||
|
|
- [ ] Agent 顺序符合工作流程
|
|||
|
|
- [ ] 每个 Agent 至少有 1 张图片
|
|||
|
|
- [ ] 图片路径正确(以 /data/ 开头)
|
|||
|
|
- [ ] 数据格式一致(缩进、符号)
|
|||
|
|
- [ ] 进度条 duration 合理(800-1500ms)
|
|||
|
|
|
|||
|
|
### 创建后检查
|
|||
|
|
- [ ] TypeScript 无语法错误
|
|||
|
|
- [ ] 所有图片路径可访问
|
|||
|
|
- [ ] Agent 配置字段完整
|
|||
|
|
- [ ] 内容逻辑连贯
|
|||
|
|
- [ ] 总时长合理(3-5分钟模拟效果)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 八、常见问题与解决方案
|
|||
|
|
|
|||
|
|
### 问题1:图片加载失败(ERR_CONNECTION_REFUSED)
|
|||
|
|
|
|||
|
|
**原因**:
|
|||
|
|
- `public/data/订单班文档资料` 是软链接
|
|||
|
|
- Vite 默认不允许访问项目外部文件
|
|||
|
|
|
|||
|
|
**解决方案**:
|
|||
|
|
在 `vite.config.ts` 中添加:
|
|||
|
|
```typescript
|
|||
|
|
export default defineConfig({
|
|||
|
|
server: {
|
|||
|
|
fs: {
|
|||
|
|
allow: ['..'], // 允许访问父目录
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
preview: {
|
|||
|
|
fs: {
|
|||
|
|
allow: ['..'],
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
})
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 问题2:Agent 数量与文档不匹配
|
|||
|
|
|
|||
|
|
**症状**:
|
|||
|
|
- 终端模拟只有 6 个 Agent
|
|||
|
|
- 但 Agent_prompt 文件夹有 7 个提示词文件
|
|||
|
|
|
|||
|
|
**解决方案**:
|
|||
|
|
1. 检查 `Agent_prompt/` 文件夹
|
|||
|
|
2. 逐个阅读提示词文件
|
|||
|
|
3. 确保每个 Agent 都在 `agents` 数组中
|
|||
|
|
4. 检查是否有 Agent 被错误合并
|
|||
|
|
|
|||
|
|
### 问题3:图片文件名不规范
|
|||
|
|
|
|||
|
|
**症状**:
|
|||
|
|
- 图片名称为 `图片_01.jpg`、`图片_02.jpg`
|
|||
|
|
- Markdown 中也是通用名称
|
|||
|
|
|
|||
|
|
**解决方案**:
|
|||
|
|
1. 阅读 Markdown 文档上下文
|
|||
|
|
2. 创建映射表:`图片_01.jpg → 店面图片_正门.jpg`
|
|||
|
|
3. 使用 Python 批量重命名
|
|||
|
|
4. 更新 Markdown 引用
|
|||
|
|
|
|||
|
|
**Python 脚本模板**:
|
|||
|
|
```python
|
|||
|
|
import os
|
|||
|
|
import shutil
|
|||
|
|
|
|||
|
|
image_map = {
|
|||
|
|
"图片_01.jpg": "店面图片_正门.jpg",
|
|||
|
|
"图片_02.jpg": "店内场景_用餐区.jpg",
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
IMAGE_DIR = "/path/to/image/"
|
|||
|
|
for old_name, new_name in image_map.items():
|
|||
|
|
old_path = os.path.join(IMAGE_DIR, old_name)
|
|||
|
|
new_path = os.path.join(IMAGE_DIR, new_name)
|
|||
|
|
if os.path.exists(old_path):
|
|||
|
|
shutil.move(old_path, new_path)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 问题4:特殊字符编码问题
|
|||
|
|
|
|||
|
|
**症状**:
|
|||
|
|
- 文件名包含 URL 编码(如:%E9%9D%99%E5%B8%A7)
|
|||
|
|
- Bash 脚本处理中文失败
|
|||
|
|
|
|||
|
|
**解决方案**:
|
|||
|
|
- 使用 Python 而不是 Bash
|
|||
|
|
- 使用 `urllib.parse.unquote()` 解码
|
|||
|
|
- 指定 `encoding='utf-8'`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 九、代码模板
|
|||
|
|
|
|||
|
|
### 1. 基础模板
|
|||
|
|
|
|||
|
|
```typescript
|
|||
|
|
import { Agent } from '@/store/demoStore';
|
|||
|
|
import { SimulationData, TerminalLine } from './index';
|
|||
|
|
|
|||
|
|
// [订单班名称]订单班专属Agent配置
|
|||
|
|
const [变量名]Agents: Agent[] = [
|
|||
|
|
{
|
|||
|
|
id: '[订单班]_[agent1]',
|
|||
|
|
name: '[Agent1名称]',
|
|||
|
|
icon: '🎨',
|
|||
|
|
avatar: '/data/订单班文档资料/[订单班]/agent头像/[Agent1].jpg',
|
|||
|
|
model: 'GPT-4',
|
|||
|
|
role: '[简短职责]',
|
|||
|
|
status: 'waiting',
|
|||
|
|
},
|
|||
|
|
// ... 更多 Agents
|
|||
|
|
];
|
|||
|
|
|
|||
|
|
export const [变量名]Simulation = (): SimulationData => ({
|
|||
|
|
orderClassId: '[订单班id]',
|
|||
|
|
orderClassName: '[订单班名称]',
|
|||
|
|
projectTitle: '[项目标题]',
|
|||
|
|
agents: [变量名]Agents,
|
|||
|
|
|
|||
|
|
startupSequence: [
|
|||
|
|
// 启动序列
|
|||
|
|
],
|
|||
|
|
|
|||
|
|
agentSequence: [
|
|||
|
|
// Agent 输出序列
|
|||
|
|
],
|
|||
|
|
|
|||
|
|
completionSequence: [
|
|||
|
|
// 完成序列
|
|||
|
|
]
|
|||
|
|
});
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. Agent 输出模板
|
|||
|
|
|
|||
|
|
```typescript
|
|||
|
|
{
|
|||
|
|
agent: () => agents[0],
|
|||
|
|
outputs: [
|
|||
|
|
{ type: 'system', content: '[图标] [Agent名称] 正在[动作]...' },
|
|||
|
|
{ type: 'info', content: '[工作内容]' },
|
|||
|
|
{ type: 'progress', content: '[进度描述]...', duration: 1000 },
|
|||
|
|
{ type: 'success', content: '✓ [成果1]' },
|
|||
|
|
{ type: 'success', content: '✓ [成果2]' },
|
|||
|
|
{
|
|||
|
|
type: 'image',
|
|||
|
|
content: '[图标] [图片标题]',
|
|||
|
|
imageSrc: '/data/订单班文档资料/[订单班]/notion文稿/image/[图片].jpg',
|
|||
|
|
imageAlt: '[图片描述]'
|
|||
|
|
},
|
|||
|
|
{ type: 'success', content: '✓ [总结]' },
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 十、实战案例对比
|
|||
|
|
|
|||
|
|
### 案例1:食品订单班
|
|||
|
|
|
|||
|
|
**特点**:
|
|||
|
|
- 7个 Agent(市场→品牌→选址→菜品→运营→人员→财务)
|
|||
|
|
- 图片类型:店面、菜品、人员、流程
|
|||
|
|
- 数据类型:财务预算、营收预测、成本结构
|
|||
|
|
|
|||
|
|
**处理重点**:
|
|||
|
|
- 图片重命名(25张从通用名改为描述性名称)
|
|||
|
|
- Agent 顺序调整(分离品牌设计和选址装修)
|
|||
|
|
- 财务数据精确呈现(50万投资,290万营收)
|
|||
|
|
|
|||
|
|
### 案例2:视觉设计订单班
|
|||
|
|
|
|||
|
|
**特点**:
|
|||
|
|
- 5个 Agent(总监→编剧→导演→分镜→制片)
|
|||
|
|
- 图片类型:古镇风光、分镜对比、设备清单
|
|||
|
|
- 特殊内容:CSV 分镜表、AIGC 线稿→生成对比
|
|||
|
|
|
|||
|
|
**处理重点**:
|
|||
|
|
- AIGC 分镜展示(线稿图 + AI生成图成对展示)
|
|||
|
|
- 分镜表简化(17个镜头选取 4-5 个代表性展示)
|
|||
|
|
- 六大篇章结构(古镇→文化→美食→湿地→农业→夜游)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 十一、协作与记忆
|
|||
|
|
|
|||
|
|
### 1. 记录到 Serena
|
|||
|
|
|
|||
|
|
每次完成一个订单班的终端模拟创建后,应记录:
|
|||
|
|
- Agent 配置思路
|
|||
|
|
- 特殊内容处理方式
|
|||
|
|
- 遇到的问题和解决方案
|
|||
|
|
|
|||
|
|
### 2. 跨订单班借鉴
|
|||
|
|
|
|||
|
|
**可复用**:
|
|||
|
|
- Agent 配置结构
|
|||
|
|
- 启动/完成序列模板
|
|||
|
|
- 图片展示策略
|
|||
|
|
- 数据格式规范
|
|||
|
|
|
|||
|
|
**需定制**:
|
|||
|
|
- Agent 数量和职责
|
|||
|
|
- 图片内容和顺序
|
|||
|
|
- 特殊内容处理
|
|||
|
|
- 项目特色亮点
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 十二、持续优化
|
|||
|
|
|
|||
|
|
### 1. 收集反馈
|
|||
|
|
|
|||
|
|
- 用户观看终端模拟的反馈
|
|||
|
|
- 图片展示效果
|
|||
|
|
- 内容节奏是否合理
|
|||
|
|
- Agent 顺序是否清晰
|
|||
|
|
|
|||
|
|
### 2. 迭代改进
|
|||
|
|
|
|||
|
|
- 调整 Agent 输出时长
|
|||
|
|
- 优化图片展示顺序
|
|||
|
|
- 增加/减少数据细节
|
|||
|
|
- 改进特殊内容展示
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 附录:工具和命令
|
|||
|
|
|
|||
|
|
### 1. 查看文件结构
|
|||
|
|
```bash
|
|||
|
|
ls -la data/订单班文档资料/[订单班名称]/Agent_prompt/
|
|||
|
|
ls -la data/订单班文档资料/[订单班名称]/agent头像/
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. 检查图片文件
|
|||
|
|
```bash
|
|||
|
|
find data/订单班文档资料/[订单班名称]/notion文稿/image -name "*.jpg"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. 重命名图片(Python)
|
|||
|
|
```bash
|
|||
|
|
python3 /tmp/rename_images.py
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 4. 验证 TypeScript 语法
|
|||
|
|
```bash
|
|||
|
|
cd web_frontend/exhibition-demo
|
|||
|
|
npm run build
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 最后更新
|
|||
|
|
2025-10-01
|
|||
|
|
|
|||
|
|
## 版本历史
|
|||
|
|
- v1.0 (2025-10-01): 基于食品和视觉设计两个订单班的实践总结
|