CrewAI 实践:让 3 个 AI 角色协作写一份市场报告
张张老师898 阅读
CrewAI 把多智能体的概念包装得更友好:你可以定义"角色"(Researcher、Writer、Editor),给每个角色分配任务,然后让它们像一个小团队一样协作。我拿它搭了一个"AI 内容生产流水线",让它每周产出一份 AI 行业周报。
定义角色的方式:
Python
from crewai import Agent, Task, Crew, Process
researcher = Agent(
role="研究员",
goal="搜集本周 AI 领域重要动态",
backstory="你是一名科技记者,擅长从大量信息中提炼重点",
llm=llm
)
writer = Agent(
role="编辑",
goal="把研究结果写成简洁清晰的周报",
backstory="你是资深编辑,文风简洁、客观",
llm=llm
)
research_task = Task(
description="搜集本周 AI 领域 5 条重要新闻并总结",
agent=researcher,
expected_output="5 条新闻的要点列表"
)
write_task = Task(
description="基于研究结果撰写周报",
agent=writer,
expected_output="一篇 500 字左右的周报"
)
crew = Crew(agents=[researcher, writer], tasks=[research_task, write_task],
process=Process.sequential)
result = crew.kickoff()
体验:sequential 模式就是一步步往下走,researcher 的输出自动传给 writer。整个流程跑通很快,我第一次十分钟就出了能看的报告。
问题也很多:
-
任务交接信息丢失。researcher 输出了 5 条新闻,writer 可能只用上 2 条,其他被"忽略"了。需要在 task description 里写清楚要保留全部信息。
-
各角色输出风格不稳定。同一次运行和下一次运行,风格差异很大。我在 Agent 的 backstory 里加了很多风格约束才稳定下来。
-
依赖工具时配置麻烦。如果研究员要真的上网查资料,需要接 Serper 之类的搜索 API,配置链路有点绕。
-
中文支持一般。默认模板英文居多,需要手动指定语言。
CrewAI 适合把"流程固定、角色明确"的事情自动化,比如报告生成、内容创作。但如果任务需要高度精确,它跟 AutoGen 一样有"看起来合理但实际有错"的问题。
评论0
还没有评论,来抢沙发~