大型语言模型(LLM)正在改变各行各业的自动化和人工智能应用。LLM工作流作为构建复杂AI系统的基石,它允许开发者将LLM的能力嵌入到更广泛的自动化流程中,从而实现更高效、更智能的应用场景。本文将深入探讨LLM工作流的设计模式,提供实际案例,并探讨其在构建AI智能体中的应用,帮助读者构建更强大的自动化工具。 从简单的自动化任务到复杂的AI智能体,LLM工作流的应用范围日益广泛。了解如何有效地利用这些工作流,对于任何希望在AI领域取得突破的开发者都至关重要。我们将介绍各种常见的设计模式,并通过一个具体的案例——使用OpenAI Agents SDK构建AI虚拟助手——来演示如何将这些模式应用于实践中。无论是初学者还是经验丰富的开发者,都能从中获得有价值的见解。 准备好开启你的AI之旅了吗?让我们一起探索LLM工作流的奥秘,释放AI的无限潜能!
LLM工作流关键要点
LLM工作流定义:一系列生成期望结果的步骤。
核心设计模式:链式、路由、并行化等。
OpenAI Agents SDK:构建AI虚拟助手的实用工具。
Agentic工作流:具备一定自主性的工作流。
软件类型:代码(软件1.0)、机器学习(软件2.0)与Prompting LLM(软件3.0)。
LLM的优势与局限:平衡可预测性和灵活性。
设计模式选择:根据任务需求和权衡进行。
理解LLM工作流
什么是LLM工作流?
llm工作流可以被定义为一系列步骤,这些步骤共同协作,以产生一个期望的结果。工作流的核心在于将复杂的任务分解为更小、更易于管理和自动化的子任务。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

每一个步骤都有其特定的功能,并按照预定的顺序执行,最终达成既定的目标。
举例来说,假设我们的目标是“清空收件箱”。传统的工作流可能包括以下步骤:
- 接收邮件:监控收件箱,接收新邮件。
- 阅读邮件:人工或自动阅读邮件内容。
- 判断重要性:确定邮件是否需要立即回复或处理。
-
采取行动:
- 如果重要,则回复邮件;
- 如果不重要,则直接删除。
LLM工作流的价值在于能够将这些步骤自动化,减少人工干预,提高效率。通过使用LLM,我们可以更智能地理解邮件内容、判断重要性,并自动生成回复或执行其他操作。
显式地定义工作流程,无论它看起来多么简单,是创建自动化的关键一步。只有当我们清楚地了解每个步骤的具体内容,才能将其转化为计算机代码,实现自动化。
LLM工作流与传统软件的对比
传统软件开发依赖于规则和明确的指令,这使得构建复杂、自适应性强的系统变得困难。LLM的出现,为我们提供了一种新的可能性,能够构建更加智能和灵活的自动化流程。
过去,构建一个能够自动分类邮件的系统,需要大量的规则和复杂的代码。我们需要定义各种关键词、分析发件人信息,并根据这些规则来判断邮件是否为垃圾邮件。然而,这种方法往往难以应对变化多端的邮件内容和发件人,导致分类效果不佳。

LLM工作流则可以通过学习大量的邮件数据,自动识别垃圾邮件的特征,从而实现更准确的分类。此外,LLM还可以根据用户的反馈不断学习和优化,提高分类的准确性和效率。
总而言之,LLM工作流通过赋予系统理解和学习的能力,克服了传统软件的局限性,为自动化带来了新的突破。
当然,LLM并非万能。在构建LLM工作流时,我们需要充分了解LLM的优势和局限性,并根据具体的应用场景进行权衡。例如,LLM在处理需要高度精确和可预测性的任务时,可能不如传统软件可靠。因此,我们需要仔细评估每个步骤的需求,选择最合适的工具和方法。
不同软件类型的优势与局限
在构建LLM工作流时,理解不同软件类型的优势与局限至关重要。可以将软件分为以下三类:
-
代码 (软件 1.0):
- 关键活动:编写明确的指令,通过计算机代码实现。
- 可预测性:高度可预测,结果完全基于代码逻辑。
- 灵活性:灵活性较差,只能执行预先设定的任务。
- 计算复杂度:计算复杂度最低,运行效率高。
-
机器学习 (软件 2.0):
- 关键活动:策划高质量的训练样本,训练模型。
- 可预测性:可预测性一般,结果依赖于训练数据和模型。
- 灵活性:灵活性较好,能够学习和适应新的数据。
- 计算复杂度:计算复杂度较高,需要大量的计算资源。
-
Prompting LLM (软件 3.0):
- 关键活动:设计清晰的Prompt,引导模型产生期望的行为。
- 可预测性:可预测性较差,prompt的设计至关重要。
- 灵活性:灵活性极高,能够完成多种任务。
-
计算复杂度:计算复杂度最高,需要强大的计算能力。

