⚠️ Alpha 内测版本警告:此为早期内部构建版本,尚不完整且可能存在错误。欢迎大家提 Issue 反馈问题或建议。
Turn complex tech into stories everyone can understand.
中文 | English
一个基于多 Agent 架构的 AI 长文博客生成Agent,支持深度调研、智能配图、Mermaid 图表、代码集成,
将技术知识转化为通俗易懂的科普文章,让每个人都能轻松理解复杂技术
🎯 降低技术写作门槛,让知识传播更简单
如果该项目对你有用, 欢迎 star🌟 & fork🍴
一天时间,一本大模型技术教程,40+万字。
我用一天时间完成了 《Hello LLM-FineTuning》 —— 一本大模型微调技术教程,共 15+章、40+万字、100+ 精美配图。嗯?我在吹牛,可以点进去阅读下。
秘密武器是 vibe-blog —— 一款专为技术写作打造的「长文技术博客生成 Agent」。它帮我自动化的完成了从素材收集 → 深度调研 → 大纲规划 → 内容撰写 → 代码集成 → 智能配图 → 质量审核 → 专业排版的写作全流程工作。如果你也有很多想法和创意,却苦于没有时间和精力去落地,不妨试试 vibe-blog 😊
让长文技术写作变得简单,让知识传播更高效。
| 长度 | 预览 | 章节数 | 博客长度 | 示例文章 |
|---|---|---|---|---|
| 📄 短文 | 3-5 章节 | 📝 ~3.5万字🎨 10 配图💻 5 代码块 |
PEFT实战指南 概念介绍,快速入门 |
|
| 📑 中等 | 5-8 章节 | 📝 ~8.8万字🎨 12 配图💻 11 代码块 |
HuggingFace Transformers入门 具体示例+步骤说明 |
|
| 📚 长文 | 8-12 章节 | 📝 ~14.8万字🎨 22 配图💻 17 代码块 |
PEFT主流技术全解析 原理分析+数据支撑+边界情况 |
你是否也曾陷入这样的困境:想写一篇技术博客,但不知道如何让非技术人员也能看懂;脑中有很多技术知识,却苦于无法用生动的比喻来解释?
传统的技术博客写作存在以下痛点:
- 1️⃣ 耗时费力:一篇高质量的技术科普文章需要数小时甚至数天
- 2️⃣ 配图困难:找不到合适的配图,Mermaid 图表语法复杂
- 3️⃣ 深度不足:缺乏时间进行深度调研,内容容易流于表面
- 4️⃣ 受众单一:难以针对不同技术水平的读者调整内容深度
- 5️⃣ 分发繁琐:需要手动适配不同平台的格式要求
vibe-blog 应运而生,基于多 Agent 协作架构,自动完成调研、规划、写作、配图的全流程,让你专注于知识本身。
- 技术博主:快速生成高质量技术科普文章,节省写作时间
- 技术布道者:将复杂技术转化为通俗易懂的内容,扩大影响力
- 教育工作者:生成教学材料,用生活化比喻帮助学生理解
- 产品经理:快速了解技术概念,与开发团队更好沟通
- 技术小白:通过 AI 生成的科普文章,轻松入门新技术
输入主题,选择文章类型和长度,一键生成
文章类型:
- 📚 教程型:手把手教学,从零到一掌握技术
- 🔧 问题解决:针对具体问题,提供解决方案
- 📊 对比分析:多方案对比,帮助技术选型
文章长度:
| 长度 | 章节数 | 阅读时间 | 追问深度 | 适用场景 |
|---|---|---|---|---|
| 📄 短文 | 3-5 章节 | ~30 分钟 | shallow | 概念介绍,快速入门 |
| 📑 中等 | 5-8 章节 | ~60 分钟 | medium | 具体示例+步骤说明,深入学习 |
| 📚 长文 | 8-12 章节 | ~90+ 分钟 | deep | 原理分析+数据支撑+边界情况,全面掌握 |
💡 追问深度:系统会根据文章长度自动调整内容审核标准。长文会触发更严格的深度检查,确保每个概念都有数据支撑和原理分析。
💡 长文模式特点:深度追问(Questioner Agent 执行 deep 级别检查)、原理剖析(不仅讲 What 和 How,更深入 Why)、数据支撑(关键论点配有数据或权威引用)、完整代码(提供可运行的完整示例)。
完整博客内容预览,支持导出图片和下载 Markdown
vibe-reviewer 是一个用于评估技术博客质量的工具,帮助你在发布前发现并修复内容问题。
核心功能:
- 🔍 多维度质量检测 - 从准确性、逻辑性、完整性、可读性四个维度评估内容
- 📊 中文可读性分析 - 基于句长、段落结构、文档结构的专业可读性评分
- 🎯 精准问题定位 - 点击问题自动跳转到原文位置,支持高亮显示
- 📝 三栏对比视图 - 左侧文件列表、中间 Markdown 渲染、右侧问题批注
- 📤 报告导出 - 支持导出评估报告为 Markdown 格式
点击问题,自动跳转到原文位置,方便快速定位和修改
| 博客标题 | 本地预览 | 网络博客 |
|---|---|---|
| 消息队列入门实战:从零搭建异步通信系统 | Markdown | 查看 |
| 分布式锁实战指南:30分钟掌握高并发下的资源同步控制 | Markdown | 查看 |
| Redis 快速上手实战教程:从零搭建高性能缓存系统 | Markdown | 查看 |
基于 LangGraph 构建的多 Agent 工作流,各个 Agent 分工明确,协同高效:
| Agent | 职责 | 核心能力 |
|---|---|---|
| Orchestrator | 总指挥 | 协调整个工作流程,管理 Agent 间通信 |
| Researcher | 调研员 | 联网搜索、知识提取、文档融合 |
| SearchCoordinator | 多轮搜索策略 | 根据 Writer 和 Questioner 反馈进行多轮搜索,检测知识空白,构造细化查询,填补内容缺陷 |
| Planner | 规划师 | 生成结构化大纲,设计文章框架,生成若干个章节和内容块 |
| Writer | 撰写师 | 循环撰写每一章节的内容,保证逻辑连贯、适配目标受众 |
| Questioner | 问题追问官 | 核心控制文章长度的角色,对 Writer 输出进行深度检查,根据指定的深度类型持续深化内容,完成文章长度扩展 |
| Coder | 代码员 | 生成示例代码、提供可运行代码、输出代码说明 |
| Artist | 配图师 | 生成 Mermaid 图表、AI 封面图、上下文感知配图 |
| Reviewer | 质量审核官 | 核心质量控制角色,对 Writer 和 Questioner 输出进行检查与评分,低于阈值或发现错误则重新生成,确保内容准确性和完整性 |
| Assembler | 组装员 | 最终文档组装、多格式导出、排版优化 |
所有 Agent 共享统一的状态管理和 Prompt 模板库,确保高效协作和一致的输出质量。
- 智谱搜索集成:自动搜索网络获取最新技术资料
- 知识提取:从搜索结果中提取关键信息
- 引用标注:自动标注信息来源,确保内容可信
- Mermaid 图表:自动生成流程图、架构图、时序图
- AI 封面图:基于 nano-banana-pro 生成风格化封面
- 上下文感知:根据章节内容生成独特的配图
- 多风格支持:8 种配图风格可选(卡通手绘、水墨古风、科研学术、Chiikawa萌系、Biesty剖面图、白板笔记、简约极简、深色科技)
- Markdown:标准 Markdown 格式,支持直接发布
- 图片导出:一键将文章导出为长图
- 实时预览:前端实时渲染 Markdown 和 Mermaid 图表
| # | 状态 | 功能 | 说明 |
|---|---|---|---|
| 1 | ✅ | 多 Agent 架构 | 10 个 Agent 协作:Orchestrator/Researcher/SearchCoordinator/Planner/Writer/Questioner/Coder/Artist/Reviewer/Assembler |
| 2 | ✅ | 联网搜索 | 智谱搜索 API 集成 |
| 3 | ✅ | 多轮搜索 | 迭代式深度调研 |
| 4 | ✅ | Mermaid 图表 | 流程图/架构图自动生成 |
| 5 | ✅ | AI 封面图 | Nano Banana Pro 生成 |
| 6 | ✅ | 实时预览 | SSE 进度推送 + Markdown 渲染 |
| 7 | ✅ | 图片导出 | 文章导出为图片 |
| 8 | ✅ | 自定义知识源1+2期 | PDF/MD/TXT 解析 + 知识分块 + 图片摘要 |
| 9 | ✅ | 技术书籍生成 | 系列博客聚合成完整书籍,参见 大模型微调开源项目 |
| 10 | ✅ | 历史文章记录 | 自动保存生成历史,支持查看和删除 |
| 11 | ✅ | AI 科普绘本风格 | 支持将技术内容转化为通俗易懂的科普绘本 |
| 12 | ✅ | 在线体验 | 域名申请中,当前可先加入项目内测讨论群, 群里有IP链接 |
| 13 | ✅ | 教程评估模块 (vibe-reviewer) | Git 仓库教程质量评估:深度检查 + 质量审核 + 可读性分析,支持搜索增强评估、SSE 实时进度、Markdown 报告导出 |
| 14 | ✅ | 多风格配图系统 | 8 种配图风格可选:🎨卡通手绘、🖌️水墨古风、📊科研学术、🐰Chiikawa萌系、🔍Biesty剖面图、📝白板笔记、⬜简约极简、🌙深色科技 |
| # | 状态 | 功能 | 说明 |
|---|---|---|---|
| 1 | 🚧 开发中 | 自定义知识源3期 | 多文件上传 + 文档预览 + 性能优化 |
| 2 | 🧭 规划中 | 自定义网页输入 | 从指定 URL 下载网页内容作为知识来源 |
| 3 | 🧭 规划中 | GitHub 仓库解析 | 集成代码仓库,自动分析和原理解读 |
| 4 | 🧭 规划中 | 视频字幕整理 | B 站技术视频字幕提取与内容聚合 |
| 5 | 🧭 规划中 | 外挂知识库 | 接入指定知识库源 |
| # | 状态 | 功能 | 说明 |
|---|---|---|---|
| 1 | 🧭 规划中 | 优化搜索源 | 接入专业 AI 博客和论文网站 |
| 2 | 🧭 规划中 | 论文解读 | 英文论文秒变中文技术方案 |
| 3 | 🧭 规划中 | 原文图表整合 | 将调研原文中的图表混合插入文章 |
| 4 | 🧭 规划中 | 博客类型细分 | 综述型、深究型、实战型、源码解析型 |
| # | 状态 | 功能 | 说明 |
|---|---|---|---|
| 1 | 🧭 规划中 | 多受众适配 | 高中生版 / 儿童版 / 职场版 |
| 2 | 🧭 规划中 | 自定义编辑 | 选定内容后通过语言指令优化 |
| 3 | 🧭 规划中 | AI 智能导读 | 思维导图 + 交互式阅读 |
| # | 状态 | 功能 | 说明 |
|---|---|---|---|
| 1 | 🧭 规划中 | 视频讲解 | 将书籍和论文转化为解释视频 |
| 2 | 🧭 规划中 | 播客输出 | TTS 语音合成 |
| 3 | 🧭 规划中 | 漫画形式 | 图文并茂的漫画风格输出 |
| 4 | 🧭 规划中 | 自定义封面 | 以图生图,参考样式配置 |
| 5 | 🧭 规划中 | 灵活配图 | 一章一图、多章一图等多种模式 |
| # | 状态 | 功能 | 说明 |
|---|---|---|---|
| 1 | 🧭 规划中 | GitHub Pages 部署 | GitHub Actions 自动构建并部署到 GitHub Pages |
| 2 | 🧭 规划中 | 网站服务化 | 构建完整的在线服务平台 |
| 3 | 🧭 规划中 | 分享功能 | 支持文章、书籍的社交分享 |
| 4 | 🧭 规划中 | 自媒体一键发布 | 小红书 / 微信公众号 / 知乎 |
| 5 | 🎯 终极目标 | 技术知识共创平台 | 共创技术书籍、问题聚合、Knowledge Graph |
| # | 状态 | 功能 | 说明 |
|---|---|---|---|
| 1 | 🧭 规划中 | 技术写作AI IDE建设 | 与 VS Code 深度整合,打造类 Cursor 的技术写作 AI IDE |
| 2 | 🧭 规划中 | 专业知识库嵌入 | 内置技术领域知识库,提升生成质量 |
| 3 | 🧭 规划中 | 提示词模板库 | 预设多种技术写作模板,一键调用 |
| 4 | 🧭 规划中 | 技术角色系统 | 可切换不同技术专家角色(架构师/算法工程师/运维等) |
| 5 | 🧭 规划中 | 本地笔记客户端 | 独立桌面应用,支持离线使用 |
| 6 | 🧭 规划中 | 素材收集助手 | 快速收集网页/文档/代码片段作为写作素材 |
- 克隆代码仓库
git clone https://github.com/datawhalechina/vibe-blog- 安装依赖
cd backend
pip install -r requirements.txt- 配置环境变量
cp .env.example .env编辑 .env 文件,配置必要的环境变量:
# AI Provider 格式配置
AI_PROVIDER_FORMAT=openai
# OpenAI 兼容 API 配置
OPENAI_API_KEY=your-api-key-here
OPENAI_API_BASE=https://dashscope.aliyuncs.com/compatible-mode/v1
TEXT_MODEL=qwen3-max-preview
# 智谱搜索 API(可选,用于深度调研)
ZAI_SEARCH_API_KEY=your-zhipu-api-key
# Nano Banana Pro API(可选,用于 AI 封面图)
NANO_BANANA_API_KEY=your-nano-banana-api-key
NANO_BANANA_API_BASE=https://grsai.dakka.com.cn- 启动服务
python app.py- 访问应用
| 功能 | 服务商 | 模型/API | 说明 |
|---|---|---|---|
| 文本生成 | 阿里云百炼 | Qwen (千问) | 用于 Agent 的文本生成和推理 |
| 联网搜索 | 智谱 | Web Search API | 用于 Researcher Agent 的深度调研 |
| AI 配图 | Nano Banana | nano-banana-pro | 用于生成 AI 封面图和配图 |
- 文本模型:OpenAI 兼容 API 格式
- 搜索服务:
https://open.bigmodel.cn/api/paas/v4/web_search - 图片生成:我这里使用的是grsai模型服务:
https://grsai.dakka.com.cn(国内直连)
- 渲染:原生 HTML + JavaScript
- Markdown:marked.js
- 代码高亮:highlight.js
- 图表渲染:Mermaid.js
banana-blog/
├── backend/ # Flask 后端应用
│ ├── app.py # Flask 应用入口 + API 路由
│ ├── config.py # 配置文件
│ ├── requirements.txt # Python 依赖
│ ├── .env.example # 环境变量示例
│ ├── static/
│ │ └── index.html # 前端页面 (HTML + JS)
│ ├── outputs/ # 生成的文章输出目录
│ │ └── images/ # AI 生成的配图
│ └── services/
│ ├── llm_service.py # LLM 服务封装
│ ├── image_service.py # 图片生成服务 (Nano Banana)
│ ├── task_service.py # SSE 任务管理
│ ├── database_service.py # 数据库服务
│ ├── file_parser_service.py # 文件解析服务 (PDF/MD/TXT)
│ ├── knowledge_service.py # 知识管理服务
│ ├── pipeline_service.py # 流水线服务
│ ├── transform_service.py # 转换服务
│ ├── prompts/ # 服务层 Prompt 模板
│ │ ├── document_summary.j2 # 文档摘要 Prompt
│ │ └── image_caption.j2 # 图片描述 Prompt
│ └── blog_generator/ # 博客生成器核心
│ ├── blog_service.py # 博客生成服务入口
│ ├── generator.py # LangGraph 工作流定义
│ ├── agents/ # 10 个 Agent 实现
│ │ ├── researcher.py # 调研 Agent - 联网搜索
│ │ ├── search_coordinator.py # 搜索协调 Agent - 多轮搜索
│ │ ├── planner.py # 规划 Agent - 大纲生成
│ │ ├── writer.py # 写作 Agent - 内容撰写
│ │ ├── questioner.py # 追问 Agent - 深度检查
│ │ ├── coder.py # 代码 Agent - 示例生成
│ │ ├── artist.py # 配图 Agent - Mermaid + AI 图
│ │ ├── reviewer.py # 审核 Agent - 质量评分
│ │ └── assembler.py # 组装 Agent - 文档合成
│ ├── templates/ # Jinja2 Prompt 模板
│ │ ├── researcher.j2 # 调研 Prompt
│ │ ├── planner.j2 # 规划 Prompt
│ │ ├── writer.j2 # 写作 Prompt
│ │ ├── writer_enhance.j2 # 写作增强 Prompt
│ │ ├── writer_enhance_knowledge.j2 # 知识增强写作 Prompt
│ │ ├── questioner.j2 # 追问 Prompt
│ │ ├── coder.j2 # 代码 Prompt
│ │ ├── artist.j2 # 配图 Prompt
│ │ ├── cover_image_prompt.j2 # 封面图 Prompt
│ │ ├── reviewer.j2 # 审核 Prompt
│ │ ├── search_query.j2 # 搜索查询 Prompt
│ │ ├── search_summarizer.j2 # 搜索摘要 Prompt
│ │ ├── knowledge_gap_detector.j2 # 知识缺口检测 Prompt
│ │ ├── assembler_header.j2 # 组装头部 Prompt
│ │ └── assembler_footer.j2 # 组装尾部 Prompt
│ ├── prompts/
│ │ └── prompt_manager.py # Prompt 渲染管理
│ ├── schemas/
│ │ └── state.py # 共享状态定义
│ ├── post_processors/
│ │ └── markdown_formatter.py # Markdown 后处理
│ ├── utils/
│ │ └── helpers.py # 工具函数
│ └── services/
│ └── search_service.py # 智谱搜索服务
│ └── vibe_reviewer/ # 教程评估模块 (vibe-reviewer)
│ ├── __init__.py # 模块入口
│ ├── reviewer_service.py # 评估服务核心
│ ├── schemas.py # 数据模型定义
│ ├── api/
│ │ └── routes.py # API 路由 (SSE 进度推送 + 报告导出)
│ ├── models/
│ │ └── reviewer_models.py # SQLite 数据库模型
│ ├── pipeline/ # 评估流水线
│ │ ├── content_analyzer.py # 内容分析器
│ │ ├── depth_checker.py # 深度检查器
│ │ ├── quality_reviewer.py # 质量审核器
│ │ ├── readability_checker.py # 可读性检查器
│ │ ├── search_agent.py # 搜索增强 Agent
│ │ └── reference_manager.py # 参考资料管理
│ └── templates/ # Jinja2 Prompt 模板
│ ├── analyze_content.j2 # 内容分析 Prompt
│ ├── depth_check.j2 # 深度检查 Prompt
│ ├── quality_review.j2 # 质量审核 Prompt
│ └── readability_check.j2 # 可读性检查 Prompt
├── logo/ # Logo 资源
└── README.md
| 变量名 | 说明 | 示例值 |
|---|---|---|
FLASK_ENV |
Flask 运行环境 | development |
SECRET_KEY |
Flask 密钥 | banana-blog-secret-key |
LOG_LEVEL |
日志级别 | INFO |
CORS_ORIGINS |
CORS 允许的源 | * |
| 变量名 | 说明 | 示例值 |
|---|---|---|
AI_PROVIDER_FORMAT |
AI Provider 格式 | openai |
TEXT_MODEL |
文本生成模型 | qwen3-max-preview |
IMAGE_CAPTION_MODEL |
图片摘要模型 | qwen3-vl-plus-2025-12-19 |
| 变量名 | 说明 | 示例值 |
|---|---|---|
OPENAI_API_KEY |
OpenAI 兼容 API Key | sk-xxx |
OPENAI_API_BASE |
OpenAI 兼容 API 基础 URL | https://dashscope.aliyuncs.com/compatible-mode/v1 |
| 变量名 | 说明 | 示例值 |
|---|---|---|
NANO_BANANA_API_KEY |
Nano Banana API Key | sk-xxx |
NANO_BANANA_API_BASE |
Nano Banana API 基础 URL | https://grsai.dakka.com.cn |
NANO_BANANA_MODEL |
Nano Banana 模型名称 | nano-banana-pro |
| 变量名 | 说明 | 示例值 |
|---|---|---|
ZAI_SEARCH_API_KEY |
智谱 Web Search API Key | xxx |
ZAI_SEARCH_API_BASE |
智谱搜索 API 基础 URL | https://open.bigmodel.cn/api/paas/v4/web_search |
ZAI_SEARCH_ENGINE |
搜索引擎类型 | search_pro_quark |
ZAI_SEARCH_MAX_RESULTS |
搜索最大结果数 | 5 |
ZAI_SEARCH_CONTENT_SIZE |
搜索内容大小 | medium |
ZAI_SEARCH_RECENCY_FILTER |
搜索时效过滤 | noLimit |
| 变量名 | 说明 | 示例值 |
|---|---|---|
MULTI_SEARCH_MAX_SHORT |
短文最大搜索次数 | 3 |
MULTI_SEARCH_MAX_MEDIUM |
中等文章最大搜索次数 | 5 |
MULTI_SEARCH_MAX_LONG |
长文最大搜索次数 | 8 |
| 变量名 | 说明 | 示例值 |
|---|---|---|
MINERU_TOKEN |
MinerU 服务 Token | xxx |
MINERU_API_BASE |
MinerU API 基础 URL | https://mineru.net |
| 变量名 | 说明 | 示例值 |
|---|---|---|
KNOWLEDGE_MAX_CONTENT_LENGTH |
最大内容长度 | 8000 |
KNOWLEDGE_MAX_DOC_ITEMS |
最大文档项数 | 10 |
KNOWLEDGE_CHUNK_SIZE |
知识分块大小 | 2000 |
KNOWLEDGE_CHUNK_OVERLAP |
知识分块重叠 | 200 |
| 姓名 | 职责 | 简介 |
|---|---|---|
| 刘磊 | vibe-blog项目负责人 | 一枚后端在职 Coder,专注于AI技术学习与探索, 探索 AI+内容创作的无限可能, 热爱 Vibe, 崇尚分享 |
| 小乔 | ASR音频转录摘要提取模块以及视频模态探索 | 一个营销人,想解决文科生跨越术语障碍、直击底层原理的学习模式,加速理解后在实际场景中输出应用 |
注:表头可自定义,但必须在名单中标明项目负责人
- 如果你发现了一些问题,可以提Issue进行反馈,如果提完没有人回复你可以联系保姆团队的同学进行反馈跟进~
- 如果你想参与贡献本项目,可以提Pull request,如果提完没有人回复你可以联系保姆团队的同学进行反馈跟进~
- 如果你对 Datawhale 很感兴趣并想要发起一个新的项目,请按照Datawhale开源项目指南进行操作即可~
如需在线体验,可以扫描入群(在线访问域名正在申请中...)
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。