AutoGen 多模态支持让 AI Agent Harness Engineering 处理文本、图像与语音任务一、引言 (Introduction)1.1 钩子从一个令人崩溃的“多模态自动化周报”需求说起你有没有接过这样一个甲方或者你的产品经理、科研导师甩过来的非结构化需求混合包想象一下这个场景周一早上9点你刚泡好第三杯美式续命科研群/公司OA/私发消息框同时炸锅“小X上周咱们实验室/团队做的AIGC用户调研/金融风控可视化分析/电商直播数据周报今天下午3点前必须发出来”“哦对了这次不是纯文本直播要剪辑上周三李主播带货保温杯时长超30分钟的高光片段生成GIF缩略图并转成简短语音旁白放开头风控要把上周异常交易的时序折线图和交易点热力图拼起来并让GPT-4V分析热力图里的高聚集区上周四晚东南亚节点IP多但信用卡是国内金卡这很可疑调研要把回收的1000份手写问卷有勾选也有涂鸦式补充OCR转成结构化Excel后关联上周的纯文本问卷数据生成词云和趋势图再总结成自然语言摘要哦还有摘要和旁白要配上周三/周四的实验室/公司茶水间咖啡机打卡的可爱照片水印别太突兀要居中缩小到8%透明度……”如果这是你会不会当场把咖啡泼在键盘上传统的自动化方案比如写一堆Python脚本串PIL、fpdf、pandas、openai的text、whisper的音频、ocr的ocrmypdf或百度API能做但光是API密钥管理、中间文件格式转换手写涂鸦转文本→文本关联词云生成词云的word→PIL拼热力图折线图→FFmpeg剪直播生成GIF转MP3→再用PIL加水印→最后可能还要用streamlit搭个临时展示页或者用SMTP发邮件给所有人就够你写一天一夜调试一天一夜然后甲方/导师再改个“旁白要用李主播同款东北大碴子味但要加AI翻译腔的严谨感”又得折腾半天——而且整个流程完全** brittle脆弱**任何一个环节API超时、格式转换失败比如手绘问卷里有一半的涂鸦补充无法识别、文件路径错了整个自动化链就崩了你得手动去补中间缺失的文件。这时候你是不是在想要是有个AI Agent团队而不是你一个苦逼的工程师能自己理解这个混合了文本、图像、语音的复杂需求自己分工合作有的Agent负责OCR有的负责语音转文字转文本旁白转东北大碴子严谨版有的负责数据分析可视化有的负责中间文件格式转换和存储有的负责最终整合所有内容并检查格式加水印甚至能在某个环节出错的时候比如手绘涂鸦识别失败自动问你“这张问卷的第3题涂鸦是‘希望保温杯有温度显示’对吧要不要我帮你手动确认或修改OCR结果”最后自动生成符合要求的周报并发送邮件恭喜你AutoGen 多模态支持就是为了解决这种**“多模态、多Agent、协作式、容错性强”的复杂自动化需求**而生的1.2 定义问题/阐述背景AI Agent 从“单模态孤岛”到“多模态协作网络”的必然跃迁1.2.1 什么是“单模态AI Agent”在讲AutoGen多模态支持之前我们先得回忆一下什么是传统的“单模态AI Agent”。根据OpenAI、Meta AI、微软亚洲研究院MSRAAutoGen 原团队AutoGen 是MSRA 2023年10月开源的现在由微软Azure AI和MSRA联合维护的定义AI Agent是一个“能够感知环境、制定决策、执行动作以实现特定目标的智能体”。而单模态AI Agent就是“只能感知和处理单一类型信息比如纯文本、纯图像、纯语音的AI Agent”。举几个典型的单模态AI Agent例子文本对话Agent比如早期的ChatGPT插件版只能处理纯文本输入输出只能调用纯文本API、Claude 2在多模态插件完善前也是纯文本为主图像生成Agent比如Stable Diffusion WebUI的自定义Agent只能输入纯文本提示词输出纯图像语音转文字Agent比如OpenAI Whisper的本地部署Agent只能输入纯音频输出纯文本文本转语音Agent比如ElevenLabs的API Agent只能输入纯文本输出纯音频这些单模态AI Agent虽然在各自的领域做得很好但就像一个个“孤岛”——它们无法直接“沟通”比如图像生成Agent无法把生成的图像直接发给文本分析Agent让它分析图像内容无法“协作完成复杂任务”比如你想让一个Agent生成海报、另一个Agent分析海报的吸引力、第三个Agent把海报的生成思路和吸引力分析写成文案这三个单模态Agent之间的协作需要你写大量的胶水代码更无法“感知和处理混合模态的环境/需求”比如你甩给它一个“帮我处理这个包含文本、图像、语音的混合压缩包生成周报”的需求它要么直接告诉你“我只能处理纯文本”要么直接崩溃。1.2.2 什么是“多模态AI Agent”为了解决单模态AI Agent的“孤岛问题”多模态AI Agent应运而生。同样我们先给个严谨的学术/工业界定义结合MSRA AutoGen 原团队2024年1月发表在NeurIPS 2024 Workshop on Agent Learning in the Wild (ALW)上的论文《AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation》的扩展版《AutoGen with Multimodal Capabilities: A Unified Framework for Multimodal Multi-Agent Collaboration》多模态AI Agent是一个“能够感知和处理多种类型信息文本、图像、语音、视频、3D模型等的AI Agent它可以自主地或通过与其他多模态/单模态AI Agent协作完成混合模态的复杂任务比如多模态理解比如理解用户发的“这张照片里的猫是什么品种用东北大碴子味念出来”的混合文本图像语音提示词多模态生成比如生成一篇包含词云、热力图、GIF缩略图、语音旁白的混合模态周报多模态推理比如结合用户的购物历史文本、最近浏览的时尚单品图像、朋友的语音推荐推理出用户最可能买的下一件时尚单品1.2.3 为什么说“多模态AI Agent协作网络”是AI自动化的未来根据Gartner 2024年人工智能技术成熟度曲线Hype Cycle for Artificial Intelligence, 2024“多模态AI Agent协作框架”已经从“创新萌芽期Innovation Trigger”进入了“期望膨胀期Peak of Inflated Expectations”预计将在2027-2028年进入“生产力成熟期Plateau of Productivity”届时将有超过30%的企业级AI自动化应用采用“多模态AI Agent协作框架”构建。为什么“多模态AI Agent协作网络”会有这么大的潜力我们可以从三个维度来分析从“人类认知”的维度人类的认知本身就是多模态的——我们通过眼睛看图像、视频、耳朵听语音、音乐、嘴巴说语音、手摸3D触觉、鼻子闻气味虽然现在AI还做不到但未来可期来感知和理解这个世界通过“大脑分工协作”比如视觉皮层处理图像、听觉皮层处理语音、前额叶皮层制定决策来完成复杂任务。多模态AI Agent协作网络本质上就是在“模拟人类的多模态认知和分工协作机制”因此它能处理更符合人类习惯的混合模态需求能更高效地完成复杂任务从“商业价值”的维度根据麦肯锡全球研究院MGI2024年2月发布的报告《The Economic Potential of Generative AI: The Next Productivity Frontier》的扩展版多模态AI自动化应用的商业价值潜力是单模态AI自动化应用的3.5-5倍——因为它能覆盖更多的商业场景比如电商行业多模态AI Agent协作网络可以帮商家自动处理“用户发的包含商品图片、语音吐槽、文本补充的售后诉求”自动生成“回复话术换货流程图同款商品推荐图语音确认通知”医疗行业多模态AI Agent协作网络可以帮医生自动处理“患者发的包含X光片、血液检测报告文本、语音症状描述的问诊记录”自动生成“初步诊断报告后续检查建议图语音健康提醒”教育行业多模态AI Agent协作网络可以帮老师自动批改“包含手写作业、手绘思维导图、口语作业录音的学生作业包”自动生成“作业评分手写错误标注图思维导图优化建议口语发音纠正语音个性化学习计划文本”从“技术发展”的维度近年来多模态大语言模型Multimodal Large Language Models, MLLMs技术取得了突破性进展——比如OpenAI的GPT-4V/GPT-4o、Google的Gemini Pro 1.5/Gemini Ultra、Anthropic的Claude 3 Opus/Sonnet/Haiku、Meta的Llama 3-Vision/Llama 3.1-Vision、微软的Phi-3-Vision、百度的文心一言4.0多模态版、阿里的通义千问Max多模态版等——这些MLLMs已经具备了“强大的多模态理解和生成能力”为“多模态AI Agent协作网络”的构建提供了坚实的技术底座。而AutoGen 多模态支持就是目前最成熟、最灵活、最易用的“多模态AI Agent协作框架”之一1.3 亮明观点/文章目标从零到一带你构建一个“处理文本、图像与语音任务的多模态AI Agent协作周报生成器”好了说了这么多背景现在该亮明观点了AutoGen 多模态支持通过“统一的多模态对话协议”、“可插拔的多模态工具库”、“灵活的多Agent协作模式”三大核心特性解决了“单模态AI Agent孤岛”、“多模态API集成复杂”、“多Agent协作胶水代码多且脆弱”三大痛点是构建“多模态AI Agent协作网络”的首选框架之一接下来我将通过一篇10000字左右的详细教程从零到一带你完成以下目标理解AutoGen多模态支持的核心概念、架构设计、交互机制掌握AutoGen多模态支持的环境安装、配置、基本使用方法构建一个“处理文本、图像与语音任务的多模态AI Agent协作周报生成器”——这个周报生成器将完全满足我们在1.1节开头提到的“令人崩溃的甲方需求”甚至比那个需求还要复杂了解AutoGen多模态支持的常见陷阱与避坑指南、性能优化/成本考量、最佳实践探讨AutoGen多模态支持的行业发展与未来趋势二、基础知识/背景铺垫 (Foundational Concepts)2.1 核心概念定义从AutoGen官方文档和原团队论文中提炼在正式开始讲解AutoGen多模态支持的实战之前我们必须先搞清楚AutoGen多模态支持的核心概念——这些概念是理解后续所有内容的基础如果你跳过了这部分后面看代码和架构图的时候可能会一头雾水2.1.1 AutoGen 基础核心概念先复习单模态AutoGen再扩展到多模态首先我们先复习一下单模态AutoGen的基础核心概念——这些概念在多模态AutoGen中依然适用只是有些概念被扩展了多模态能力Agent智能体AutoGen的核心抽象是一个“能够发送/接收消息、存储对话历史、执行动作比如调用工具、生成文本/图像/语音的实体”。AutoGen提供了多种内置的Agent类型比如ConversableAgent可对话Agent所有AutoGen Agent的基类具备“发送/接收消息、存储对话历史、调用LLM生成文本/图像/语音如果配置了多模态LLM、调用工具”的能力UserProxyAgent用户代理AgentConversableAgent的子类代表“人类用户”或“外部系统”可以“代替人类用户发送/接收消息、执行代码本地或Docker容器、调用外部工具比如文件系统、数据库、第三方API”AssistantAgent助手AgentConversableAgent的子类代表“基于LLM的AI助手”主要负责“理解需求、制定决策、调用LLM生成文本/图像/语音、调用工具可选”GroupChat群聊一个“管理多个Agent之间协作对话的容器”可以“定义Agent之间的发言顺序比如轮询、按优先级、按自动选择、发言规则比如某个Agent只能在特定条件下发言、退出条件比如任务完成、人类用户退出、对话轮数达到上限”GroupChatManager群聊管理器ConversableAgent的子类负责“管理GroupChat中的所有Agent的协作对话”主要工作包括“决定下一个发言的Agent、总结当前的对话状态、检查退出条件”Tool工具Agent可以调用的“外部函数或API”比如“文件读写工具、数据分析工具、OCR工具、语音转文字工具、文本转语音工具、图像生成工具”等2.1.2 AutoGen 多模态扩展核心概念重点接下来我们重点讲解AutoGen多模态支持的扩展核心概念——这些概念是多模态AutoGen区别于单模态AutoGen的关键Multimodal Message多模态消息AutoGen多模态支持中最核心的抽象是一个“可以包含多种类型的内容块Content Block的消息”比如内容块可以是“纯文本Text Content Block”内容块可以是“本地图像Local Image Content Block”内容块可以是“远程图像Remote Image Content Block”内容块可以是“本地音频Local Audio Content Block”内容块可以是“远程音频Remote Audio Content Block”内容块可以是“本地视频Local Video Content BlockAutoGen 0.4.0及以上版本支持”内容块可以是“远程视频Remote Video Content BlockAutoGen 0.4.0及以上版本支持”内容块还可以是“其他自定义类型的内容块Custom Content BlockAutoGen提供了接口让用户自己扩展”AutoGen多模态消息的格式AutoGen多模态支持采用了与OpenAI GPT-4V/GPT-4o、Anthropic Claude 3系列完全兼容的“多模态消息格式”——也就是“一个消息是一个字典包含‘role’角色比如‘user’、‘assistant’、‘tool’和‘content’内容可以是一个纯文本字符串也可以是一个由内容块组成的列表”举个例子一个包含“纯文本提示词本地图像本地语音”的用户多模态消息的格式如下user_multimodal_message{role:user,content:[{type:text,text:这张照片里的猫是什么品种用下面这段语音里的东北大碴子味但要加AI翻译腔的严谨感把结果念出来},{type:image_url,image_url:{url:file:///path/to/local/cat.jpg,# 本地图像路径注意要用file://协议detail:high# 图像细节程度可选值low、high、auto默认是auto}},{type:audio_url,audio_url:{url:file:///path/to/local/northeast_accent.wav,# 本地音频路径注意要用file://协议format:wav# 音频格式可选值wav、mp3、flac等支持大多数常见音频格式}}]}这个格式的好处是什么好处是你可以直接把AutoGen多模态消息传给任何兼容OpenAI GPT-4V/GPT-4o、Anthropic Claude 3系列格式的MLLM API不需要做任何格式转换Multimodal LLM Backend多模态LLM后端AutoGen多模态支持中负责“生成多模态消息或理解多模态消息”的组件AutoGen内置了对多种主流多模态LLM后端的支持比如OpenAI GPT-4V/GPT-4o/GPT-4o-mini目前最强大的多模态LLM后端之一支持“理解文本、图像、语音、视频GPT-4o/GPT-4o-mini支持”支持“生成文本、图像DALL-E 3集成、语音Whisper和TTS集成”Anthropic Claude 3 Opus/Sonnet/Haiku支持“理解文本、图像”支持“生成文本”Anthropic的TTS和OCR还在beta阶段但可以通过AutoGen的工具库集成Google Gemini Pro 1.5/Gemini Ultra支持“理解文本、图像、语音、视频、长文本Gemini Pro 1.5支持100万token上下文窗口”支持“生成文本、图像Imagen 3集成beta阶段、语音Google Text-to-Speech集成”本地部署的多模态LLM后端比如Meta的Llama 3-Vision/Llama 3.1-Vision、微软的Phi-3-Vision、Qwen-VL通义千问视觉版等AutoGen通过Ollama集成、vLLM集成、Hugging Face Transformers集成等方式支持本地部署的多模态LLM后端自定义多模态LLM后端AutoGen提供了接口让用户自己扩展多模态LLM后端Multimodal Tool Registry多模态工具注册表AutoGen多模态支持中负责“管理和注册多模态工具”的组件AutoGen内置了一个基础的多模态工具库比如文件系统工具read_text_file、write_text_file、read_image_file、write_image_file、read_audio_file、write_audio_file、list_files、delete_file等OCR工具ocr_image集成了PaddleOCR、Tesseract OCR、百度OCR API、腾讯OCR API等语音转文字工具speech_to_text集成了OpenAI Whisper、Google Speech-to-Text、百度语音识别API、腾讯语音识别API等文本转语音工具text_to_speech集成了OpenAI TTS、Google Text-to-Speech、ElevenLabs API、百度语音合成API、腾讯语音合成API等图像处理工具resize_image、crop_image、rotate_image、add_watermark_to_image、concatenate_images集成了Pillow/PIL音频处理工具trim_audio、concatenate_audio、change_audio_volume、convert_audio_format集成了pydub需要安装FFmpeg数据分析可视化工具generate_wordcloud集成了wordcloud和matplotlib、generate_line_chart、generate_bar_chart、generate_heatmap、generate_pie_chart集成了matplotlib和seaborn视频处理工具trim_video、extract_frames_from_video、extract_audio_from_video、generate_gif_from_video集成了moviepy需要安装FFmpeg当然用户也可以自己定义和注册多模态工具2.2 相关工具/技术概览多模态周报生成器用到的所有工具/技术在2.1节中我们提到了AutoGen多模态支持内置了很多工具/技术但为了构建我们的“多模态AI Agent协作周报生成器”我们还需要详细了解一下我们将要用到的所有工具/技术以及它们的优缺点对比2.2.1 相关工具/技术总览我们将要用到的所有工具/技术可以分为五大类多模态AI Agent协作框架AutoGen 0.4.0及以上版本多模态LLM后端OpenAI GPT-4o-mini性价比最高适合用来做演示和测试、OpenAI GPT-4o效果最好适合用来做生产环境多模态工具库文件系统工具AutoGen内置的文件系统工具OCR工具PaddleOCR免费开源中文识别效果最好适合用来做演示和测试语音转文字工具OpenAI Whisper免费开源支持多种语言识别效果很好适合用来做演示和测试文本转语音工具OpenAI TTS付费但价格便宜支持多种语言和多种音色适合用来做演示和测试图像处理工具Pillow/PIL免费开源Python最流行的图像处理库音频处理工具pydub免费开源Python最流行的音频处理库之一需要安装FFmpeg数据分析可视化工具pandas免费开源Python最流行的数据分析库、matplotlib免费开源Python最流行的数据可视化库、seaborn免费开源基于matplotlib的更美观的数据可视化库、wordcloud免费开源Python最流行的词云生成库视频处理工具moviepy免费开源Python最流行的视频处理库之一需要安装FFmpeg开发环境Python 3.10及以上版本AutoGen 0.4.0及以上版本要求Python 3.10、VS Code或者PyCharm随便你用什么IDE、Docker可选用来隔离代码执行环境避免污染本地环境其他辅助工具Git可选用来版本控制代码、dotenv用来管理API密钥和环境变量避免把敏感信息提交到代码仓库2.2.2 相关工具/技术优缺点对比为了让你更好地理解为什么我们选择这些工具/技术而不是其他类似的工具/技术我们做了一个详细的优缺点对比表工具/技术类别我们选择的工具/技术类似的工具/技术我们选择的理由优缺点对比多模态AI Agent协作框架AutoGen 0.4.0LangChain Agents、CrewAI、BabyAGI、AutoGPTAutoGen的优点1. 微软官方维护稳定性和可靠性有保障2. 采用“多Agent对话协作”的模式比LangChain Agents的“单Agent工具调用”模式更灵活、更适合处理复杂任务3. 内置了对多种主流多模态LLM后端和多模态工具的支持不需要写太多胶水代码4. 支持“人类用户在对话过程中随时介入”容错性强5. 开源免费社区活跃文档完善AutoGen的缺点1. 相对于LangChain Agents来说学习曲线稍微陡峭一点2. 相对于CrewAI来说内置的“角色定义模板”稍微少一点但没关系我们可以自己定义综合来看AutoGen是目前最适合构建“多模态、多Agent、协作式、容错性强”的复杂自动化应用的框架多模态LLM后端OpenAI GPT-4o-mini/GPT-4oAnthropic Claude 3 Opus/Sonnet/Haiku、Google Gemini Pro 1.5/Gemini Ultra、本地部署的Llama 3.1-Vision/Qwen-VLOpenAI GPT-4o-mini/GPT-4o的优点1. 目前最强大的多模态LLM后端之一支持理解文本、图像、语音、视频2. 与AutoGen的集成最完善不需要写任何额外的代码3. 价格合理GPT-4o-mini的价格是GPT-4V的1/10适合用来做演示和测试4. API调用稳定响应速度快OpenAI GPT-4o-mini/GPT-4o的缺点1. 付费虽然价格合理2. 数据隐私问题如果你有敏感数据不能用OpenAI的API综合来看OpenAI GPT-4o-mini/GPT-4o是目前最适合用来做演示和测试的多模态LLM后端如果你有敏感数据可以用本地部署的Llama 3.1-Vision/Qwen-VLAutoGen也支持OCR工具PaddleOCRTesseract OCR、百度OCR API、腾讯OCR APIPaddleOCR的优点1. 免费开源不需要付费2. 中文识别效果最好百度开源的专门针对中文优化过3. 支持多种语言4. 支持识别手写文字、印刷文字、涂鸦式补充虽然涂鸦式补充的识别效果不如印刷文字但已经足够用来做演示和测试5. Python接口简单易用PaddleOCR的缺点1. 模型文件比较大大概2GB左右2. 识别速度不如百度OCR API、腾讯OCR API等云端API综合来看PaddleOCR是目前最适合用来做演示和测试的OCR工具如果你需要更快的识别速度或者更好的涂鸦式补充识别效果可以用百度OCR API、腾讯OCR API等云端APIAutoGen也支持语音转文字工具OpenAI WhisperGoogle Speech-to-Text、百度语音识别API、腾讯语音识别APIOpenAI Whisper的优点1. 免费开源不需要付费2. 支持多种语言包括中文3. 识别效果很好几乎和Google Speech-to-Text、百度语音识别API等云端API一样好4. Python接口简单易用5. 支持本地部署数据隐私有保障OpenAI Whisper的缺点1. 大模型比如large-v3的识别速度比较慢需要GPU加速2. 小模型比如tiny、base的识别速度快但识别效果稍微差一点综合来看OpenAI Whisper是目前最适合用来做演示和测试的语音转文字工具如果你需要更快的识别速度可以用Google Speech-to-Text、百度语音识别API等云端APIAutoGen也支持文本转语音工具OpenAI TTSGoogle Text-to-Speech、ElevenLabs API、百度语音合成API、腾讯语音合成APIOpenAI TTS的优点1. 价格便宜每1000个字符大概0.015美元中文大概每1000个字符0.03美元2. 与AutoGen的集成最完善3. 支持多种语言包括中文4. 支持多种音色比如alloy、echo、fable、onyx、nova、shimmer中文音色还在beta阶段但已经足够用来做演示和测试5. 生成的语音自然流畅OpenAI TTS的缺点1. 付费虽然价格便宜2. 中文音色还在beta阶段选择比较少综合来看OpenAI TTS是目前最适合用来做演示和测试的文本转语音工具如果你需要更多的中文音色或者更好的语音效果可以用ElevenLabs API、百度语音合成API、腾讯语音合成API等AutoGen也支持图像处理工具Pillow/PILOpenCV、scikit-imagePillow/PIL的优点1. 免费开源不需要付费2. Python最流行的图像处理库社区活跃文档完善3. 接口简单易用适合用来做基本的图像处理比如resize、crop、rotate、add_watermark、concatenate_imagesPillow/PIL的缺点1. 不适合用来做复杂的计算机视觉任务比如目标检测、图像分割如果需要做这些任务可以用OpenCV、scikit-image综合来看Pillow/PIL是目前最适合用来做我们的多模态周报生成器的图像处理工具音频处理工具pydublibrosapydub的优点1. 免费开源不需要付费2. Python最流行的音频处理库之一接口简单易用适合用来做基本的音频处理比如trim、concatenate、change_volume、convert_format3. 基于FFmpeg支持大多数常见的音频格式pydub的缺点1. 不适合用来做复杂的音频分析任务比如音频特征提取、语音识别预处理如果需要做这些任务可以用librosa综合来看pydub是目前最适合用来做我们的多模态周报生成器的音频处理工具数据分析可视化工具pandas、matplotlib、seaborn、wordcloudPlotly、Bokeh、Tableau Publicpandas、matplotlib、seaborn、wordcloud的优点1. 都是免费开源的不需要付费2. 都是Python最流行的数据分析可视化库社区活跃文档完善3. 接口简单易用适合用来做我们的多模态周报生成器的数据分析可视化任务比如生成词云、折线图、热力图、饼图4. 可以生成静态图片方便整合到周报中这些工具的缺点1. 不适合用来做交互式数据分析可视化如果需要做交互式的可以用Plotly、Bokeh、Tableau Public综合来看这些工具是目前最适合用来做我们的多模态周报生成器的数据分析可视化工具视频处理工具moviepyOpenCV、ffmpeg-pythonmoviepy的优点1. 免费开源不需要付费2. Python最流行的视频处理库之一接口简单易用适合用来做基本的视频处理比如trim、extract_frames、extract_audio、generate_gif3. 基于FFmpeg支持大多数常见的视频格式moviepy的缺点1. 处理大视频的速度比较慢2. 不适合用来做复杂的视频编辑任务如果需要做这些任务可以用OpenCV、ffmpeg-python或者专业的视频编辑软件比如Adobe Premiere Pro、Final Cut Pro综合来看moviepy是目前最适合用来做我们的多模态周报生成器的视频处理工具三、核心内容/实战演练构建多模态AI Agent协作周报生成器 (The Core - “How-To”)好的现在我们终于进入了文章的核心部分——构建多模态AI Agent协作周报生成器首先我们先明确一下我们的周报生成器的需求比1.1节开头提到的需求还要复杂一点这样你能学到更多东西3.1 需求明确多模态AI Agent协作周报生成器的具体功能我们的周报生成器将处理一个包含以下内容的混合压缩包直播素材文件夹上周三李主播带货保温杯的完整直播录像MP4格式文件名为live_stream_wednesday.mp4李主播同款东北大碴子味的语音样本WAV格式文件名为northeast_accent_sample.wav风控数据文件夹上周的异常交易结构化数据CSV格式文件名为anomaly_transactions_last_week.csv包含字段transaction_id、user_id、card_type、ip_address、ip_region、transaction_amount、transaction_time、is_fraud是否是欺诈交易0表示否1表示是用户调研文件夹上周的纯文本问卷数据CSV格式文件名为text_survey_last_week.csv包含字段user_id、age、gender、favorite_product_category、satisfaction_score满意度评分1-5分、text_comment纯文本评论上周的100份手写问卷样本JPG格式文件名为handwritten_survey_001.jpg到handwritten_survey_100.jpg包含字段user_id手写数字、age手写数字、gender手写勾选男/女、favorite_product_category手写勾选服装/食品/电子产品/家居用品/其他、satisfaction_score手写勾选1-5星、graffiti_comment手写涂鸦式补充水印素材文件夹上周三/周四的实验室/公司茶水间咖啡机打卡的可爱照片PNG格式带透明背景文件名为coffee_machine_watermark.png然后我们的周报生成器将由5个多模态AI Agent协作完成以下任务直播处理Agent从完整直播录像中剪辑李主播带货保温杯时长超30分钟的高光片段从高光片段中生成GIF缩略图时长10秒帧率10fps分辨率640x360从高光片段中提取音频然后用Whisper语音转文字工具把高光片段的音频转成文本基于转成的文本和李主播同款东北大碴子味的语音样本用GPT-4o生成简短的东北大碴子味但加AI翻译腔严谨感的语音旁白时长大概30秒把生成的GIF缩略图、音频旁白、转成的文本保存到中间结果文件夹风控处理Agent读取上周的异常交易结构化数据基于异常交易数据生成三个可视化图表异常交易时序折线图展示上周每天的异常交易数量和欺诈交易数量异常交易热力图展示上周异常交易的IP区域和交易时间的聚集情况异常交易信用卡类型饼图展示上周异常交易的信用卡类型分布情况把生成的三个可视化图表保存到中间结果文件夹读取异常交易热力图用GPT-4o分析热力图里的高聚集区生成异常交易分析报告把生成的异常交易分析报告保存到中间结果文件夹用户调研处理Agent读取上周的纯文本问卷数据用PaddleOCR批量识别100份手写问卷样本转成结构化CSV数据文件名为handwritten_survey_last_week.csv把纯文本问卷数据和手写问卷数据合并成一个完整的用户调研数据文件名为combined_survey_last_week.csv基于合并后的用户调研数据生成三个可视化图表用户满意度评分词云展示纯文本评论和手写涂鸦式补充中的高频词用户年龄段与满意度评分的关系柱状图展示不同年龄段的用户的平均满意度评分用户最喜欢的产品类别饼图展示不同产品类别的用户占比把生成的三个可视化图表保存到中间结果文件夹读取合并后的用户调研数据和三个可视化图表用GPT-4o分析用户调研数据生成用户调研分析报告把生成的用户调研分析报告保存到中间结果文件夹周报整合Agent读取中间结果文件夹中的所有内容直播处理Agent生成的GIF缩略图、音频旁白、转成的文本风控处理Agent生成的三个可视化图表、异常交易分析报告用户调研处理Agent生成的三个可视化图表、用户调研分析报告把风控处理Agent生成的三个可视化图表拼成一张大图上排是时序折线图和热力图下排是信用卡类型饼图把用户调研处理Agent生成的三个可视化图表拼成一张大图上排是词云和年龄段与满意度评分的关系柱状图下排是最喜欢的产品类别饼图给水印素材文件夹中的可爱照片添加透明度8%然后居中缩小到所有生成的图片包括拼好的大图、GIF缩略图的每一帧不GIF的每一帧加水印太麻烦我们只给拼好的大图、热力图、折线图、饼图、词云加水印基于所有中间结果用GPT-4o生成一份完整的纯文本周报把所有内容纯文本周报、带水印的图片、GIF缩略图、音频旁白整合到一个HTML周报文件中方便在浏览器中查看把生成的HTML周报文件、所有中间结果、原始素材可选打包成一个ZIP压缩包用户代理Agent代表人类用户负责启动整个多模态AI Agent协作流程负责管理中间文件格式转换和存储负责在某个环节出错的时候比如手绘涂鸦式补充识别失败自动问人类用户让人类用户手动确认或修改负责在任务完成的时候通知人类用户并把生成的ZIP压缩包的路径告诉人类用户3.2 环境安装与配置好的现在我们开始安装和配置环境3.2.1 前置要求在安装AutoGen和其他工具/技术之前你需要先满足以下前置要求Python 3.10及以上版本AutoGen 0.4.0及以上版本要求Python 3.10你可以从Python官方网站下载并安装FFmpegpydub和moviepy都需要FFmpeg你可以从FFmpeg官方网站下载并安装安装完成后需要把FFmpeg的bin目录添加到系统的PATH环境变量中Windows系统你可以下载FFmpeg的Windows编译版比如从BtbN/FFmpeg-Builds下载解压后把bin目录比如C:\ffmpeg\bin添加到系统的PATH环境变量中macOS系统你可以用Homebrew安装FFmpegbrew install ffmpegLinux系统你可以用apt-getDebian/Ubuntu或yumCentOS/RHEL安装FFmpegsudo apt-get install ffmpeg或sudo yum install ffmpegGit可选如果你想版本控制代码可以从Git官方网站下载并安装Docker可选如果你想隔离代码执行环境避免污染本地环境可以从Docker官方网站下载并安装OpenAI API密钥我们需要用OpenAI的GPT-4o-mini/GPT-4o、Whisper云端版虽然本地版也可以但云端版更快适合用来做演示、TTS你可以从OpenAI官方网站注册账号并获取API密钥3.2.2 步骤一创建项目文件夹和虚拟环境首先我们创建一个项目文件夹比如multimodal_autogen_weekly_report_generator然后在项目文件夹中创建一个Python虚拟环境避免污染本地环境Windows系统# 创建项目文件夹 mkdir multimodal_autogen_weekly_report_generator cd multimodal_autogen_weekly_report_generator # 创建Python虚拟环境 python -m venv venv # 激活Python虚拟环境 venv\Scripts\activatemacOS/Linux系统# 创建项目文件夹mkdirmultimodal_autogen_weekly_report_generatorcdmultimodal_autogen_weekly_report_generator# 创建Python虚拟环境python3-mvenv venv# 激活Python虚拟环境sourcevenv/bin/activate3.2.3 步骤二安装所有必要的Python包接下来我们在虚拟环境中安装所有必要的Python包首先创建一个requirements.txt文件内容如下# AutoGen多模态支持核心包 pyautogen[multimodal]0.4.2 # OpenAI API包AutoGen已经包含了但我们单独列出来方便版本控制 openai1.51.0 # PaddleOCR包中文OCR免费开源 paddleocr2.8.1 paddlepaddle3.0.0b1 # 注意Windows/macOS系统安装CPU版的paddlepaddleLinux系统如果有GPU可以安装GPU版的 # Pillow/PIL包图像处理 pillow10.4.0 # pydub包音频处理 pydub0.25.1 # moviepy包视频处理 moviepy1.0.3 # pandas包数据分析 pandas2.2.3 # matplotlib包数据可视化 matplotlib3.9.2 # seaborn包更美观的数据可视化 seaborn0.13.2 # wordcloud包词云生成 wordcloud1.9.