链式工作流
链式工作流 模式把一个复杂的任务,分解成若干个小的步骤。每个步骤以上一个步骤的输出,作为该步骤的输入,对输入进行处理,最后使用更新之后的输入调用下一个步骤。第一个步骤的输入是原始的任务输入。最后一个步骤的输出是整个任务的输出。
实现
该模式的实现包含一个管理任务和一系列子任务。所有这些任务都使用任务执行 模式。
下图给出了链式工作流模式的基本流程。
示例
使用链式工作流的一个示例是优化文章内容的质量。一篇文章的内容可以从不同的方面进行优化。ChatGPT 可以提供很多关于优化文章的 建议。可以在一个步骤中采用一种建议来优化文章的内容。
作为演示,首先使用大模型来生成关于某个主题的文章。这篇文章再通过一个包含 3 个步骤的链条来进行处理。链条中的每个智能体专注于某个方面的质量提升。最后一个智能体的输出是最终的任务执行结果。
下面是这些步骤使用的提升文章质量的建议。
提升文章质量的建议
"""
Review the Structure
- Ensure the article has a clear introduction, body, and conclusion.
- Check if ideas flow logically from one section to another.
- Ensure paragraphs are well-organized and each one has a clear purpose.
""",
"""
Improve Clarity and Conciseness
- Remove unnecessary words and redundant phrases.
- Simplify complex sentences for better readability.
- Use active voice where possible.
""",
"""
Enhance Readability
- Break long paragraphs into shorter ones.
- Use bullet points or subheadings for easier scanning.
- Vary sentence length to maintain reader interest.
"""
下面是这些步骤使用的提示模板。该模板中包含两个变量:
instruction
:其值来自上面介绍的建议列表。article
:其值来自初始生成的文章,或是上一个步骤的输出。
提示模板
Goal: Improve an article by following the instruction:
{instruction}
Article content:
{article}
最后一个步骤产生的文章是任务的输出。
下图是该智能体执行时的 trace。最外层的 agent.execute
代表整个智能体的执行。内部的第一个 agent.execute
表示的是生成初始的文章。第二个 agent.execute
表示的是优化文章内容的链条的执行。该链条内部有 3 个智能体的执行,分别表示链条中的 3 个步骤。
下图是使用 Swagger UI 测试的结果。生成文章的关键词是“deepseek”。
参考实现
See this page for reference implementation and examples.