【BettaFish】我把 GitHub 上 3万6千 Star 的开源项目改造成了Agent Skill
我把 GitHub 上 3万6千 Star 的开源项目改造成了Agent Skill,可以直接在 OpenClaw、Claude Code中直接使用
BettaFish-skill:多智能体舆情分析系统的 AI Skill 封装
我把 GitHub 上 3万6千 Star 的开源项目改造成了Agent Skill,可以直接在 OpenClaw、Claude Code中使用
BettaFish-skill 是将开源舆情分析系统 BettaFish(微舆)封装为 AI Skill 的项目。无需数据库、零配置开箱即用,能够同时生成 Word/PDF 文档和精美的 HTML 可视化报告,为品牌舆情监测、热点事件追踪、竞品对比分析等场景提供专业解决方案

BettaFish-skill 项目链接为:BettaFish-skill
一、原项目介绍:BettaFish(微舆)
在介绍 BettaFish-skill 之前,让我们先了解一下它的"母体"——BettaFish(微舆)。
BettaFish 是一个开源的多智能体舆情分析系统,项目链接为:BettaFish 。

1.1 原项目的核心能力
BettaFish 原项目是一个完整的多智能体系统,具备以下核心能力:
- 实时数据采集:支持微博、小红书、抖音、B站、知乎等主流社交平台
- 情感分析:基于自然语言处理技术,识别文本情感倾向
- 话题聚类:自动将相关内容聚合成话题,便于追踪热点
- 可视化展示:生成图表、时间线、知识图谱等可视化内容
原项目地址:https://github.com/666ghj/BettaFish
二、为什么要做 Skill 封装?
既然原项目已经很完善了,为什么还要做 Skill 封装呢?
2.1 原项目的使用门槛
原 BettaFish 项目虽然功能强大,但也存在一些使用门槛:
- 需要部署数据库(MySQL/PostgreSQL)
- 需要配置 Python 环境、安装依赖
- 需要了解命令行操作
- 需要编写配置文件
对于非技术背景的用户(如市场人员、品牌经理)来说,这些门槛可能会让他们望而却步。
2.2 Agent Skill 的优势
将 BettaFish 封装为 Agent Skill 后,带来了革命性的使用体验:
| 特性 | 原项目 | BettaFish-skill |
|---|---|---|
| 安装部署 | 需要数据库+环境配置 | 零配置,开箱即用 |
| 交互方式 | 命令行/配置文件 | 自然语言对话 |
| 数据存储 | 依赖数据库 | 无数据库依赖 |
| 报告格式 | 单一格式 | Word/PDF/HTML 三格式 |
| 使用门槛 | 需要技术背景 | 人人都能用 |
2.3 一句话总结
BettaFish-skill 让舆情分析像聊天一样简单。
三、如何安装使用
BettaFish-skill 支持多种 AI 工具平台:
3.1 Claude Code(推荐)
# 克隆到 skills 目录
git clone https://github.com/XiaoMaColtAI/BettaFish-skill.git \
~/.claude/skills/bettafish-opinion-analysis
# 在 Claude Code 中使用
claude
/skill bettafish-opinion-analysis
3.2 OpenClaw
# 安装 OpenClaw
npm install -g openclaw@latest
# 克隆到 workspace skills 目录
mkdir -p ~/.openclaw/workspace/skills
git clone https://github.com/XiaoMaColtAI/BettaFish-skill.git \
~/.openclaw/workspace/skills/bettafish-opinion-analysis
# 重启 Gateway
openclaw gateway restart
3.3 Cursor
# 克隆到 Cursor skills 目录
git clone https://github.com/XiaoMaColtAI/BettaFish-skill.git \
~/.cursor/skills/bettafish-opinion-analysis
然后在 Cursor Settings → AI Features → Skills 中添加技能路径。
四、BettaFish-skill 的核心特点
4.1 三引擎并行架构
BettaFish-skill 继承了原项目的多智能体架构,采用 QueryAgent + MediaAgent + InsightAgent 三引擎并行设计:
图:BettaFish-skill 三引擎并行架构
QueryAgent(查询引擎)
- 职责:网页搜索、新闻资讯、论坛讨论采集
- 工具:WebSearch + WebFetch + Browser
- 特点:实时获取互联网数据,无需预存数据库
MediaAgent(媒体引擎)
- 职责:短视频、图文内容分析
- 工具:video-frames subskill 提取关键帧
- 特点:支持抖音、B站、小红书等平台的视频分析
InsightAgent(洞察引擎)
- 职责:情感分析、关键词提取、聚类分析
- 工具:Python 脚本 + WebSearch
- 特点:基于规则引擎,无需深度学习模型
4.2 ForumEngine:Agent 协作讨论机制
三引擎不是孤立工作的,它们通过 ForumEngine 实现协作讨论:
第1轮:初步搜索 → Agent 发言 → 主持人引导方向
第2轮:深度搜索 → Agent 补充 → 主持人总结发现
第3轮:验证搜索 → Agent 确认 → 形成最终结论
这种3轮反思循环机制确保了分析结果的深度和准确性。
4.3 三格式报告输出
这是 BettaFish-skill 最亮眼的特点之一:一次分析,同时生成三种格式的报告。
📄 Word 文档(.docx)
适合场景:正式汇报、打印存档、邮件附件
特点:
- 标准公文格式,包含封面、目录、正文、附录
- 图文并茂,表格和图表清晰规范
- 使用宋体/黑体等中文字体,符合国内公文标准
📑 PDF 文档(.pdf)
适合场景:跨平台分享、不可编辑存档
特点:
- 版式固定,兼容性强
- 完整中文字体支持(SimSun/SimHei)
- 专业外观,适合对外发布
🌐 HTML 交互报告(.html)
适合场景:演示展示、在线分享、交互探索
特点:
- 编辑杂志风格设计:灵感源自《Monocle》《Wallpaper*》等高端出版物
- 深海军蓝 + 暖金色配色:主色
#0a192f,强调色#ffd700 - 衬线字体组合:Playfair Display + Source Serif Pro
- 电影级动效:滚动触发、图表动画、悬停反馈
- 知识图谱:D3.js 力导向图,可交互探索
图:报告生成流水线
4.4 六类专业模板
BettaFish-skill 内置了 6 种专业舆情分析报告模板,根据用户查询自动匹配:
| 模板名称 | 适用场景 | 核心特点 |
|---|---|---|
| 企业品牌声誉分析 | 品牌月度/季度声誉监测 | 品牌形象、用户认知、声誉风险 |
| 突发事件与危机公关 | 危机事件应急分析 | 事件溯源、传播分析、应对策略 |
| 社会公共热点事件 | 社会热点追踪 | 演变脉络、传播路径、多方观点 |
| 市场竞争格局分析 | 竞品对比、市场份额 | SOV对比、口碑对比、营销策略 |
| 特定政策/行业动态 | 政策解读、行业分析 | 政策影响、行业反应、机遇挑战 |
| 日常/定期舆情监测 | 周期性监测报告 | 数据看板、趋势追踪、风险预警 |
模板选择是自动的——用户只需要用自然语言描述需求,系统会自动识别并选择最合适的模板。
4.5 八章完整报告结构
无论选择哪种模板,生成的报告都包含 8 个核心章节:
1. 执行摘要 —— 品牌声誉总览、KPI 指标、主要结论
2. 品牌声量与影响力分析 —— 趋势、渠道、区域分布
3. 关键事件深度回顾 —— 时间线、多方观点、关键数据
4. 情感与认知分析 —— 情感光谱、品牌联想、核心议题
5. 用户画像分析 —— 人群属性、触媒习惯
6. 声誉风险与机遇洞察 —— 负面议题、风险预警、正面机遇
7. 结论与战略建议 —— SWOT 分析、优化建议、监测重点
8. 数据附录 —— 指标汇总、权威来源清单
4.6 无数据库依赖
这是一个非常重要的设计决策:BettaFish-skill 不使用任何数据库。
所有数据通过 WebSearch/WebFetch/Browser/Curl 实时获取,这意味着:
- ✅ 零配置:不需要安装 MySQL/PostgreSQL
- ✅ 数据实时:永远获取最新的舆情数据
- ✅ 隐私安全:不存储用户数据,降低隐私风险
- ✅ 部署简单:纯 Python/JavaScript 脚本,无需数据库服务
五、使用场景与示例
5.1 品牌舆情监测
用户:分析某咖啡连锁品牌最近一个月的社交媒体口碑
Skill 自动执行:
├─ 识别模板:企业品牌声誉分析
├─ QueryAgent 搜索新闻/论坛/微博
├─ MediaAgent 分析抖音/小红书视频
├─ InsightAgent 情感分析/关键词提取
├─ ForumEngine 3轮讨论优化
└─ 生成报告:Word + PDF + HTML 三格式
5.2 热点事件追踪
用户:追踪 "某国际音乐节现场安全事故" 的舆情发酵情况
Skill 输出:
- 事件时间线(精确到小时)
- 传播路径图
- 关键意见领袖(KOL)分析
- 公众情绪变化趋势
- 媒体报道倾向统计
5.3 竞品对比分析
用户:对比可口可乐和百事可乐的社交媒体舆情表现
Skill 输出:
- 品牌声量对比(SOV)
- 情感倾向对比
- 热门话题对比
- 营销策略差异分析
- SWOT 对比矩阵
5.4 危机预警
用户:监测某护肤品牌 "成分安全性讨论" 的舆情动态
Skill 输出:
- 负面信息监测
- 风险等级评估
- 传播趋势预测
- 应对建议
六、技术实现亮点
6.1 Subskill 架构
BettaFish-skill 采用了模块化的 Subskill 架构:
BettaFish-skill/
├── SKILL.md # 主 Skill 定义
├── subskills/
│ ├── docx/ # Word 文档生成
│ ├── pdf/ # PDF 文档生成
│ ├── frontend-design/ # HTML 报告生成
│ └── video-frames/ # 视频帧提取
├── scripts/
│ ├── report_generator.py # 报告生成核心
│ ├── template_manager.py # 模板管理
│ └── graph_generator.py # 知识图谱构建
└── assets/templates/ # 6类报告模板
每个 subskill 都是独立的,可以单独使用,也可以组合使用。
6.2 知识图谱构建
BettaFish-skill 使用 graph_generator.py 构建知识图谱:
# 知识图谱节点类型
topic # 分析主题
engine # 分析引擎 (query/media/insight)
section # 报告段落
query # 搜索查询
source # 信息来源
entity # 命名实体(品牌/人物/产品)
sentiment # 情感节点
生成的知识图谱使用 D3.js 渲染为力导向图,支持:
- 拖拽节点
- 点击查看详情
- 缩放/平移
- 关系高亮
6.3 情感分析引擎
InsightAgent 内置了轻量级的情感分析功能:
from scripts.sentiment_analyzer import SentimentAnalyzer
analyzer = SentimentAnalyzer()
result = analyzer.analyze("这个产品真的很棒!")
# 返回: label, confidence, positive_score, negative_score,
# fine_emotions, aspects
特点:
- 基于规则引擎,无需训练模型
- 支持细粒度情感识别(愤怒、喜悦、失望等)
- 支持方面级情感分析(产品、服务、价格等)
6.4 搜索结果聚类
为了避免信息过载,BettaFish-skill 使用 search_clustering.py 对搜索结果进行聚类采样:
from scripts.search_clustering import cluster_search_results
clusters = cluster_search_results(
results=search_results,
n_clusters=5,
samples_per_cluster=3
)
这样可以确保分析覆盖不同观点,避免信息茧房。
七、与原项目的关系
图:BettaFish-skill 与原项目的关系
7.1 继承的能力
- 多智能体协作架构
- 舆情数据采集能力
- 情感分析算法
- 可视化展示方案
7.2 新增的能力
- 零配置部署:无需数据库,无需环境配置
- 自然语言交互:像聊天一样使用
- Skill 标准化:遵循 AI Skill 规范,可在多个平台使用
- 三格式报告:Word + PDF + HTML 同时生成
7.3 目标用户对比
| 用户类型 | 原项目 | BettaFish-skill |
|---|---|---|
| 开发人员 | ✅ 适合 | ✅ 适合 |
| 数据分析师 | ✅ 适合 | ✅ 适合 |
| 市场人员 | ❌ 门槛较高 | ✅ 开箱即用 |
| 品牌经理 | ❌ 门槛较高 | ✅ 开箱即用 |
| 公关人员 | ❌ 门槛较高 | ✅ 开箱即用 |
八、运行效果展示
下面是在 OpenClaw 平台中实际运行 BettaFish-skill 的效果展示。
8.1 主 Agent 任务分发
当用户发起舆情分析请求后,主 Agent 首先进行需求解析,然后并行启动三个子 Agent:

图:主 Agent 正在分发任务给 QueryAgent、MediaAgent 和 InsightAgent
8.2 各 Agent 并行执行
三个 Agent 同时开始工作,各自负责不同的数据获取和分析任务:
QueryAgent - 网页搜索与文本采集:

图:QueryAgent 正在执行网页搜索和新闻采集任务
MediaAgent - 短视频与图文分析:

图:MediaAgent 正在分析抖音、小红书等平台的多媒体内容
InsightAgent - 情感分析与洞察挖掘:

图:InsightAgent 正在进行情感分析和关键词提取
8.3 Agent 间数据回传与汇总
各 Agent 完成任务后,将分析结果回传给主 Agent 进行汇总:

图:QueryAgent 将搜索结果回传给主 Agent

图:MediaAgent 将视频分析结果回传给主 Agent
三个 Agent 内容汇总:

图:主 Agent 汇总三个子 Agent 的分析结果
8.4 最终产物展示
经过 ForumEngine 的多轮讨论和优化后,最终生成多种格式的报告:
生成的文件列表:

图:生成的 HTML、Markdown 等多格式报告文件
Markdown 产物展示:

图:Markdown 格式的分析报告内容预览
HTML 交互报告效果:

图:HTML 报告封面 - 编辑杂志风格设计

图:HTML 报告内容页 - 深海军蓝配色主题

图:HTML 报告数据附录 - 包含指标汇总和来源清单
九、相关资源
- BettaFish-skill 仓库:https://github.com/XiaoMaColtAI/BettaFish-skill
- BettaFish 原项目:https://github.com/666ghj/BettaFish
- MiroFish(姐妹项目):https://github.com/666ghj/MiroFish
如果这个 Skill 对你有帮助,欢迎点赞、收藏、转发!
也欢迎在评论区留言,分享你的使用体验和建议!
更多推荐

所有评论(0)