看到"AI开会辩论"这个概念时,我第一反应是:这怎么实现?
直到翻完BettaFish的源码,才发现原来不用LangChain、不用AutoGPT,纯Python也能搞定多Agent协作。这个项目在GitHub上已经拿到14.2k星标,代码全开源。
项目功能介绍
BettaFish(中文名"微舆")是个舆情分析工具,但它的技术架构适用范围更广。
主要能力:
- 自动采集微博、小红书、抖音等30多个平台的数据
- 分析海量用户评论,输出专业分析报告
- 处理视频、图片等多种格式的内容
- 支持接入企业内部数据库做定制分析
使用方式很简单,在对话框里输入分析需求,系统会自动完成数据抓取、内容分析、报告生成这一整套流程。
技术实现方案
四个Agent的分工设计
项目里有4个专门的Agent,各司其职:
- QueryAgent:负责在国内外网页上搜索信息
- MediaAgent:负责解析视频、图片这些多媒体内容
- InsightAgent:负责从数据库里挖掘数据
- ReportAgent:负责把分析结果整理成报告
每个Agent都有自己的工具库和处理逻辑,就像团队里不同岗位的人。
"论坛式"协作机制
这是整个项目最有意思的设计。
一般的多Agent系统,要么让Agent按顺序执行任务,要么简单投个票。BettaFish用了个"论坛讨论"的思路:
各Agent同时开始研究
↓
ForumEngine(相当于主持人)总结大家的发言
↓
各Agent看到其他人的观点后,调整自己的研究方向
↓
这样循环几轮,直到得出结论
这种方式能避免单个AI模型的思维盲区,通过"讨论"让结果更全面。
代码结构设计
每个Engine的目录组织得很清楚:
InsightEngine/
├── agent.py # 核心逻辑
├── nodes/ # 处理流程的各个节点
├── tools/ # 这个Agent专用的工具
├── llms/ # 调用大模型的接口
└── prompts/ # 提示词模板
想把它改成金融分析系统?主要改两个地方:tools/里的API配置,prompts/里的提示词。其他代码基本不用动。
核心技术细节
状态机处理流程
每个Agent内部用状态机来控制流程,通过nodes/目录里的节点来定义处理步骤:
搜索节点 → 总结节点 → 格式化节点 → 输出结果
这样设计的好处是流程清晰,出问题容易定位。
多个模型配合工作
项目不是只靠大语言模型,还整合了:
- 专门训练的情感分析模型
- Qwen做的关键词优化工具
- 一些统计分析模型
多个模型一起工作,分析质量更稳定。
数据采集系统
MindSpider这个模块负责从30多个社交平台抓数据,功能包括:
适合什么人学习
AI应用开发者
可以学到怎么从零搭建多Agent系统,了解Agent之间怎么协作。
后端开发工程师
能看到状态机模式在复杂业务流程中的实际应用,还有大模型工程化的实践经验。
数据分析从业者
了解舆情分析系统的技术实现,学习多模态数据的处理方法。
部署使用方法
项目提供了Docker部署方案:
git clone https://github.com/666ghj/BettaFish
cd BettaFish
docker-compose up
配置好大模型的API Key,打开Web界面就能用了。
使用注意事项
项目优势:
- 代码写得比较清楚,适合学习研究
- 架构设计通用,可以改造成其他领域的应用
- 工程化做得完整,可以直接用在实际项目里
需要注意的地方:
- 开源协议是GPL-2.0,商业使用要开源代码
- 多个Agent并行调用大模型,API费用会比较高
- 数据爬取要注意遵守各平台的使用规则
项目总结
BettaFish用14.2k的星标数量证明了:不依赖现成的Agent框架,也能做出高质量的多Agent系统。
它的"论坛讨论"协作机制提供了一个新思路,模块化的代码结构让二次开发变得容易。不管是学习AI应用开发,还是找舆情分析的解决方案,这个项目都值得研究。
《云栈开源日记》持续分享GitHub优质开源项目,欢迎关注。
项目地址:666ghj/BettaFish
FastAPI教程:https://yunpan.plus/t/42-1-1
Python AI全栈:https://yunpan.plus/t/48-1-1
标签:#BettaFish #GitHub #多Agent系统 #AI应用开发 #舆情分析 #Python #开源项目