关键就在于将不同类型的组件进行组合,构建一个能够满足特定需求的LLM工作流。
LLM工作流设计模式
LLM工作流的常见设计模式
LLM工作流的设计模式多种多样,每种模式都有其独特的优势和适用场景。以下是一些常见的设计模式:
-
链式(Chaining):将多个LLM或组件按照顺序连接起来,每个组件的输出作为下一个组件的输入。

这种模式适用于需要多个步骤才能完成的复杂任务。
-
路由(Routing):根据输入的不同,将请求路由到不同的LLM或组件。这种模式适用于需要根据不同的情况采取不同行动的任务。
-
并行化(Parallelization):将任务分解为多个子任务,并行执行这些子任务,然后将结果合并。 这种模式可以提高任务的执行效率。
- 分段(Sectioning):将数据拆分为多个部分,并行处理后合并。
- 投票(Voting):使用多个LLM进行投票,提高结果的准确性。
-
Orchestrator-workers: 协调者负责将任务分配给多个工作者,并将结果汇总。
-
Evaluator-Optimizer: LLM先生成一个结果,再由另外一个LLM评估优化的结果并提供反馈,最后多次循环直到评估指标合格。 这种模式通过反馈循环,不断提升性能。
这些设计模式可以单独使用,也可以组合使用,以满足各种不同的应用需求。在实际应用中,我们需要根据具体的任务特点和资源限制,选择最合适的设计模式。
如何使用OpenAI Agents SDK构建AI虚拟助手
AI虚拟助手(AVA)系统设计
为了更具体地理解LLM工作流的应用,我们将通过一个案例——使用OpenAI Agents SDK构建AI虚拟助手(AVA)。

这个AI虚拟助手可以协助用户完成各种管理任务,例如撰写邮件、更新联系人信息以及收集信息。
作为一名AI工作者,需要通过一些组件协同来帮助你完成任务
- 用户请求(User Request) :通过邮件发送任务请求给助手
- 规划Agent(Planner Agent):分析并理解用户请求,确定是否需要进行操作。如果需要,则生成详细的执行指令。
- 执行Agent(Executor Agent):执行规划Agent生成的指令,完成任务。
在这个案例中,我们选择邮件作为与AI虚拟助手交互的界面。用户可以通过发送邮件来表达他们的需求,例如“请帮我给XX公司发送一封介绍信”,或者“请查找关于LLM工作流的最新研究报告”。
准备工作
在开始编写代码之前,我们需要进行一些准备工作:
-
安装OpenAI Agents SDK:使用pip安装OpenAI Agents SDK:
pip install openai-agent
-
获取OpenAI API密钥:前往OpenAI官网注册账号,并获取API密钥。

将API密钥设置为环境变量。
-
配置Gmail权限: 接下来需要进行一些 Google OAuth 权限设置才能操作 Gmail,可以前往给出的GitHub仓库链接,查看步骤说明: https://github.com/ShawhinT/YouTube-Blog/tree/main/agents/2-agentic-workflows#google-oauth-setup
代码实现:创建智能体
首先,我们需要定义两个核心组件:规划Agent(Planner Agent)和执行Agent(Executor Agent)。
-
规划Agent:
- 目标:接收用户请求,分析并理解用户的意图,生成执行指令。
- 工具:访问各种只读工具,例如目录结构读取工具和文件内容读取工具。
-
核心代码:
planner_agent = Agent( name="Planner Agent", instructions=planner_instructions, tools=[read_dir_struct, read_file_contents], model_settings=ModelSettings(temperature=0.5), output_type=PlannerOutput )
-
执行Agent:
- 目标:执行规划Agent生成的指令,完成实际操作。
- 工具:具有写入权限的工具,例如邮件撰写工具和文件覆盖工具。
-
核心代码:
executor_agent = Agent( name="Executor Agent", instructions=executor_instructions, tools=[read_dir_struct, read_file_contents, write_email_draft, overwrite_existing_file], model_settings=ModelSettings(temperature=0), )
在以上代码中,我们使用OpenAI Agents SDK定义了两个智能体,并为它们分配了不同的角色和工具。Planner Agent负责分析用户需求并规划行动方案,Executor Agent则负责执行这些方案,完成实际任务。

