第二幕:组建你的播客制作团队 🎬

情节加剧
Alex(你在第一幕中的 AI 助手)很棒,但一个智能体无法运营整个播客工作室。你需要一个团队:
- 🔍 研究智能体:搜索网络寻找新鲜信息
- ✍️ 脚本智能体:将研究转化为引人入胜的对话
- 👤 你(编辑):批准脚本或发回重写
欢迎来到 AI 智能体编排 —— 你成为自己 AI 团队的导演。想想复仇者联盟,但用于播客制作。
什么是智能体编排?(简单版本)
想象你在经营一家餐厅。你不会自己做所有事情,对吧?你有:
- 🍳 厨师负责烹饪
- 👨🍳 副厨负责准备
- 👩🍳 服务员负责送餐
智能体编排是同样的想法,但用 AI。每个智能体都有专长,你协调它们实现更大的目标。没有单个智能体不堪重负,工作完成得更快。
乐队类比 🎸
你的 AI 代理就像一个乐队:
- 主唱:处理面向客户任务的主要代理
- 鼓手:保持节奏,处理后台处理
- 贝斯手:支持每个人,获取数据
- 你(乐队经理):协调所有!
没有协调?只是噪音。有编排?美妙的音乐。
为什么这很重要
一个 AI 智能体试图做所有事情 = 倦怠。专业智能体一起工作 = 效率解锁!🚀
实话实说:还记得尝试独自研究、编写和编辑你的播客吗?是的,那很糟糕。通过编排,每个智能体处理它最擅长的。你只需做最终决定。
现实世界的例子:客户支持机器人知道何时处理账单 vs 技术问题 vs 何时呼叫人类。那就是编排!
智能体 vs 工作流:有什么区别?
这样想:
🤖 AI 智能体 = 爵士乐手
- 即兴决策基于它听到的内容
- 即兴创作使用它的工具解决方案
- 思考用 LLM 大脑
- 适应你扔给它的任何东西
🎵 工作流 = 管弦乐队演奏古典音乐
- 遵循乐谱(预定义步骤)
- 可预测的执行路径
- 协调多个智能体、人类、系统
- 结构化像食谱一样
魔力:工作流编排智能体!你构建一个工作流,告诉智能体何时发挥它们的作用。两全其美。🎭
三种协调你的 AI 团队的方式
1. 🎯 集中式(你是老板)
一个主智能体发号施令。把它想象成你管理一个团队 —— 你决定谁做什么以及何时做。
优点:
- ✅ 清晰的领导(没有混乱)
- ✅ 一致的决策
- ✅ 易于调试
适用于:
- 客户服务路由("这是账单还是技术支持?")
- 内容审批工作流("这个脚本通过了吗?")
- 播客制作(正是我们正在构建的!)
2. 🤝 去中心化(智能体自组织)
智能体直接相互交谈并作为一个群体解决问题。就像每个人都在协调的群聊。
优点:
- ✅ 易于扩展(随时添加更多智能体)
- ✅ 没有单点故障
- ✅ 智能体自然协作
适用于:
- 研究团队(每个智能体探索不同来源)
- 头脑风暴会议
- 分布式问题解决
3. 🔀 混合式(两全其美)
你设定总体方向,但智能体在任务上有自由自组织。就像一个信任团队的 CEO。
完美适用于:需要控制和灵活性的复杂项目。
Microsoft Agent Framework:你的编排工具包 🧰
是时候构建了!这是你将使用的:
构建模块
1. 🧱 执行器(你的工人)
- 它们是什么:单独的处理单元 —— 可能是智能体或自定义逻辑
- 它们做什么:接收输入,完成工作,产生输出
- 把它们想象成:流水线上的工作站
2. ➡️ 边(连接)
- 它们是什么:执行器之间的路径
- 它们做什么:控制消息流("在 A 之后,去 B")
- 把它们想象成:流程图上的箭头
3. 🗺️ 工作流(总体计划)
- 它们是什么:执行器 + 边的完整图
- 它们做什么:定义从开始到结束的整个过程
- 把它们想象成:你的制作流程蓝图
你会喜欢的酷功能
🛡️ 类型安全:智能体之间的消息是类型检查的。没有"哎呀,错误的数据类型"惊喜。
🔀 灵活路由:
- If-then 条件("如果批准,发布;否则,重写")
- 并行处理(多个代理同时工作)
- 动态路径(工作流根据结果调整)
🔌 外部集成:
- 连接到 API
- 添加人工在环检查点(你在发布前批准)
- 构建请求/响应流
💾 检查点:保存进度!如果某些东西崩溃了,从你离开的地方继续。
🤝 多代理协调:
- 按顺序运行代理(A → B → C)
- 并行运行它们(A + B + C 同时)
- 代理之间交接
- 协作处理
最佳实践(专业提示)🎯
1. 保持模块化
每个智能体应该真正做好一件事。不要制作一个做所有事情的"超级智能体" —— 你在调试时会后悔的。
2. 为失败做计划
智能体会搞砸。网络会失败。构建错误处理和备用计划。你未来的自己会感谢你。
3. 监控一切
跟踪你的智能体在做什么。使用 DevUI(我们会介绍的!)查看运行中的工作流。
4. 优化消息大小
不要在智能体之间传递巨大的文件。保持消息精简以提高速度。
5. 选择正确的模式
需要控制?选择集中式。需要规模?选择去中心化。无法决定?选择混合式!
DevUI:你的工作流调试器 🔍
什么是 DevUI?
DevUI 就像测试你的智能体和工作流的游乐场。这是一个 Web 界面,你可以:
- 👀 观看你的工作流运行
- 💬 直接与智能体聊天
- 🔍 当事情出错时调试
- 📊 查看跟踪和性能指标
重要:DevUI 仅用于开发!不要在生产中使用它。把它想象成你的本地测试环境。
什么让它很棒
- 🖥️ 交互式 Web UI:点击、输入、测试 —— 不需要命令行
- 📁 拖放就绪:上传文件,用不同输入测试
- 📂 自动发现:指向一个文件夹,它会自动找到所有智能体
- 📋 无需设置模式:在代码中注册智能体,无需文件夹结构
- 🔌 OpenAI 兼容:与 OpenAI SDK 兼容(兼容性万岁!)
- 👁️ 内置跟踪:准确看到你的智能体在做什么
输入如何工作
DevUI 对输入很智能:
- 测试智能体? 你得到文本框和文件上传按钮
- 测试工作流? UI 根据你的工作流期望的内容自动生成输入字段
这就像魔法,但这只是好代码。✨
你的任务:构建播客工作室 🎬
任务 1:使用 DevUI 创建单个代理
挑战:在构建完整团队之前,让我们用一个代理测试 DevUI:网络搜索专家。
你正在构建什么: 一个可以搜索互联网寻找播客主题的研究代理。你将使用 DevUI 的 Web 界面 http://localhost:8090 进行测试。
你将学到的技能:
- 🚀 在 DevUI 中启动代理
- 🔍 实时测试代理响应
- 🛠️ 构建自定义工具(网络搜索)
- 📊 启用跟踪以调试问题
- 🖥️ 使用交互式 Web UI
代码:
agent.py:你的具有网络搜索超能力的 SearchAgent- 使用 OllamaChatClient 连接到 Qwen
- 实现
web_search()工具函数 - 使用
serve()启动 —— 自动打开 DevUI
胜利条件:问你的代理"AI 领域有什么热点?"看它搜索网络!🎉
任务 2:构建多智能体工作流
挑战:现在真正的乐趣开始了!构建一个完整的播客制作工作流:
- 🔍 搜索智能体 → 研究你的主题
- ✍️ 脚本智能体 → 编写两个主持人之间的对话(用中文!)
- 👤 审查执行器 → 要求你批准或拒绝
- 🔄 循环回退 → 如果被拒绝,根据你的反馈重写
你将学到的技能:
- 🧱 为不同工作创建专门的智能体
- 🔗 使用 WorkflowBuilder 连接智能体
- 🔀 实现批准循环(人工在环!)
- 🚦 条件路由(如果批准 vs 拒绝)
- 🔧 为业务逻辑构建自定义执行器
工作流:
SearchAgent → ScriptAgent → ReviewExecutor
↑ ↓ (如果被拒绝)
←─────────代码:
search_agent/agent.py:你的研究专家generate_script_agent/agent.py:你的脚本作者(用中文写!)workflow/workflow.py:编排魔法在这里发生main.py:在 DevUI 中启动一切
胜利条件:给一个主题,审查脚本,拒绝一次以测试循环,然后批准!🎉
任务 3:构建控制台应用
挑战:将你的工作流从 DevUI 转变为带有彩色输出、加载旋转器和文件保存的时髦终端应用。这是生产就绪的东西!
你将学到的技能:
- ⚡ 以编程方式运行工作流(无 DevUI)
- 📡 使用流式处理的事件驱动架构
- 🎨 创建漂亮的终端 UI(颜色、旋转器、进度条)
- 💾 将最终脚本保存到文件
- 🔄 使用 Python 的 asyncio 处理异步工作流
它做什么:
- 询问你播客主题
- 显示实时进度("搜索智能体正在工作...")
- 用颜色显示生成的脚本
- 请求你的批准
- 将批准的脚本保存到
podcast.txt
代码:
podcast_app.py:你的带有事件处理的主应用workflow.py:重用任务 2 的工作流- 处理事件:
AgentRunUpdateEvent、RequestInfoEvent、WorkflowOutputEvent - 使用 ANSI 颜色进行终端样式
胜利条件:运行应用,创建播客脚本,看到它被保存!你已经构建了一个真正的工具。🚀
你已经掌握的 🏆
第二幕之后,你可以:
- ✅ 像老板一样编排多个 AI 智能体
- ✅ 构建具有顺序和条件逻辑的工作流
- ✅ 添加人工批准检查点
- ✅ 使用 DevUI 测试和调试工作流
- ✅ 创建生产就绪的控制台应用程序
- ✅ 在复杂系统中优雅地处理错误
- ✅ 为任何项目选择正确的编排模式
当事情出错时 🔧
"我的工作流太复杂了!"
解决方案:将其分解为更小的子工作流。每个工作流应该做好一件事。如果需要,将它们链接在一起。
"我无法跟踪正在发生的事情!"
解决方案:使用工作流检查点保存状态。在 DevUI 中启用跟踪以查看每一步。
"一个智能体的错误会崩溃所有东西!"
解决方案:添加错误边界。每个智能体应该处理自己的失败并有备用行为。
"这太慢了"
解决方案:有智能体可以并行运行吗?顺序工作流很容易但很慢。寻找并行化机会!
有用的资源 🔗
- 工作流文档 —— 官方 Microsoft 指南
- 编排模式 —— IBM 的看法
- Agent Framework GitHub —— 浏览源代码
- 代码示例 —— 从这里窃取模式
准备好迎接大结局了吗? 你有了脚本。现在让我们把它变成真实的音频!→ 第三幕:让你的播客活起来 🎤
卡住了?困惑了?兴奋了? 在工作坊聊天中分享!我们一起学习。🚀