05 — AI 工作流搭建

将AI能力集成到业务流程中,实现自动化与智能化 目标:掌握工作流引擎选型、编排设计和监控优化方法


一、工作流基础概念

1.1 什么是AI工作流?

flowchart LR
    subgraph 传统流程["传统自动化流程"]
        A1["触发条件"] --> A2["固定步骤1"]
        A2 --> A3["固定步骤2"]
        A3 --> A4["固定步骤3"]
        A4 --> A5["输出结果"]
    end
    
    subgraph AI工作流["AI增强工作流"]
        B1["触发条件"] --> B2["AI理解意图"]
        B2 --> B3{"分支判断"}
        B3 -->|情况A| B4["AI执行方案A"]
        B3 -->|情况B| B5["AI执行方案B"]
        B4 & B5 --> B6["人工审核"]
        B6 --> B7["输出结果"]
    end
    
    style B2 fill:#FFD700
    style B3 fill:#FFD700
    style B6 fill:#e8f5e9

核心差异: AI工作流 = 固定流程 + AI动态决策 + 人机协作

1.2 工作流核心要素

graph TB
    subgraph 要素["工作流六大要素"]
        N1["⏰ 触发器<br/>何时启动"]
        N2["📋 节点<br/>执行什么"]
        N3["🔀 条件分支<br/>走向哪里"]
        N4["🔄 循环控制<br/>重复执行"]
        N5["📊 数据流转<br/>传递什么"]
        N6["⚠️ 错误处理<br/>异常怎么办"]
    end
    
    style N1 fill:#e3f2fd
    style N2 fill:#fff3e0
    style N3 fill:#e8f5e9
    style N4 fill:#f3e5f5
    style N5 fill:#fce4ec
    style N6 fill:#e0f2f1

二、工作流引擎选型

2.1 主流引擎对比

quadrantChart
    title AI工作流引擎选型矩阵
    x-axis 开发复杂度低 --> 开发复杂度高
    y-axis 轻量级 --> 企业级
    quadrant-1 企业级重型方案
    quadrant-2 轻量快速方案
    quadrant-3 空白区域
    quadrant-4 中间地带
    
    "LangChain<br/>LangGraph" : [0.4, 0.8]
    "n8n" : [0.3, 0.6]
    "Airflow" : [0.6, 0.9]
    "Camunda" : [0.7, 0.95]
    "Dify" : [0.25, 0.5]
    "Coze Workflows" : [0.15, 0.4]
引擎类型特点适用场景
LangChain/LangGraphLLM原生专为AI设计,支持AgentAI应用开发
n8n可视化拖拽式设计,无需编码业务自动化
DifyLLM原生低代码平台,中文友好快速原型
Airflow数据流强大的调度监控数据管道
CamundaBPMN企业级流程引擎复杂业务流程

2.2 选型决策树

flowchart TD
    A["选择工作流引擎"] --> B{"是否需要LLM原生支持?"}
    B -->|是| C{"是否需要可视化设计?"}
    B -->|否| D{"流程复杂度?"}
    
    C -->|是| E["LangGraph<br/>代码优先+可视化"]
    C -->|否| F["n8n<br/>纯可视化设计"]
    
    D -->|简单| G["n8n / Dify"]
    D -->|复杂| H["Camunda / Airflow"]
    
    style E fill:#e8f5e9
    style F fill:#fff3e0
    style G fill:#e3f2fd
    style H fill:#f3e5f5

三、工作流设计原则

3.1 设计原则

flowchart LR
    P1["模块化<br/>独立可复用"] --> P2
    P2["清晰顺序<br/>执行路径明确"] --> P3
    P3["异常处理<br/>完善错误机制"] --> P4
    P4["可监控<br/>状态可追踪"] --> P5
    P5["可扩展<br/>易于添加新节点"] --> P6
    P6["测试友好<br/>便于调试验证"]
    
    style P1 fill:#e3f2fd
    style P2 fill:#fff3e0
    style P3 fill:#e8f5e9
    style P4 fill:#f3e5f5
    style P5 fill:#fce4ec
    style P6 fill:#e0f2f1

3.2 典型工作流模式

模式一:串行流水线