以下代码说明了如何读取指令,创建智能体
planner_instructions = read_instructions("ava.md") + read_instructions("planner.md")运行工作流
定义好智能体之后,我们就可以开始运行工作流了。以下代码演示了如何将用户请求传递给智能体,并获取最终结果:
from agents import Runner
async def main():
# 读取请求
with open("request.txt", "r") as file:
request = file.read()
# 运行规划代理
result = Runner.run_streamed(
planner_agent,
request,
)
#异步处理
await handle_stream_events(result)
print("Planner Agent Output")
print(result.final_output.user_note)
if result.final_output.exec_required:
# run 执行
result = Runner.run_streamed(
executor_agent,
result.final_output.exec_inst
)
# 异步处理
await handle_stream_events(result)
print("Executor Agent Output")
print(result.final_output)
在以上代码中,我们首先读取用户的请求,然后将其传递给规划Agent。规划Agent分析请求后,生成执行指令,并将其传递给执行Agent。执行Agent执行这些指令,并将最终结果返回给用户。
成本考量
LLM工作流的成本考量
当使用LLM时,除了要考虑功能性和适用性,还有成本因素。

LLM的使用成本根据计算类型区分,且模型之间有很大的差异。
下表给出了不同计算类型成本预估。
| 计算类型 | 描述 | 成本预估 |
|---|---|---|
| API token消费 | 根据 prompt 的大小和处理复杂程度收费 | 取决于模型和请求大小,小型任务几美分,复杂任务几美元 |
| 向量数据库 | 用于存储和检索向量嵌入,费用取决于存储容量和查询频率 | 每月几美元到几百美元,取决于数据库大小和使用量 |
| LLM训练 | 从零开始训练LLM,费用取决于模型大小和训练数据量 | 几千美元到几百万美元,是最大的成本支出 |
| 微调 | 针对特定任务对预训练的LLM进行调整,成本低于从零训练,但仍显著 | 几百美元到几千美元,取决于微调的复杂性 |
由于需要大量的计算能力,LLM的使用成本相对较高。因此,在构建LLM工作流时,我们需要仔细评估每个步骤的计算复杂度,并尽可能地优化流程,降低成本。
此外,我们还可以通过以下方式来降低LLM工作流的成本:
- 选择合适的模型:不同的LLM模型具有不同的性能和价格,我们需要根据具体的任务需求选择最合适的模型。
- 优化prompt设计:清晰简洁的prompt可以减少LLM的计算量,提高效率。
- 缓存结果:对于重复性的任务,可以将LLM的输出缓存起来,避免重复计算。
通过合理的规划和优化,我们可以有效地降低LLM工作流的成本,使其更具实用性和可扩展性。
常见问题解答
LLM工作流与传统的自动化流程有什么区别?
传统的自动化流程依赖于预定义的规则和明确的指令,而LLM工作流则可以利用LLM的理解和学习能力,处理更加复杂和灵活的任务。
如何选择合适的LLM工作流设计模式?
选择合适的设计模式需要根据具体的应用场景进行权衡。例如,对于需要高可预测性的任务,可以选择链式模式;对于需要处理多种不同情况的任务,可以选择路由模式。
使用OpenAI Agents SDK构建AI虚拟助手有哪些优势?
OpenAI Agents SDK提供了一系列强大的工具和API,可以帮助开发者快速构建和部署AI智能体,降低开发难度和成本。
LLM 工作流在实际应用中会遇到什么挑战?
构建LLM工作流需要考虑到可预测性与能力之间的权衡。 复杂任务通常需要更多的 LLM 能力和灵活性,这通常会降低工作流的可预测性。 此外,管理成本也是LLM工作流程中的一个挑战。虽然LLM的使用成本可能相对较高,但通过选择合适的模型和prompt设计可有效控制计算成本。
相关问题
LLM Agent(智能体)是什么?
Agent 是指一个可以使用 LLM 来推理采取哪些行动,简单理解就是赋予LLM 思考和做决策的能力,而不仅是被动地生成文本。Agent 可以被设计用来执行各种任务,如预订航班、撰写邮件、控制智能家居设备等。它的目标是模拟人类的决策过程,通过分析环境、制定计划、执行行动并观察结果,最终实现既定目标。










