
优化书写流程:如何使用crewai的多代理系统提升写作效率和质量
- Rifx.Online
- Generative AI , Large Language Models , AI Applications
- 05 Mar, 2025
人工智能代理和多代理系统
人工智能代理正在成为下一个重要趋势,而多代理系统(MAS)是其强大能力的完美例证。它们通过将任务分配给专业单元来简化复杂的工作流程。一个很好的应用案例?书籍写作。想象一下,一个虚拟助手团队帮助你集思广益、构建故事框架、撰写章节,甚至进行校对——这就是多代理系统的魔力。在本文中,我们将探讨CrewAI如何使这一切成为可能,展示人工智能如何简化书籍创作。让我们深入了解。
什么是多代理系统?
多代理系统(MAS)是一个框架,其中多个自主代理协同工作以实现共同目标。每个代理专注于特定角色,但与其他代理协作。MAS在需要多种视角或阶段的任务中尤其有效,例如书籍写作。
在CrewAI中,代理被定义为具有独特角色和目标,以模拟人类团队的专业知识。这种结构使整个流程的组织变得更加容易,从规划和写作到编辑和出版。
拆解书籍写作流程
为了简化,书籍写作流程分为五个主要阶段,每个阶段分配给一个特定的代理:
- 规划:生成创意,创建大纲,设计角色和场景。
- 写作:根据计划起草章节。
- 编辑:细化草稿以确保连贯性和风格。
- 事实核查:验证内容的准确性。
- 出版:格式化手稿并准备出版。
注意: 我使用 ChatGPT 来头脑风暴所有这些步骤,然后规划我的代理。根据您的使用案例,您可以增加或减少所需的代理数量。
我使用的提示: 我想在 CrewAI 中编写一个多代理系统来写书。将会有一些代理同时并行工作以写一本书。拆解整个书籍写作流程,并告诉我写一本书需要多少代理。
每个代理的贡献
1. 规划代理
规划代理是操作的战略大脑。它构思书籍的主题,制定大纲,并定义角色和设置等关键元素。
职责:
- 开发主题和类型。
- 创建包含章节和部分的大纲。
- 设计角色档案和世界构建元素。
2. 写作代理 (最重要)
写作代理通过起草章节将计划转化为现实。它确保故事的流畅性,并无缝整合计划中的元素。
职责:
- 根据大纲撰写详细章节。出于演示目的,我已指示该代理仅用 1000 个单词撰写书籍章节。 根据您的使用情况,您可以以您自己的方式提示它。
- 融入角色弧线和叙事结构。
3. 编辑代理
编辑润色手稿。编辑代理确保文本清晰、连贯,并且风格一致。
职责:
- 编辑草稿的语法、清晰度和流畅性。
- 提炼语气和风格。
4. 事实核查代理
这个代理确保所有事实内容都是准确和可靠的,这对于非虚构或技术写作至关重要。
职责:
- 验证事实和参考文献。
- 验证数据并确保一致性。
5. 出版代理
出版代理准备手稿的最终格式,无论是数字格式还是印刷格式。
** 职责**:
- 根据出版标准格式化手稿。
- 为出版最终化文档。
实施
CrewAI 提供了一个框架,用于定义代理、分配任务和管理工作流程。以下是如何实现书籍写作多代理系统的步骤:
第一步:定义代理
- 作者代理:负责撰写内容。
- 编辑代理:负责审阅和编辑内容。
- 研究代理:负责收集信息和资源。
第二步:分配任务
- 作者代理 被分配根据提供的大纲撰写章节。
- 编辑代理 在作者代理完成每个章节后进行审阅。
- 研究代理 根据需要向作者代理提供必要的参考资料和数据。
第三步:管理工作流程
class BookWritingMAS:
def __init__(self):
self.agents = {
"author": AuthorAgent(),
"editor": EditorAgent(),
"research": ResearchAgent()
}
def start_writing_process(self):
self.agents["research"].gather_resources()
self.agents["author"].write_chapters()
self.agents["editor"].review_chapters()
第四步:监控进度
- 利用 CrewAI 仪表盘跟踪每个代理的进度。
- 为每个任务设定截止日期,以确保及时完成。
结论
通过遵循这些步骤,您可以有效地使用 CrewAI 的框架实施书籍写作多代理系统。
代码演示
import os
from crewai import Agent, Task, Crew, Process
os.environ["OPENAI_API_KEY"] = "Paste your key here"
os.environ["OPENAI_MODEL_NAME"] = "gpt-4o"
planning_agent = Agent(
role="规划代理",
goal="开发书籍的概念、大纲、角色和世界。",
backstory="一位专注于规划和结构化小说的经验丰富的作者。",
verbose=True
)
writing_agent = Agent(
role="作者代理",
goal="根据提供的大纲和角色细节撰写详细章节。",
backstory="一位善于将故事带入生活的创造性作家。",
verbose=True
)
editing_agent = Agent(
role="编辑代理",
goal="编辑已写的章节,以确保清晰度、连贯性和语法准确性。",
backstory="一位注重细节的细致编辑。",
verbose=True
)
fact_checking_agent = Agent(
role="事实核查代理",
goal="验证书中所有事实信息的准确性。",
backstory="一位勤奋的研究者,确保所有事实的正确性。",
verbose=True
)
publishing_agent = Agent(
role="出版代理",
goal="格式化手稿并为出版做准备。",
backstory="一位精通出版标准和格式化的专家。",
verbose=True
)
tasks = [
Task(
description="开发书籍的概念、大纲、角色和世界。",
expected_output="包括主题、类型、大纲、角色简介和世界细节的全面计划。",
agent=planning_agent
),
Task(
description="根据提供的大纲和角色细节撰写详细章节。每章至少应为1000字。",
expected_output="书中所有章节的草稿。",
agent=writing_agent
),
Task(
description="编辑已写的章节,以确保清晰度、连贯性和语法准确性。",
expected_output="所有章节的编辑版本。",
agent=editing_agent
),
Task(
description="验证书中所有事实信息的准确性。",
expected_output="一份确认所有事实准确性或详细必要更正的报告。",
agent=fact_checking_agent
),
Task(
description="格式化手稿并为出版做准备。",
expected_output="准备出版的最终手稿。",
agent=publishing_agent
)
]
book_writing_crew = Crew(
agents=[planning_agent, writing_agent, editing_agent, fact_checking_agent, publishing_agent],
tasks=tasks,
process=Process.sequential,
verbose=True
)
if __name__ == "__main__":
result = book_writing_crew.kickoff()
print("最终手稿:", result)
输出
我们获得了书籍的最终手稿,并且可以看到不同人工智能代理的输出。以下是一些截图:
规划代理设置语调
书籍的最终手稿
主要收获
- 专业代理: 每个代理专注于特定任务,确保高质量的输出。
- 工作流程管理: 任务按顺序或并行组织,以实现最大效率。
- 可定制性: CrewAI 允许您根据不同内容类型调整系统。
- 可扩展性: 随着项目的增长,可以添加更多代理或任务。
结论
使用多代理系统进行书籍写作展示了人工智能如何增强创造性工作流程。通过CrewAI,您可以在保持质量和一致性的同时自动化复杂流程。无论您是人工智能开发者还是内容创作者,这种方法都提供了一种可扩展且高效的方式来处理大型项目。