CrewAI 的核心哲学:角色扮演与职责分工
CrewAI 借鉴了人类现实团队的分工机制。每个 Agent 拥有特定的 Role(角色)、Goal(目标)和 Backstory(背景故事),并在 Crew 的编排下有序执行各自的任务。
1. 定义角色(Agents)
from crewai import Agent, Task, Crew, Process
researcher = Agent(
role="资深 AI 技术研究员",
goal="搜集关于 MCP 协议与 Agent 工具调用的最新行业事实与实测数据",
backstory="拥有 10 年架构经验,对底层协议细节要求极为严谨,杜绝任何未经实测的虚构结论。",
verbose=True,
memory=True
)
writer = Agent(
role="技术专栏主笔",
goal="将晦涩的技术调研报告转化为逻辑严密、通俗易懂且带有可运行代码的技术博客",
backstory="知名技术社区核心贡献者,擅长循序渐进的案例驱动式写作风格。",
verbose=True
)
reviewer = Agent(
role="技术评审与质量主管",
goal="核查文章中的代码示例、格式规范与事实准确性,提出修改建议",
backstory="追求极致质量,严格把关 Markdown 格式与代码可复现性。",
verbose=True
)
2. 编排任务与执行(Tasks & Crew)
t1 = Task(
description="调研 2025 年主流 IDE 对 MCP 协议的集成支持现状,列出核心优缺点。",
expected_output="一份包含对比表格与功能矩阵的 Markdown 调研清单。",
agent=researcher
)
t2 = Task(
description="根据调研报告,撰写一篇 2000 字左右的深度技术解析文章,需附带实战配置代码。",
expected_output="结构完整的博客初稿。",
agent=writer
)
t3 = Task(
description="评审文章初稿,纠正任何代码语法错误与标点排版问题,输出终稿。",
expected_output="达到发布标准的 Markdown 最终文章。",
agent=reviewer
)
crew = Crew(
agents=[researcher, writer, reviewer],
tasks=[t1, t2, t3],
process=Process.sequential
)
result = crew.kickoff()
print(result)
通过多角色对抗与互审机制,AI 产生的内容幻觉被显著抑制,输出质量成倍提高。