工作流设计模式
本页面介绍一些常用的工作流设计模式,帮助你更好地组织和构建工作流。
基础模式
简单对话模式
最基本的对话处理模式。
yaml
name: "基础对话"
triggers:
- type: message
pattern: ".*"
steps:
- type: llm
model: gpt-3.5-turbo
prompt: |
你是一个友好的助手。
请回答用户的问题:{{message}}
命令处理模式
处理特定命令的模式。
yaml
name: "命令处理"
triggers:
- type: message
pattern: "^/"
steps:
- type: condition
if: "{{message.startsWith('/help')}}"
then:
- type: message
content: "可用命令列表:..."
高级模式
多轮对话模式
处理需要多个步骤的对话。
yaml
name: "问卷调查"
triggers:
- type: message
pattern: "开始调查"
steps:
- type: state
action: set
key: step
value: 1
- type: message
content: "请问你的年龄是?"
- type: wait
for: message
- type: state
action: set
key: age
value: "{{message}}"
- type: message
content: "你的职业是?"
# ... 更多步骤
工作流链式调用
多个工作流相互调用。
yaml
name: "用户注册"
steps:
- type: workflow
name: "验证信息"
- type: workflow
name: "创建账号"
- type: workflow
name: "发送欢迎消息"
特殊场景
定时任务模式
定期执行的工作流。
yaml
name: "每日提醒"
triggers:
- type: schedule
cron: "0 9 * * *"
steps:
- type: message
content: "早上好!今天的任务是..."
事件处理模式
响应系统事件的工作流。
yaml
name: "新成员欢迎"
triggers:
- type: event
event: member_join
steps:
- type: message
content: "欢迎 {{event.member.name}} 加入!"
模式示例
客服机器人
yaml
name: "客服机器人"
triggers:
- type: message
pattern: ".*"
steps:
- type: condition
if: "{{!context.started}}"
then:
- type: message
content: "你好!我是客服机器人,请问有什么可以帮你?"
- type: context
action: set
key: started
value: true
- type: llm
model: gpt-3.5-turbo
prompt: |
你是一个专业的客服代表。
历史对话:{{context.history}}
用户问题:{{message}}
游戏助手
yaml
name: "游戏助手"
triggers:
- type: message
pattern: "^/game"
steps:
- type: switch
value: "{{message}}"
cases:
"/game start":
- type: workflow
name: "开始游戏"
"/game status":
- type: workflow
name: "查看状态"
"/game help":
- type: workflow
name: "游戏帮助"
最佳实践
工作流组织
- 按功能分类
- 保持单一职责
- 适当拆分模块
状态管理
- 清晰的状态转换
- 合理的数据存储
- 异常状态处理
错误处理
- 优雅的错误提示
- 状态回滚机制
- 日志记录
性能优化
- 避免重复操作
- 合理使用缓存
- 控制调用链长度
可维护性
- 清晰的命名
- 完整的注释
- 模块化设计