CrewAI 很不错!——我的第一印象
用 CrewAI 做 AI 播客约 10 天后,我最大的体会是:这个框架确实非常易上手,但高质量内容依然离不开真实的人类投入。
几周前,我通过这门课程 “Practical Multi AI Agents and Advanced Use Cases with crewAI” 第一次接触到 CrewAI。起初我其实并不急着试,因为我已经在用 Langgraph 做我的 agent Sydney,但有两件事最终让我动手:
- 我一直在探索“从零生成播客”的方式,尤其想研究如何让 Gen AI 对我过去 15 年博客内容做“推理”,而不只是复制粘贴文章。我此前试过 NotebookLLM(效果还可以,你可以在 这里 听样例),但我希望对对话节奏和开场 hook 有更高控制权。
- 我想学点新东西,也想试试 OpenAI 的 text-to-speech 模型。
更新(2025 年 11 月):我已经从“使用 agent 框架”毕业,开始用 Claude Code 和 Google Gemini CLI 从零编码。这样控制权高很多。我最近上线的是 STRAŦUM(市场智能)和 DIALØGUE(AI 播客生成器)——它们都直接源自下面这个 CrewAI 实验。
玩了大约 10 天 CrewAI 后,这是我的核心观察:
1. 好的部分
1.1 上手速度出乎意料地快
- 初始学习曲线很短——我几小时内就能跑起来
- 配置自定义 tools(例如用 Weaviate 作为向量库检索我博客内容)非常直接。把播客脚本转成音频输出也很好搭。
- 用 YAML 文件以自然语言描述 agents 和 tasks 的方式很强(小贴士:Visual Studio Code 自动补全在这块非常好用!)
1.2 模型选择很灵活
在 crew.py 里切换 LLM 基本只要改几行:
llm_openai_4o_mini = LLM(model="gpt-4o-mini", temperature=0)
llm_anthropic_35 = LLM(model="claude-3-5-sonnet-20240620", temperature=0)
llm_openai_4o = LLM(model="gpt-4o", temperature=0)
llm_gemini_15_pro = LLM(model="gemini/gemini-1.5-pro-002", temperature=0)
然后你可以按每个 agent 的长项分配不同模型。比如:
@agent
def content_researcher(self) -> Agent:
return Agent(
config=self.agents_config['content_researcher'],
llm=llm_anthropic_35,
tools=[BlogContentRetrievalTool()],
verbose=True
)
这些能力意味着我可以对播客结构和脚本方式有很强控制。
1.3 Text-to-Speech:有潜力,也有限制
OpenAI 的 text-to-speech API 音质确实不错,但目前只有 6 个 voice 模型。对播客创作来说,这个选择还是偏少——尤其你想做多主持人对话时。声音多样性不足,会让不同创作者做出的播客听起来越来越像。这一块我很希望未来能改进,不管是 OpenAI 增加语音选项,还是更好接入其他 TTS 提供方。
当然我也理解 AI 安全方面的顾虑,所以各家实验室在 voice 模型扩充上可能不会太激进。
2. 现实校正:这不是“点一下就生成”
最开始我确实担心这会进一步加剧网络上的 AI 生成内容泛滥(“AI Slop”)。毕竟我大概 5 分钟就能生成一篇 15 分钟播客脚本。(在上面的 DeepLearning.AI 课程里,João 也确实演示了“Content creation at scale”的代码。)
但在我 真正 阅读/审阅 前几版脚本后,我的看法变了。
高质量内容仍然需要大量工作!
2.1 需要有设计感的 Agent 结构
我反复重构了 AI crew 的结构,多次增加角色,尤其是 “fact_checker” 角色。我现在的播客 crew 包含:
- Content researcher
- Script writer
- Fact checker
- Script editor
- Audio producer
2.2 持续迭代不可省
要做成,关键在于:
- 用行业语言去精细定义每个 agent 的目标与任务。有真实行业经验的人能写出更精准任务描述,输出质量会显著更好。
- 工具权限要有选择(不是越多越好)。agent 很容易陷入循环。
- 代理之间要有清晰 delegation 规则
- 输出结构要求要具体
- 质量标准要明确:"What good work looks like"(这点我甚至拉上了我女儿一起设定——她更有创意 :D)
所以你会看到:AI crew 的确显著加速了我的工作(从研究到脚本、事实核查、修订、音频生成,至少 5X),但最终内容质量依然取决于我自己。
2.3 模型选择非常关键
不同 LLM 有不同“性格”,也有不同的遵循指令能力。所以你必须不断实验,理解各模型在流程每一步的优劣,才能让它们匹配你的需求。
一些观察:
- 同一个模型,API 响应与网页聊天界面响应会有差异
- 当前在 API 场景里,我更偏好 Anthropic 做长内容。但在网页端,我觉得 claude-3-5-sonnet-20241022 和 GPT-4o 实际上在一个水平线上。
- OpenAI o1-preview 目前是我 coding 场景首选
2.4 Feedback + Memory 是关键增益项
你必须给 AI crew 反馈。它们很会执行指令,但并不知道你具体要什么,也读不了你的心(至少现在还不行 haha)。通过反馈训练 crew 很关键。
在 CrewAI 里做这件事很直接,运行:
crewai train -n <n_iterations> <filename> (optional)
我目前还没完全展开 CrewAI 的 memory 功能,但 feedback 与 memory 的组合潜力非常大,尤其对稳定输出高质量内容这件事。
3. 说了这么多,给我看结果!
好好好,我听见你说了:“Chandler 你讲够了,给样例!”
下面是完整工作流样例:
- Research Phase:看 Content Researcher 如何分析并抽取我博客内容关键信息
- Fact Check Summary:Fact Checker 的详细核查报告
- Initial Script Draft:Script Writer 的第一版对话脚本
- Final Polished Script:Script Editor 打磨后的最终版本(节奏与可听性更好)
- Listen to the Result:Audio Producer 产出的最终音频
这些链接展示了从原始内容到完整播客的演进过程,也能看到不同 agent 在最终结果中的贡献。
我对这条流水线还有很多可优化想法,但希望上面这些足够让你感受到它已经能做到什么。
最后想法
CrewAI 最让我有好感的,是它在“简单”和“能力”之间平衡得不错。它确实让内容生产门槛更低,但它并不是魔法按钮——质量仍然依赖专业判断、精细规划和持续迭代。
你有在试 CrewAI、Langgraph 这类多 agent 框架吗?很想听你在做什么,欢迎留言或联系我。
致敬,
Chandler
更新(2026 年 1 月):这个 CrewAI 实验最终演化成了 DIALØGUE —— 一个完整生产应用。上文提到的 voice 限制?我后来切到 Gemini TTS,拿到了 7 种语言、30 个声音。从 OpenAI 的 6 个 voice 到这个规模,提升非常明显。如果你感兴趣,可以 直接试试。





