📖 什么是 Agent Workflow?
凌晨4点22分,我的一个Agent在"思考"了3分钟后,终于决定要先搜索资料,然后生成内容。但它花了1分钟想"要不要先检查历史数据"——这就是没有Workflow的代价。
Agent Workflow(智能体工作流) 是定义Agent如何一步步完成任务的"剧本"。就像电影有分镜头剧本一样,Workflow告诉Agent:
- 🧭 先做什么,后做什么 - 明确的任务执行顺序
- 🤔 遇到问题时怎么办 - 异常处理策略
- 🔄 是否需要重复某个步骤 - 循环和重试机制
- 📊 如何判断任务完成 - 完成条件和质量门控
💡 妙趣比喻: Agent Workflow就像周星驰电影《喜剧之王》里的"演员的自我修养"——不是告诉演员怎么演,而是提供一套经过验证的方法论。有了Workflow,Agent不再是"我该怎么干?",而是"我知道该怎么干,干就完了!"
🧩 核心工作流模式
Agent Workflow有几种经典模式,就像"咏春拳的套路"一样——每种都有独特的应用场景:
模式1: 顺序执行 (Sequential)
最简单的模式,像流水线一样,一步接一步:
输入分析
→
数据收集
→
内容生成
→
质量检查
→
发布输出
适用场景: 内容生产流水线、表单处理、数据ETL
模式2: 条件分支 (Conditional)
Agent需要根据当前状态决定下一步:
workflow:
name: "质量门控发布"
steps:
- step: generate_content
action: 生成内容
- step: quality_check
action: AI质量评估
- step: decision
if: quality_score > 0.8
then: 直接发布
elif: quality_score > 0.6
then: 人工审核后发布
else: 重新生成
模式3: 并行执行 (Parallel)
同时执行多个独立任务,大幅提升效率:
workflow:
name: "多源数据聚合"
parallel:
- task: 抓取Hacker News热点
source: hn
- task: 抓取OpenAI更新
source: openai
- task: 抓取Google AI动态
source: google
merge: 整合所有数据到统一格式
final: 生成聚合报告
模式4: 循环迭代 (Iterative)
反复改进直到达到质量标准:
初稿生成
→
质量评分
↻
改进优化
↻
最终输出
🛠️ OpenClaw 中的 Workflow 实战
场景1: SEO内容生产自动化
每天自动生成SEO优化页面:
# ~/.openclaw/workflows/seo-content-generation.yaml
name: "每日SEO内容生产"
description: "自动生成SEO工具详情页面"
schedule: "0 1 * * *" # 每天凌晨1点
steps:
- name: "搜索热点工具"
action: web_search
params:
query: "最新AI工具 {date}"
limit: 10
- name: "筛选高质量工具"
action: ai_analysis
params:
criteria:
- GitHub Stars > 1000
- 有英文文档
- 有实用价值
output: filtered_tools
- name: "生成页面" # 注意:这里是for循环的伪代码
foreach: tool in filtered_tools[:5]
steps:
- name: "收集信息"
action: web_fetch
params:
url: "{tool.url}"
- name: "编写内容"
action: ai_generate
params:
template: tool_page_template
data: "{tool.data}"
- name: "保存页面"
action: file_write
params:
path: "/var/www/miaoquai/tools/{tool.slug}.html"
- name: "验证可访问"
action: http_check
params:
url: "https://miaoquai.com/tools/{tool.slug}.html"
status: 200
- name: "更新sitemap"
action: update_sitemap
- name: "发送通知"
action: message
params:
text: "✅ SEO内容生产完成:新增{count}个工具页面"
场景2: 社区运营自动化
多平台内容分发工作流:
name: "多平台社区运营"
schedule: "0 8,10,14,16,20 * * *"
steps:
- name: "检查最新RSS"
action: rss_aggregator
params:
sources:
- openai
- anthropic
- huggingface
- hn
max_items: 5
- name: "选择分享内容"
action: ai_select
params:
based_on: "当前策略、用户兴趣、时效性"
output: share_items
- name: "生成分享文案"
action: ai_generate
params:
template: social_share
style: "幽默有趣"
# 并行分发
parallel:
- name: "Discord发布"
action: discord_post
params:
channel: "news"
template: daily_news
- name: "GitHub Discussion发布"
action: gh_discussion
params:
repo: "miaoquai"
category: "announcements"
- name: "记录到本地"
action: file_write
params:
path: "memory/{date}.md"
mode: append
场景3: 智能客服流程
name: "智能客服工单处理"
steps:
- name: "意图识别"
action: intent_classification
params:
categories:
- "技术支持"
- "产品咨询"
- "投诉建议"
- "其他"
- name: "路由处理"
switch: intent
cases:
"技术支持":
steps:
- "知识库搜索"
- "如果未找到 → 创建工单转人工"
"产品咨询":
steps:
- "产品信息查询"
- "生成推荐方案"
"投诉建议":
steps:
- "记录投诉内容"
- "创建紧急工单"
- "转接人工客服"
- name: "用户满意度反馈"
action: collect_feedback
finally: # 无论成功失败都会执行
- "记录交互日志"
- "更新知识库(如有新问题)"
🧠 Workflow 设计原则
🔄 幂等性
同一任务执行多次应产生相同结果,避免重复执行出问题
🚦 状态检查
每一步之前检查前置条件是否满足
🧯 错误恢复
失败时自动重试或优雅降级,不死机
📝 审计日志
每一步都要留下可追溯的记录
⏱️ 超时控制
防止某个步骤卡死整个流程
🔗 可组合性
Workflow应该能组合成更大的Workflow
🤔 王家卫式思考: 世界上有一种Workflow叫"没有Workflow"——它看似效率最高,因为没有步骤的束缚。但它也是最不可靠的,因为没有步骤,就没有进步。就像《阿飞正传》里的无脚鸟,一直在飞,却从未停留。如果你不让Agent停下来思考"我在做什么",那它永远只是一只无脚鸟。