完整使用场景示例
本文档提供端到端的实战案例,展示如何使用 Sira AI 构建真实的 AI 应用。
案例 1:智能客服系统
业务需求
某电商公司需要一个智能客服系统:
- 7×24小时在线
- 自动回答常见问题(商品、订单、物流)
- 复杂问题转人工
- 支持图片识别(用户发送订单截图)
- 多渠道接入(企业微信、官网)
系统设计
架构
用户 → Application (企微/Web)
→ Orchestrator (Conditional 路由)
├→ 商品咨询 Agent
├→ 订单查询 Agent
├→ 物流查询 Agent
└→ 通用客服 Agent (默认)实施步骤
第 1 步:准备 AI 模型
yaml
模型配置:
名称: gpt-4o-mini
提供商: OpenAI
API Key: sk-xxx
模型类型: [LLM, VISION] # 支持图片识别
Temperature: 0.3 # 客服需要确定性强的回复第 2 步:创建知识库
yaml
知识库 1: 商品信息
文档:
- 商品目录.pdf
- 产品规格书.docx
- 常见问题.md
知识库 2: 订单流程
文档:
- 下单流程.md
- 退换货政策.pdf
- 发票说明.docx
知识库 3: 物流信息
文档:
- 配送时效.md
- 快递公司列表.xlsx第 3 步:创建专业 Agents
Agent 1: 商品咨询专家
yaml
名称: product_consultant
显示名称: 商品咨询专家
模型: gpt-4o-mini
模型类型: [LLM, VISION]
系统提示词: |
你是电商平台的商品咨询专家。
【职责范围】
- 解答商品功能、规格、价格问题
- 提供选购建议
- 对比不同商品
- 识别用户发送的商品图片
【回复规范】
- 专业、准确、易懂
- 重点突出商品优势
- 适时推荐相关商品
- 不做不实承诺
【限制】
- 不处理订单问题(引导咨询订单专家)
- 不处理物流问题(引导咨询物流专家)
- 价格以系统为准,不承诺额外优惠
知识库: [商品信息]
MCP 工具: [] # 商品咨询不需要外部工具Agent 2: 订单查询专家
yaml
名称: order_specialist
显示名称: 订单查询专家
模型: gpt-4o-mini
模型类型: [LLM, VISION] # 识别订单截图
系统提示词: |
你是订单查询专家。
【职责范围】
- 查询订单状态
- 处理订单修改
- 解答订单问题
- 识别订单截图获取订单号
【使用工具】
- order_query_tool: 查询订单信息
【回复流程】
1. 获取订单号(用户提供或从截图识别)
2. 调用工具查询订单
3. 解释订单状态
4. 提供后续操作建议
【限制】
- 不处理商品咨询(引导咨询商品专家)
- 敏感操作需验证用户身份
知识库: [订单流程]
MCP 工具: [order_query_tool] # 需要配置订单查询工具Agent 3: 物流查询专家
yaml
名称: logistics_specialist
显示名称: 物流查询专家
模型: gpt-4o-mini
系统提示词: |
你是物流查询专家。
【职责范围】
- 查询物流信息
- 预估配送时效
- 处理物流异常
- 解答配送问题
【使用工具】
- logistics_query_tool: 查询物流轨迹
【回复规范】
- 及时告知物流状态
- 异常情况主动说明
- 提供联系方式
知识库: [物流信息]
MCP 工具: [logistics_query_tool]Agent 4: 通用客服
yaml
名称: general_service
显示名称: 通用客服
模型: gpt-4o-mini
系统提示词: |
你是通用客服助手。
【职责范围】
- 处理未分类的问题
- 基础咨询和问候
- 引导用户到专业客服
- 收集反馈建议
【转接规则】
- 商品问题 → 咨询商品专家
- 订单问题 → 咨询订单专家
- 物流问题 → 咨询物流专家
- 复杂问题 → 转人工客服
知识库: []
MCP 工具: []第 4 步:创建 Orchestrator(Conditional 路由)
yaml
Orchestrator:
名称: customer_service_routing
显示名称: 智能客服路由
类型: CONDITIONAL
路由规则:
规则 1 - 商品咨询:
名称: 商品咨询
关键词: [
"商品", "产品", "价格", "规格", "功能",
"推荐", "选购", "对比", "参数", "性能"
]
Agent: product_consultant
优先级: 1
规则 2 - 订单查询:
名称: 订单查询
关键词: [
"订单", "下单", "支付", "退款", "取消",
"订单号", "发票", "改地址"
]
Agent: order_specialist
优先级: 2
规则 3 - 物流查询:
名称: 物流查询
关键词: [
"物流", "快递", "配送", "发货", "到货",
"派送", "签收", "运单号"
]
Agent: logistics_specialist
优先级: 3
默认 Agent: general_service第 5 步:创建 Applications
Application 1: 企业微信(内部客服)
yaml
平台: wework_aibot
名称: internal_customer_service
显示名称: 内部客服系统
Orchestrator: customer_service_routing
配置:
Corp ID: ww123456
Agent ID: 1000001
Agent Secret: xxx
Token: xxx
Encoding AES Key: xxx
用途: 员工查询订单、物流Application 2: 官网客服
yaml
平台: webclient
名称: website_customer_service
显示名称: 在线客服
Orchestrator: customer_service_routing
配置:
自动生成Token: ✓
用途: 官网访客咨询测试场景
场景 1:商品咨询
用户: "你们的iPhone 15 Pro有哪些颜色?"
系统路由: 匹配"商品"关键词 → product_consultant
Agent 响应:
iPhone 15 Pro 提供以下颜色:
1. 原色钛金属
2. 白色钛金属
3. 蓝色钛金属
4. 黑色钛金属
您偏好哪种颜色呢?我可以为您提供更多信息。场景 2:订单查询(含图片)
用户: [发送订单截图] "帮我查下这个订单"
系统路由: 匹配"订单"关键词 → order_specialist
Agent 处理:
1. 使用 Vision 识别截图中的订单号: "2024010112345"
2. 调用 order_query_tool 查询
3. 获取订单信息
Agent 响应:
已查询到订单 2024010112345:
- 状态:已发货
- 商品:iPhone 15 Pro 256GB 蓝色钛金属
- 预计送达:2024年1月5日
- 快递单号:SF1234567890
您的包裹正在派送中,预计明天送达。场景 3:物流查询
用户: "快递怎么还没到?"
系统路由: 匹配"快递"关键词 → logistics_specialist
Agent 响应:
请提供您的订单号或快递单号,我帮您查询物流信息。
用户: "订单号2024010112345"
Agent 处理:
调用 logistics_query_tool 查询
Agent 响应:
您的包裹物流信息如下:
- 快递公司:顺丰速运
- 运单号:SF1234567890
- 当前状态:派送中
- 最新动态:[2024-01-04 14:30] 快递员张师傅派送中,电话138xxxx1234
预计今天送达,请保持电话畅通。场景 4:未分类问题
用户: "你好"
系统路由: 无匹配 → general_service (默认)
Agent 响应:
您好!我是智能客服助手,很高兴为您服务。
我可以帮您:
• 商品咨询:了解商品功能、价格、规格
• 订单查询:查询订单状态、物流信息
• 物流查询:查询配送进度
请问有什么可以帮您的吗?效果评估
上线效果
yaml
性能指标:
- 响应速度: 平均 2.5 秒(从 5 分钟降至秒级)
- 问题解决率: 82%(自动解决,无需人工)
- 客户满意度: 4.6/5.0(提升 35%)
- 人工客服量: 减少 80%
成本节约:
- 客服人员: 从 20 人减至 5 人
- 年度成本: 节约约 150 万元
- ROI: 6 个月回本案例 2:技术文档助手
业务需求
某软件公司需要技术文档助手:
- 回答技术问题
- 提供代码示例
- 查询最新文档
- 支持多个技术栈(React、Node.js、Docker)
系统设计
架构
用户 → Web Client
→ Orchestrator (Collaboration 顺序协作)
├→ 文档检索 Agent (查询内部文档)
├→ 代码生成 Agent (生成示例代码)
└→ 技术专家 Agent (综合解答)实施步骤
第 1 步:创建知识库
yaml
知识库: technical_docs
文档:
- React 开发指南.md
- Node.js 最佳实践.pdf
- Docker 部署手册.docx
- API 参考文档.md
- 故障排查指南.md第 2 步:创建 Agents
Agent 1: 文档检索专家
yaml
名称: doc_retriever
显示名称: 文档检索专家
模型: gpt-4o-mini
系统提示词: |
你是文档检索专家,负责查找相关技术文档。
【职责】
从知识库中检索最相关的文档内容
提取关键信息和代码片段
标注信息来源
【输出格式】
【文档来源】
- 文档A: 相关内容...
- 文档B: 相关内容...
知识库: [technical_docs]
MCP 工具: [Context7] # 查询最新官方文档Agent 2: 代码生成专家
yaml
名称: code_generator
显示名称: 代码生成专家
模型: gpt-4o # 代码生成用更强的模型
系统提示词: |
你是代码生成专家。
【职责】
- 生成高质量代码示例
- 代码符合最佳实践
- 添加必要的注释
- 提供使用说明
【代码规范】
- 使用TypeScript/ES6+
- 遵循ESLint规则
- 包含错误处理
- 提供完整可运行的示例
MCP 工具: [Context7] # 参考官方示例Agent 3: 技术专家
yaml
名称: tech_expert
显示名称: 技术专家
模型: gpt-4o
系统提示词: |
你是资深技术专家,负责综合解答技术问题。
【职责】
- 整合文档检索和代码生成的结果
- 提供深入的技术分析
- 给出最佳实践建议
- 清晰组织回复结构
【回复结构】
1. 问题理解
2. 技术方案
3. 代码示例(引用代码生成专家的结果)
4. 最佳实践
5. 相关资源(引用文档检索专家的来源)
MCP 工具: [Context7, WebSearch]第 3 步:创建 Orchestrator
yaml
Orchestrator:
名称: tech_docs_collaboration
类型: COLLABORATION
配置:
Agents:
- doc_retriever
- code_generator
- tech_expert
协作策略: SEQUENTIAL # 顺序执行
启用汇总: false # 由 tech_expert 自己整合第 4 步:创建 Application
yaml
平台: webclient
名称: tech_docs_assistant
显示名称: 技术文档助手
Orchestrator: tech_docs_collaboration使用示例
问题:如何在 React 中使用 useEffect?
用户: "如何在 React 中使用 useEffect 监听状态变化?"
Step 1 - doc_retriever 执行:
检索知识库 + 调用 Context7
输出:
【文档来源】
- React 开发指南: useEffect 用于副作用处理...
- Context7: React 19 最新文档 useEffect 说明...
Step 2 - code_generator 执行:
基于文档生成代码
输出:
```tsx
import { useEffect, useState } from 'react';
function UserProfile({ userId }: { userId: string }) {
const [user, setUser] = useState(null);
const [loading, setLoading] = useState(true);
useEffect(() => {
// 监听 userId 变化
let cancelled = false;
async function fetchUser() {
setLoading(true);
try {
const response = await fetch(`/api/users/${userId}`);
const data = await response.json();
if (!cancelled) {
setUser(data);
}
} catch (error) {
console.error('Failed to fetch user:', error);
} finally {
if (!cancelled) {
setLoading(false);
}
}
}
fetchUser();
// 清理函数,防止内存泄漏
return () => {
cancelled = true;
};
}, [userId]); // 依赖数组:userId 变化时重新执行
if (loading) return <div>Loading...</div>;
return <div>{user?.name}</div>;
}
```
Step 3 - tech_expert 整合:
综合文档和代码,给出完整回复
最终回复:
# useEffect 监听状态变化
## 问题理解
您想了解如何使用 useEffect 监听 React 状态变化并执行副作用。
## 技术方案
useEffect 是 React Hooks 中用于处理副作用的 API,通过依赖数组控制执行时机。
## 代码示例
[引用 code_generator 生成的代码]
## 关键要点
1. **依赖数组**: `[userId]` 表示当 userId 变化时重新执行
2. **清理函数**: return 的函数在组件卸载或effect重新执行前调用
3. **防止内存泄漏**: 使用 cancelled 标志避免在组件已卸载时更新状态
## 最佳实践
- 避免在 effect 中直接修改依赖的状态(可能导致无限循环)
- 始终提供依赖数组,避免不必要的执行
- 异步操作要处理组件卸载的情况
## 相关资源
- [React 开发指南 - useEffect 章节]
- [React 19 官方文档 - Hooks API](https://react.dev/reference/react/useEffect)案例 3:数据分析助手
业务需求
销售团队需要数据分析助手:
- 查询销售数据
- 生成分析报告
- 制作可视化图表
- 提供业务建议
系统设计
架构
用户 → 企业微信 AI Bot
→ Orchestrator (Supervisor 模式)
├→ Supervisor (任务分解和调度)
├→ 数据分析 Worker
├→ 报告撰写 Worker
└→ 图表制作 Worker实施步骤
第 1 步:开发自定义 MCP 工具
工具 1:数据库查询工具
python
# mcp_tools/database_query.py
from fastmcp import FastMCP
import mysql.connector
mcp = FastMCP("Database Query Tool")
@mcp.tool()
async def query_sales_data(
start_date: str,
end_date: str,
group_by: str = "day"
) -> str:
"""查询销售数据
Args:
start_date: 开始日期 YYYY-MM-DD
end_date: 结束日期 YYYY-MM-DD
group_by: 分组维度 (day/week/month)
Returns:
JSON 格式的销售数据
"""
conn = mysql.connector.connect(...)
cursor = conn.cursor(dictionary=True)
if group_by == "day":
sql = """
SELECT DATE(order_date) as date,
SUM(amount) as total_sales,
COUNT(*) as order_count
FROM orders
WHERE order_date BETWEEN %s AND %s
GROUP BY DATE(order_date)
ORDER BY date
"""
# ... 其他分组逻辑
cursor.execute(sql, (start_date, end_date))
results = cursor.fetchall()
return json.dumps(results, ensure_ascii=False)注册到 Sira AI 后命名为 sales_query_tool。
第 2 步:创建 Agents
Supervisor Agent
yaml
名称: data_analysis_supervisor
模型: gpt-4o # Supervisor 需要强模型
系统提示词: |
你是数据分析任务的协调者。
【可用专家】
- data_analyst: 数据分析专家,使用 sales_query_tool 查询数据
- report_writer: 报告撰写专家,撰写分析报告
- chart_maker: 图表制作专家,生成可视化图表
【任务分解流程】
1. 理解用户需求
2. 拆分为子任务
3. 依次委派给专家
4. 汇总结果
【委派示例】
用户: "分析本月销售数据"
步骤:
1. 委派 data_analyst 查询并分析数据
2. 委派 report_writer 撰写报告
3. 委派 chart_maker 制作图表
4. 汇总完整分析
MCP 工具: [] # Supervisor 不直接调用工具Worker 1: 数据分析专家
yaml
名称: data_analyst
模型: gpt-3.5-turbo # Worker 可用便宜模型
系统提示词: |
你是数据分析专家。
【职责】
使用 sales_query_tool 查询数据并进行分析
【分析流程】
1. 调用工具查询数据
2. 计算关键指标(总销售额、增长率、TOP产品等)
3. 识别数据趋势和异常
4. 输出结构化分析结果
MCP 工具: [sales_query_tool]Worker 2: 报告撰写专家
yaml
名称: report_writer
模型: gpt-3.5-turbo
系统提示词: |
你是商业报告撰写专家。
【职责】
基于数据分析结果撰写专业报告
【报告结构】
# 销售数据分析报告
## 数据概览
- 时间范围
- 总销售额
- 订单数量
## 关键发现
- 增长趋势
- 热门产品
- 异常情况
## 业务建议
- 基于数据的actionable建议
MCP 工具: []Worker 3: 图表制作专家
yaml
名称: chart_maker
模型: gpt-3.5-turbo
系统提示词: |
你是数据可视化专家。
【职责】
基于数据创建可视化图表建议
【图表类型】
- 折线图:展示趋势
- 柱状图:对比数据
- 饼图:展示占比
- 热力图:展示分布
【输出格式】
图表类型:折线图
数据:[...]
配置:{...}
MCP 工具: [] # 实际图表生成可以集成图表库第 3 步:创建 Orchestrator
yaml
Orchestrator:
名称: data_analysis_system
类型: SUPERVISOR
配置:
Supervisor: data_analysis_supervisor
Workers:
- data_analyst
- report_writer
- chart_maker
启用汇总: true第 4 步:创建 Application
yaml
平台: wework_aibot
名称: sales_analysis_bot
Orchestrator: data_analysis_system
配置:
Corp ID: ww123456
Agent ID: 1000003
...使用示例
用户: "分析本月销售数据并生成报告"
Supervisor 分析:
这个任务需要三个步骤:数据分析、报告撰写、图表建议
Step 1: 委派 data_analyst
任务: "查询并分析2024年1月销售数据"
data_analyst 执行:
调用 sales_query_tool(start_date="2024-01-01", end_date="2024-01-31")
返回:
总销售额: 500万
环比增长: 15%
TOP产品: iPhone 15 Pro (120万), MacBook Pro (80万)
订单数: 3,245笔
Step 2: 委派 report_writer
任务: "基于以下数据撰写报告: [data_analyst的结果]"
report_writer 执行:
生成报告:
# 2024年1月销售数据分析报告
## 数据概览
- 时间范围: 2024年1月1日 - 1月31日
- 总销售额: 500万元
- 订单数量: 3,245笔
- 环比增长: 15%
## 关键发现
1. 销售强劲增长
1月销售额较上月增长15%,表现优异
2. 爆款产品
- iPhone 15 Pro: 120万(24%)
- MacBook Pro: 80万(16%)
3. 订单增长
订单数环比增长12%,客单价略有提升
## 业务建议
1. 加大iPhone和MacBook库存
2. 推出配件套餐提升客单价
3. 分析增长原因,复制成功经验
Step 3: 委派 chart_maker
任务: "为销售数据创建可视化建议"
chart_maker 执行:
建议图表:
1. 折线图:每日销售额趋势
2. 饼图:TOP10产品占比
3. 柱状图:周销售对比
Supervisor 汇总:
整合完整的分析报告,包含数据、文字和图表建议效果
yaml
使用前:
- 数据分析: 需要2小时(手动查询、Excel分析)
- 报告撰写: 需要1小时
- 总耗时: 3小时
使用后:
- 完整分析: 30秒
- 提升效率: 360倍
- 准确性: 无人为错误案例 4:多模态图片分析
业务需求
设计团队需要图片分析助手:
- 分析设计稿
- 提供改进建议
- 从多个角度评价(设计、用户体验、技术实现)
系统设计
用户 → Web Client
→ Orchestrator (Collaboration 并行)
├→ 设计专家 (视觉设计分析)
├→ UX专家 (用户体验分析)
└→ 技术专家 (实现难度分析)实施步骤
创建 Agents(都需要 VISION)
Agent 1: 设计专家
yaml
名称: design_expert
模型: gpt-4o
模型类型: [LLM, VISION] # 必须支持图片
系统提示词: |
你是资深视觉设计专家。
【分析维度】
- 配色方案
- 排版布局
- 字体选择
- 视觉层次
- 品牌一致性
【输出格式】
【设计分析】
优点:...
改进建议:...
评分:X/10Agent 2: UX专家
yaml
名称: ux_expert
模型: gpt-4o
模型类型: [LLM, VISION]
系统提示词: |
你是用户体验专家。
【分析维度】
- 信息架构
- 交互流程
- 可用性
- 无障碍访问
- 用户友好性
【输出格式】
【UX分析】
用户路径:...
痛点:...
建议:...
评分:X/10Agent 3: 技术专家
yaml
名称: tech_expert
模型: gpt-4o
模型类型: [LLM, VISION]
系统提示词: |
你是前端技术专家。
【分析维度】
- 实现难度
- 技术选型
- 性能考虑
- 响应式设计
- 兼容性
【输出格式】
【技术分析】
实现方案:...
技术难点:...
工期估算:...
评分:X/10创建 Orchestrator
yaml
Orchestrator:
名称: design_review
类型: COLLABORATION
配置:
Agents: [design_expert, ux_expert, tech_expert]
协作策略: PARALLEL # 并行,独立评审
启用汇总: true使用示例
用户: [上传设计稿] "请评价这个移动App首页设计"
三位专家并行分析(同时执行):
design_expert:
【设计分析】
优点:
- 配色清新,符合品牌定位
- 卡片式布局现代感强
- 留白适当,视觉舒适
改进建议:
- 主CTA按钮可以更突出
- 部分文字对比度偏低
- 图标风格统一性待提升
评分: 8/10
ux_expert:
【UX分析】
用户路径:
首页 → 分类浏览 → 商品详情 → 加购 → 结算
路径清晰,符合用户习惯
痛点:
- 搜索框位置不够明显
- 分类入口层级过深
- 缺少快速访问历史记录
建议:
- 搜索框置顶
- 增加常用分类快捷入口
- 添加"最近浏览"模块
评分: 7/10
tech_expert:
【技术分析】
实现方案:
- React Native / Flutter
- 瀑布流布局 (可复用组件)
- 图片懒加载
技术难点:
- 瀑布流性能优化
- 多种卡片样式的统一管理
- 深色模式适配
工期估算: 15人日
评分: 技术难度适中,可实现
系统汇总:
综合三位专家的意见:
【综合评价】
这是一个整体质量较高的设计方案,视觉设计优秀,用户体验良好,
技术实现难度适中。
【设计维度】8/10
配色和布局优秀,细节需优化
【UX维度】7/10
基本流程合理,部分交互需改进
【技术维度】可行
15人日工期,技术风险可控
【优先改进项】
1. 搜索框置顶(P0)
2. 主CTA按钮加强(P0)
3. 增加常用分类入口(P1)
4. 统一图标风格(P1)总结
架构选择指南
| 场景类型 | 推荐架构 | 案例 |
|---|---|---|
| 多场景路由 | Conditional | 智能客服(按问题类型路由) |
| 多角度分析 | Collaboration | 技术文档助手、设计评审 |
| 复杂任务分解 | Supervisor | 数据分析助手 |
| 固定流程 | Workflow | 审批流程、数据处理 |
| 简单问答 | Single | 天气助手、FAQ |
成本优化技巧
- 模型分层:Supervisor 用强模型,Worker 用便宜模型
- 工具选择:只配置必要的 MCP 工具
- 缓存策略:相同问题返回缓存
- 提示词优化:减少不必要的输出长度
常见陷阱
- 过度配置工具:Agent配置10个工具但只用2个
- 提示词不明确:Agent 不知道什么时候调用工具
- 架构过复杂:简单任务用了 Supervisor
- 忽略测试:没有充分测试就上线
下一步
学完所有教程后,您可以:
- 🚀 开始构建自己的 AI 应用
- 📖 阅读 API 文档 了解更多细节
- 🛠️ 开发自定义 MCP 工具扩展能力
- 💬 加入社区交流经验
💡 提示:
- 从简单场景开始,逐步尝试复杂编排
- 充分测试后再上线生产环境
- 持续优化提示词和配置
- 关注成本和性能平衡
