盯着空白的编辑器,想破脑袋也写不出像样的公众号文章?
或者,好不容易憋出一篇,阅读量却惨淡得让人怀疑人生?
这不是创作,这是赌博。
| 传统模式 | 问题 |
|---|---|
| 选题靠灵感 | 今天有感觉就写,没感觉就摆烂 |
| 写作靠硬撑 | 从第一个字开始就不知道该写什么 |
| 标题靠运气 | 发出去才知道这篇到底行不行 |
我认为,内容生产应该像工厂流水线一样运转——每个环节有明确的输入、输出和质量标准。
这就是「Skill 架构」的核心理念:把内容生产拆解成 6 个独立的技能模块,每个模块专注做好一件事。
┌─────────────────────────────────────────────────────────────────────────┐
│ Hunter AI 6-Skill 数据流 │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Topic │ → │ Research │ → │ Structure│ │
│ │ 选题判断 │ │ 深度调研 │ │ 结构设计 │ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ ↓ ↓ ↓ │
│ 主题、角度 核心洞察、数据 开篇钩子、章节 │
│ 目标读者 来源列表 结尾设计 │
│ ↓ ↓ ↓ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Write │ → │ Package │ → │ Publish │ │
│ │ 内容写作 │ │ 封装优化 │ │ 发布推送 │ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ ↓ ↓ ↓ │
│ 完整文章 最终标题、摘要 推送状态 │
│ 可读性评分 封面图提示词 消息ID │
│ │
│ 关键设计原则:完整传递 + 层级聚合(避免信息断层) │
└─────────────────────────────────────────────────────────────────────────┘
| Skill | 一句话概括 | 输出物 |
|---|---|---|
| Topic | 找到值得写的爆款选题 | 主题、角度、目标读者、标题候选 |
| Research | 收集高质量素材 | 核心洞察、事实数据、来源列表 |
| Structure | 设计节奏明快的大纲 | 开篇钩子、章节列表、结尾设计 |
| Write | 撰写有人味的初稿 | 完整文章、字数统计、可读性评分 |
| Package | 打造高点击率包装 | 最终标题、摘要、封面图提示词 |
| Publish | 一键推送到微信 | 推送状态、消息 ID |
坦白说,一篇文章能不能火,80% 在动笔之前就决定了。
选题三维模型:
- 用户价值:解决了什么痛点?提供了什么爽点?
- 差异化:是否有反共识或细分垂直的角度?
- 传播性:读者愿意转发到朋友圈吗?
Hunter AI 自动从 GitHub Trending、Twitter、HackerNews、Reddit、小红书 采集热点,用 AI 判断哪些值得写。
很多 AI 写的文章一看就是机器写的,「正确的废话」一堆。
去 AI 味三原则:
- 明确观点:敢说「我认为」「这个方法不行」
- 真实经验:用「我踩过的坑」代替「最佳实践列表」
- 可操作:读者看完这段,明天能开始做什么?
手机阅读适配:
- 开头 3 秒抓注意力,不要用「大家好」
- 每段 3-5 行,超过就换段
- 小标题作路标,方便跳读式阅读
标题优化 4 种公式:
- 数字型:「我用 3 个方法,解决了 XX 问题」
- 对比型:「为什么 A 不行,B 才是正解」
- 悬念型:「关于 XX,大多数人都搞错了」
- 故事型:「我花了 X 时间踩的坑,希望你别重走」
- 图片来源于信息源采集(GitHub 项目卡片、小红书笔记封面、Reddit 缩略图)
- 一键推送到微信
- Markdown 格式,直接复制到公众号
空白电脑也能运行,自动下载 Python + 所有依赖!
# Mac / Linux
bash run.sh
# Windows(双击运行)
run.bat脚本会自动完成:
- ✅ 下载 uv 包管理器(到项目本地目录)
- ✅ 下载 Python 3.12(由 uv 管理)
- ✅ 安装所有项目依赖
- ✅ 安装 Playwright 浏览器驱动
- ✅ 启动 Gradio Web UI 并自动打开浏览器
首次运行需要下载环境约 3-5 分钟,之后秒启动。
方式一:Web UI 配置(推荐)
启动后在浏览器页面的「⚙️ 配置」Tab 中填入 Gemini API Key,点击保存即可。
方式二:手动编辑配置文件
# config.yaml
gemini:
api_key: "你的 Gemini API Key" # 从 Google AI Studio 获取# 1. 安装依赖
curl -LsSf https://astral.sh/uv/install.sh | sh && uv sync
# 2. 配置
cp config.example.yaml config.yaml
# 编辑 config.yaml,填入你的 API Key
# 3. CLI 启动(不启动 Web UI)
uv run hunter run输出效果:
output/2026-01-22/这3个开源AI项目绝了/
├── article.md # 2000字公众号文章
└── metadata.json # 文章元数据
| 人群 | 使用场景 | 推荐模板 |
|---|---|---|
| 技术博主 | 每周推荐 AI/开源项目 | github |
| 产品经理 | 挖掘用户痛点,生成需求报告 | pain |
| 科技媒体 | 每日 AI 资讯速递 | news |
| 生活博主 | 小红书热门内容二创 | xhs |
| 全栈创作者 | 全自动 5 平台采集 + 生成 | auto |
以下是完整的技术文档,包含安装指南、模板详解、配置说明等。
┌─────────────────────────────────────────────────────────────────────────┐
│ Hunter AI 内容工厂 │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ 数据采集 │ → │ AI 分析 │ → │ 内容生成 │ → 推送 │
│ │ Intel │ │ Gemini │ │ Factory │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │
│ 数据源: 分析能力: 输出格式: │
│ • GitHub Trending • 选题判断 • 公众号文章 (MD) │
│ • Twitter/X • 痛点诊断 • 微信推送 │
│ • HackerNews • 内容提炼 │
│ • Reddit • 结构化写作 │
│ • 小红书 │
│ │
└─────────────────────────────────────────────────────────────────────────┘
| 模板 | 命令 | 数据源 | 输出类型 | 适用场景 |
|---|---|---|---|---|
github |
hunter run -t github |
GitHub Trending | 公众号长文 (2+1格式) | AI/开源技术号 |
pain |
hunter run -t pain |
Twitter + Reddit 用户抱怨 | 诊断报告 (MD) | 产品经理/需求挖掘 |
news |
hunter run -t news |
HackerNews + Twitter + Reddit + GitHub + 小红书 | 资讯快报文章 | 科技资讯号 |
xhs |
hunter run -t xhs |
小红书热门笔记 | 种草/测评文章 | 生活/消费类号 |
auto |
hunter run -t auto |
5 平台全量采集 | AI 生活黑客文章 (MD) | 全栈内容创作 |
不同模板输出的内容类型不同:
| 模板 | 主要输出 | 文件格式 | 存放位置 | 推送内容 |
|---|---|---|---|---|
github |
公众号长文 | .md |
output/日期/文章标题/ |
完整文章 |
pain |
诊断报告 | .md |
output/日期/reports/ |
报告摘要 |
news |
资讯快报 | .md |
output/日期/articles/ |
完整文章 |
xhs |
种草文章 | .md |
output/日期/articles/ |
完整文章 |
auto |
AI 生活黑客文章 | .md |
output/日期/文章标题/ |
完整文章 |
注意:
pain模板输出的是 Markdown 格式的诊断报告,不是直接可发布的公众号文章。适合产品经理做用户需求分析。
# 安装 UV(如未安装)
curl -LsSf https://astral.sh/uv/install.sh | sh
# 安装项目依赖
uv sync# 复制配置模板
cp config.example.yaml config.yaml
# 编辑配置(至少填写 gemini.api_key)
vim config.yaml最小配置(只需 Gemini API Key 即可运行 github 模板):
gemini:
api_key: "你的 Gemini API Key"
model: "gemini-2.0-flash"# GitHub 开源推荐(默认)
uv run hunter run
# 指定模板
uv run hunter run -t github # GitHub 热门项目 → 公众号文章
uv run hunter run -t pain # Twitter + Reddit 痛点 → MD 诊断报告
uv run hunter run -t news # 5 平台资讯采集 → 快报文章
uv run hunter run -t xhs # 小红书采集 → 种草文章
uv run hunter run -t auto # 全自动 5 平台采集 + AI 生成
# 试运行(不推送)
uv run hunter run --dry-run输出:公众号长文
用途:面向技术公众号,推荐 AI/ML 领域的热门开源项目
执行流程:
GitHub Search API → 筛选 AI 项目 → 去重(JSON + ChromaDB 向量)→
AI 生成「2个简介 + 1个深度」文章 → 保存 + 推送
输出示例:
output/2026-01-22/这3个YYDS开源AI项目绝了/
├── article.md # 文章正文(可直接复制到公众号)
└── metadata.json # 文章元数据
文章结构:
- 开篇引言(100字,吸引眼球)
- 项目简介 1(300字 + 项目截图)
- 项目简介 2(300字 + 项目截图)
- 深度解读(800字,含代码示例)
- 结尾总结 + 引导关注
去重机制:
- JSON 历史记录:精确匹配项目名,30天冷却期
- ChromaDB 向量:语义相似度 ≥ 85% 判定为重复
输出:Markdown 格式诊断报告
用途:从 Twitter + Reddit 挖掘用户对 AI 产品的抱怨,生成产品需求洞察报告
执行流程:
Twitter + Reddit 搜索(ChatGPT/Claude/DeepSeek 等产品 + 痛点关键词)→
自动推断标签 → 存储到 SQLite + ChromaDB → AI 诊断分析 → 生成报告 → 推送摘要
数据持久化:
- SQLite 结构化存储:所有痛点存入
data/pain_points.db - 自动标签推断:产品(ChatGPT/Claude等)、问题类型(性能/准确性/稳定性等)、严重程度
- 相似痛点合并:语义相似度 ≥ 80% 的痛点自动合并,累加频率
- 统计分析:按产品、分类、时间维度查询痛点
痛点表结构:
| 字段 | 说明 |
|---|---|
content |
痛点原文 |
source |
来源平台(Twitter/Weibo等) |
platform |
相关产品(ChatGPT/Claude等) |
tags |
标签列表(JSON数组) |
category |
问题分类(性能/准确性/功能/体验/API/稳定性等) |
severity |
严重程度(blocker/major/minor) |
frequency |
出现频率(相似合并时累加) |
ai_analysis |
AI 分析摘要 |
输出示例:
output/2026-01-22/reports/
└── Pain_Report_2026-01-22.md # Markdown 格式诊断报告
报告内容:
- Top 3 阻断性痛点(Blockers)
- 技术根因深度分析
- 解决方案建议
- 产品机会点挖掘
适用人群:产品经理、创业者、需求分析师
注意:需要配置 Twitter Cookies 才能运行
输出:资讯快报文章
用途:汇总 AI 行业热点,生成每日资讯速递
执行流程:
HackerNews + Twitter + Reddit + GitHub Trending + 小红书 → AI 筛选分类 → 生成资讯快报 → 保存 + 推送
输出示例:
output/2026-01-22/articles/
└── news_2026-01-22.md # 资讯快报文章
输出:种草/测评文章
用途:采集小红书热门笔记,生成公众号风格的种草文章
执行流程:
Playwright 浏览器 / httpx + Cookie 采集小红书 → AI 提炼核心内容 → 生成公众号文章 → 保存 + 推送
首次使用需要配置 Cookie:
- 浏览器登录小红书 (https://www.xiaohongshu.com)
- F12 打开开发者工具 → Application → Cookies
- 复制所有 Cookie 到
config.yaml的xiaohongshu.cookies字段
输出:AI 生活黑客风格文章(Markdown)
用途:全自动 5 平台采集,围绕 AI 生成工具的瑕疵和热点生成解决方案文章
执行流程:
HackerNews + Twitter + Reddit + GitHub Trending + 小红书
↓
全量采集(去重存储到 ChromaDB)
↓
AI 分析生成「AI 生活黑客」风格文章
↓
保存 MD + 推送微信
输出示例:
output/2026-01-22/AI生图手指变形怎么破/
├── article.md # Markdown 文章
└── metadata.json # 元数据(含信息源图片链接)
文章结构:
- 💔 崩溃瞬间(生动描述用户遇到的"人工智障"时刻)
- 🔧 魔法修补(解释为什么 AI 会犯错 + 解决方案)
- 🎁 咒语交付(可直接复制的 Prompt/指令)
Hunter AI 生成内容 → 调用 PushPlus API → PushPlus 服务器 → 推送到你的微信
重要说明:
- PushPlus 推送的内容会发送到你个人微信的聊天窗口(PushPlus 公众号对话框)
- 不是直接发布到你自己的公众号
- 你需要从聊天窗口或
output/目录复制文章,手动发布到公众号
- 打开微信
- 找到「PushPlus 推送加」公众号
- 在聊天窗口查看推送的文章
- 从
output/日期/目录获取生成的.md文件 - 复制内容到公众号后台
- 自行添加封面图(可从采集的信息源图片中选取)
- 发布
⚠️ 重要提醒:真正的「自动发布到公众号」需要满足以下条件
| 要求 | 说明 |
|---|---|
| 企业认证账号 | 微信公众平台仅对通过企业认证的服务号/订阅号开放发布 API |
| 微信公众平台 API | 需要通过 微信公众平台开发文档 接入 |
| AppID + AppSecret | 企业认证后获取,用于调用公众号 API |
| IP 白名单 | 需在公众平台配置服务器 IP 白名单 |
为什么本项目使用 PushPlus?
- 个人公众号(未认证)无法调用微信发布 API
- PushPlus 是折中方案:先推送到个人微信,再手动复制发布
- 如果你有企业认证的公众号,可以自行扩展
src/intel/utils.py中的push_to_wechat函数,接入微信公众平台 API 实现真正的自动发布
# 一键运行
uv run hunter run # 默认 github 模板
uv run hunter run -t <模板名> # 指定模板
uv run hunter run --dry-run # 试运行,不推送
# 查看模板
uv run hunter templates# 配置管理
uv run hunter config # 查看当前配置
uv run hunter validate # 验证配置
# 内容检查
uv run hunter check article.md # 检查违禁词
uv run hunter check article.md --fix # 自动修复
# 清理
uv run hunter clean # 清理缓存| 配置项 | github | pain | news | xhs | 说明 |
|---|---|---|---|---|---|
gemini.api_key |
✅ | ✅ | ✅ | ✅ | AI 生成必需 |
github.token |
可选 | - | - | - | 提高 API 配额 |
twitter.cookies_path |
- | ✅ | ✅ | - | Twitter 采集 |
xiaohongshu.cookies |
- | - | - | ✅ | 小红书采集 |
pushplus.token |
推送用 | 推送用 | 推送用 | 推送用 | 微信推送 |
# ══════════════════════════════════════════════════════════════════
# 🤖 AI 大模型配置(必填)
# ══════════════════════════════════════════════════════════════════
gemini:
api_key: "你的 API Key"
model: "gemini-2.0-flash"
# 可选:使用 OpenAI 兼容的第三方服务
# base_url: "https://api.example.com/v1"
# ══════════════════════════════════════════════════════════════════
# 🐙 GitHub 配置(github 模板)
# ══════════════════════════════════════════════════════════════════
github:
token: "ghp_xxx" # 可选,提高配额(60→5000次/小时)
min_stars: 200
# ══════════════════════════════════════════════════════════════════
# 🐦 Twitter 配置(pain/news 模板)
# ══════════════════════════════════════════════════════════════════
twitter:
cookies_path: "data/cookies.json" # Cookie-Editor 导出
# ══════════════════════════════════════════════════════════════════
# 📱 小红书配置(xhs 模板)
# ══════════════════════════════════════════════════════════════════
xiaohongshu:
cookies: "" # 浏览器 F12 复制
# ══════════════════════════════════════════════════════════════════
# 📨 PushPlus 推送
# ══════════════════════════════════════════════════════════════════
pushplus:
token: "你的 Token"
enabled: true
# ══════════════════════════════════════════════════════════════════
# 📝 公众号人设
# ══════════════════════════════════════════════════════════════════
account:
name: "AI技术前沿"
tone: "专业且引人入胜"
niche: "AI技术"猎手/
├── src/ # 源代码
│ ├── config.py # 统一配置管理
│ ├── main.py # CLI 入口
│ │
│ ├── intel/ # 📡 数据采集层
│ │ ├── github_trending.py # GitHub Trending 采集
│ │ ├── pain_radar.py # Twitter + Reddit 痛点雷达
│ │ ├── pain_store.py # 痛点结构化存储(SQLite)
│ │ ├── reddit_hunter.py # Reddit 采集器
│ │ ├── auto_publisher.py # 5 平台全量采集
│ │ ├── xiaohongshu_hunter.py # 小红书 API 采集
│ │ ├── xiaohongshu_browser.py # 小红书浏览器采集
│ │ └── utils.py # HTTP/重试/ChromaDB 工具
│ │
│ ├── templates/ # 📋 内容模板
│ │ ├── github_template.py # GitHub 开源推荐
│ │ ├── pain_template.py # 痛点诊断报告
│ │ ├── news_template.py # 资讯快报
│ │ ├── xiaohongshu_template.py # 小红书热门
│ │ └── auto_template.py # 自动创作(5 平台全量)
│ │
│ ├── factory/ # 🏭 内容生产
│ │ ├── workflow.py # 工作流定义
│ │ ├── executor.py # 6-Skill 执行器
│ │ └── skills/ # Skill 提示词
│ │
│ └── utils/ # 🔧 工具
│ ├── ai_client.py # AI 客户端
│ └── content_filter.py # 违禁词过滤
│
├── data/ # 数据存储
│ ├── chromadb/ # 向量数据库(去重)
│ ├── pain_points.db # 痛点 SQLite 数据库
│ ├── cookies.json # Twitter Cookies
│ └── recommended_projects.json # 已推荐项目
│
├── output/ # 输出目录
│ └── 2026-01-22/ # 按日期组织
│ ├── 文章标题/ # github/auto 模板输出
│ │ ├── article.md
│ │ └── metadata.json
│ ├── articles/ # news/xhs 模板输出
│ └── reports/ # pain 模板输出
│
├── config.yaml # 配置文件(不提交)
└── config.example.yaml # 配置模板
A: PushPlus 推送到的是你个人微信聊天窗口,不是公众号。
查看方法:微信 → 找到「PushPlus 推送加」公众号 → 聊天窗口
发布到公众号:从 output/ 目录复制文章,手动发布
A: pain 模板输出的是 Markdown 格式的诊断报告(.md),不是公众号文章。
用途是帮助产品经理分析用户痛点,挖掘需求。
A: API 限流,解决方案:
- 配置
github.token提高配额 - 或等待后重试
A: 检查 data/cookies.json:
- 使用 Cookie-Editor 插件重新导出
- 确保 JSON 是数组格式(支持自动转换)
A: 需要配置 Cookie:
- 浏览器登录小红书
- F12 → Application → Cookies
- 复制到
config.yaml的xiaohongshu.cookies
项目采用 SQLite + ChromaDB 双层存储,各司其职:
┌─────────────────────────────────────────────────────────────┐
│ 数据存储架构 │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ SQLite │ │ ChromaDB │ │
│ │ 结构化存储 │ │ 向量存储 │ │
│ └────────┬────────┘ └────────┬────────┘ │
│ │ │ │
│ • 标签/分类查询 • 语义相似度搜索 │
│ • 频率统计 (GROUP BY) • 内容去重 (85%阈值) │
│ • 原子更新 (frequency++) • 模糊匹配 │
│ • Excel 导出 • 向量索引 │
│ │
└─────────────────────────────────────────────────────────────┘
| 需求 | SQLite | ChromaDB | 选择 |
|---|---|---|---|
| 按产品统计痛点数量 | ✅ GROUP BY |
❌ 不支持 | SQLite |
| 相似内容合并时累加频率 | ✅ UPDATE +1 |
❌ 无原子更新 | SQLite |
| 检测"意思相近"的重复内容 | ❌ 只能精确匹配 | ✅ 向量相似度 | ChromaDB |
| 导出 Excel 报表 | ✅ 直接查询 | SQLite | |
| 按标签/分类筛选 | ✅ WHERE |
✅ where={} |
都行 |
新痛点 → ChromaDB 相似度检测 → 相似?
├─ 是 → SQLite 合并 (frequency++)
└─ 否 → SQLite 新增 + ChromaDB 存储
如果你的需求只是:
- 存储内容 + 相似搜索
- 不需要统计分析
- 不需要频率累加
可以只用 ChromaDB,通过 Python 导出 Excel:
import pandas as pd
data = collection.get(include=["documents", "metadatas"])
df = pd.DataFrame({"content": data["documents"], **{...}})
df.to_excel("export.xlsx")| 组件 | 选型 | 说明 |
|---|---|---|
| HTTP 客户端 | httpx | 支持异步 |
| 浏览器自动化 | Playwright | 小红书采集 |
| AI 模型 | Gemini 2.0 Flash | 速度快、成本低 |
| 向量数据库 | ChromaDB | 本地部署、语义去重 |
| 关系数据库 | SQLite + SQLAlchemy | 痛点结构化存储 |
| CLI 框架 | click | 简洁易用 |
| 包管理 | UV | 比 pip 快 10 倍 |
| 库 | 用途 |
|---|---|
| httpx | HTTP 客户端 |
| chromadb | 向量数据库 |
| sqlalchemy | ORM 框架 |
| google-genai | Gemini SDK |
| twikit | Twitter 采集 |
| click | CLI 框架 |
| rich | 终端美化 |
| tenacity | 重试机制 |
MIT License