flowchart LR
    A["输入"] --> B["处理节点1"]
    B --> C["处理节点2"]
    C --> D["处理节点3"]
    D --> E["输出"]

模式二:条件分支

flowchart TD
    A["输入"] --> B{"条件判断"}
    B -->|条件A| C["处理路径A"]
    B -->|条件B| D["处理路径B"]
    B -->|条件C| E["处理路径C"]
    C & D & E --> F["合并输出"]

模式三:循环处理

flowchart LR
    A["输入集合"] --> B["遍历每个元素"]
    B --> C["AI处理"]
    C --> D{"还有元素?"}
    D -->|是| B
    D -->|否| E["汇总输出"]

模式四:并行编排

flowchart TB
    A["输入"] --> B1["并行任务1"]
    A --> B2["并行任务2"]
    A --> B3["并行任务3"]
    B1 & B2 & B3 --> C["结果汇聚"]
    C --> D["最终输出"]

四、工作流编排实践

4.1 LangChain 工作流示例

# workflow.py
from langchain.prompts import PromptTemplate
from langchain.llms import OpenAI
from langchain.chains import LLMChain, SequentialChain
from langchain.tools import Tool
 
# 定义链1:意图识别
intent_prompt = PromptTemplate(
    input_variables=["text"],
    template="""分析以下文本的意图:
{text}
请用以下格式输出:
意图:[搜索/计算/翻译/其他]
关键词:[关键词列表]"""
)
intent_chain = LLMChain(llm=OpenAI(), prompt=intent_prompt, output_key="intent")
 
# 定义链2:内容生成
generate_prompt = PromptTemplate(
    input_variables=["intent", "keywords"],
    template="""基于意图【{intent}】和关键词【{keywords}】,
生成一段简洁的回答。"""
)
generate_chain = LLMChain(llm=OpenAI(), prompt=generate_prompt, output_key="answer")
 
# 组合工作流
workflow = SequentialChain(
    chains=[intent_chain, generate_chain],
    input_variables=["text"],
    output_variables=["intent", "answer"],
    verbose=True
)
 
# 运行工作流
result = workflow({"text": "北京今天天气怎么样?"})
print(result["answer"])

4.2 带条件的智能工作流

# intelligent_workflow.py
from langchain.agents import AgentExecutor, create_tool_calling_agent
from langchain.tools import tool
 
# 定义工具
@tool
def search_weather(city: str) -> str:
    """查询城市天气"""
    return f"{city}今天晴朗,气温25°C"
 
@tool
def calculate_math(expression: str) -> str:
    """数学计算"""
    return f"结果是: {eval(expression)}"
 
@tool
def translate_text(text: str, target_lang: str) -> str:
    """翻译文本"""
    return f"翻译结果: {text} -> [{target_lang}]"
 
# 创建智能Agent工作流
agent = create_tool_calling_agent(llm, [search_weather, calculate_math, translate_text], prompt)
agent_executor = AgentExecutor(agent=agent, tools=[search_weather, calculate_math, translate_text], verbose=True)
 
# 工作流执行
result = agent_executor.invoke({
    "input": "帮我查一下上海的天气,然后计算100*200"
})

4.3 带记忆的工作流

# memory_workflow.py
from langchain.memory import ConversationBufferWindowMemory
 
memory = ConversationBufferWindowMemory(
    k=5,  # 保留最近5轮对话
    memory_key="chat_history",
    return_messages=True
)
 
# 工作流中使用记忆
workflow_with_memory = SequentialChain(
    chains=[intent_chain, generate_chain],
    input_variables=["text"],
    output_variables=["intent", "answer"],
    memory=memory,  # 注入记忆
    verbose=True
)

五、工作流监控与优化

5.1 监控指标

flowchart TB
    subgraph 运行监控["📊 运行监控"]
        M1["执行成功率"]
        M2["平均执行时间"]
        M3["错误率分布"]
    end
    
    subgraph 成本监控["💰 成本监控"]
        M4["API调用次数"]
        M5["Token消耗"]
        M6["单次执行成本"]
    end
    
    subgraph 质量监控["🎯 质量监控"]
        M7["用户满意度"]
        M8["输出质量评分"]
        M9["人工干预率"]
    end
    
    style M1 fill:#e3f2fd
    style M4 fill:#fff3e0
    style M7 fill:#e8f5e9

5.2 优化策略

flowchart TD
    A["工作流优化"] --> B["性能优化"]
    A --> C["成本优化"]
    A --> D["质量优化"]
    
    B --> B1["减少LLM调用次数"]
    B --> B2["并行执行可并行节点"]
    B --> B3["实现结果缓存"]
    
    C --> C1["使用更便宜的模型"]
    C --> C2["优化提示词减少Token"]
    C --> C3["批量处理请求"]
    
    D --> D1["添加人工审核节点"]
    D --> D2["设置质量阈值"]
    D --> D3["收集用户反馈迭代"]

5.3 错误处理机制

flowchart LR
    E1["错误检测"] --> E2["分类处理"]
    E2 --> E3["临时错误"]
    E2 --> E4["永久错误"]
    E3 --> E5["重试机制<br/>指数退避"]
    E4 --> E6["降级处理<br/>返回默认值"]
    E5 & E6 --> E7["日志记录"]
    E7 --> E8["告警通知"]
    
    style E1 fill:#ffebee
    style E5 fill:#e8f5e9
    style E6 fill:#fff3e0

六、实战案例:AI内容生产工作流

6.1 工作流设计

flowchart TB
    subgraph 输入层["📥 输入"]
        I1["用户选题"]
        I2["关键词"]
    end
    
    subgraph 处理层["⚙️ 处理"]
        P1["AI大纲生成"]
        P2["资料检索"]
        P3["内容撰写"]
        P4["AI润色优化"]
        P5["人工审核"]
    end
    
    subgraph 输出层["📤 输出"]
        O1["发布准备"]
        O2["多平台分发"]
    end
    
    I1 & I2 --> P1
    P1 --> P2
    P2 --> P3
    P3 --> P4
    P4 --> P5
    P5 --> O1 --> O2
    
    style P1 fill:#e3f2fd
    style P3 fill:#fff3e0
    style P5 fill:#e8f5e9

6.2 各节点实现

# content_workflow.py
from langchain.chains import SequentialChain, LLMChain
from langchain.prompts import PromptTemplate
from langchain.llms import OpenAI
 
# 节点1:大纲生成
outline_prompt = PromptTemplate(
    input_variables=["topic"],
    template="请为'{topic}'生成文章大纲,包含3-5个主要章节"
)
 
# 节点2:资料检索(调用搜索工具)
research_prompt = PromptTemplate(
    input_variables=["outline"],
    template="基于以下大纲,列出需要搜索的关键点:\n{outline}"
)
 
# 节点3:内容撰写
writing_prompt = PromptTemplate(
    input_variables=["outline", "research"],
    template="根据大纲和资料,撰写完整文章:\n大纲:{outline}\n资料:{research}"
)
 
# 节点4:AI润色
polish_prompt = PromptTemplate(
    input_variables=["content"],
    template="请润色以下文章,使其更生动有趣:\n{content}"
)
 
# 组装工作流
content_workflow = SequentialChain(
    chains=[
        LLMChain(llm=llm, prompt=outline_prompt, output_key="outline"),
        LLMChain(llm=llm, prompt=research_prompt, output_key="research"),
        LLMChain(llm=llm, prompt=writing_prompt, output_key="draft"),
        LLMChain(llm=llm, prompt=polish_prompt, output_key="final_content"),
    ],
    input_variables=["topic"],
    output_variables=["final_content"],
    verbose=True
)
 
# 执行
result = content_workflow({"topic": "AI对教育行业的影响"})

七、本章总结

mindmap
    root((AI工作流核心))
        设计原则
            模块化
            清晰顺序
            异常处理
            可监控
        主流引擎
            LangChain / LangGraph
            n8n
            Dify
            Airflow
        关键模式
            串行流水线
            条件分支
            循环处理
            并行编排
        优化方向
            性能优化
            成本优化
            质量优化

核心结论: 好的工作流 = 清晰的结构 + 灵活的编排 + 完善的监控。将AI能力嵌入到标准化流程中,才能实现可持续的智能化升级。


延伸阅读