
History Today Article Writer MAS — 基于大模型协同的深度历史文章自动撰写系统
📖 项目简介
本系统采用 5个Agent串行流水线 架构,自动完成"历史上的今天"深度解读文章的撰写。从获取历史事件、采集信息、生成大纲、撰写正文(含AI配图)到润色升华,全流程自动化,最终输出精美的HTML可视化文章。
核心能力
- 🔍
智能事件筛选:从当日历史事件中按优先级提炼2~3个重大事件 - 📊
搜索增强采集:拆解子主题,调用百度AI搜索深度采集素材 - 📝
结构化大纲:生成含章节、核心要点、配图位置标注的文章大纲 - 🎨
AI配图生成:撰写时调用千帆文生图API,为文章生成3~7张配图 - ✨
润色升华:LLM润色文字、提炼金句,生成响应式HTML文章
🏗️ 系统架构

🤖 Agent 详细说明
Agent 1:历史上今天重大事件提炼
| 输入 | |
| 处理 | todayOnhistory/queryEvent 获取事件列表 → LLM按优先级筛选 |
| 筛选优先级 | |
| 输出 | |
| 外部依赖 |
Agent 2:信息收集
| 输入 | |
| 处理 | |
| 搜索维度 | |
| 输出 | |
| 外部依赖 |
Agent 3:文章大纲生成
| 输入 | |
| 处理 | |
| 章节结构 | |
| 配图标注 | need_image 位置,提供文生图提示词 |
| 输出 | |
| 外部依赖 |
Agent 4:文章撰写(含配图)
| 输入 | |
| 处理 | |
| 文生图规则 | |
| 输出 | |
| 外部依赖 |
Agent 5:润色升华
| 输入 | |
| 处理 | |
| 润色维度 | |
| 输出 | |
| 最终输出 | |
| 外部依赖 |
📁 项目结构
history-today-writer/├── config.py # 全局配置├── main.py # 主入口(流水线编排)├── html_builder.py # HTML报告生成器├── clients/│ ├── __init__.py│ ├── llm_client.py # LLM双后端客户端(千帆+Ollama)│ ├── search_client.py # 百度AI Search客户端│ ├── history_client.py # 聚合数据todayOnhistory客户端│ └── image_client.py # 千帆ernie-image-turbo文生图客户端├── agents/│ ├── __init__.py│ ├── event_extractor.py # 事件提炼Agent│ ├── info_collector.py # 信息收集Agent│ ├── outline_generator.py # 大纲生成Agent│ ├── article_writer.py # 撰写Agent(含配图生成)│ └── polish_agent.py # 润色升华Agent├── prompt/│ ├── event_extractor.md # 事件提炼提示词│ ├── info_collector.md # 信息收集提示词│ ├── outline_generator.md # 大纲生成提示词│ ├── article_writer.md # 撰写提示词(含文生图规则)│ └── polish_agent.md # 润色升华提示词└── output/ └── images/ # AI生成配图存放目录🚀 快速开始
环境要求
Python 3.10+ requests 库: pip install requests
配置
编辑 config.py 或通过环境变量配置:
LLM_PROVIDER | qianfanollama | qianfan | |
QIANFAN_API_KEY | |||
QIANFAN_MODEL | ernie-x1-turbo-32k | ||
OLLAMA_BASE_URL | http://localhost:11434 | ||
OLLAMA_MODEL | qwen2.5:7b | ||
HISTORY_API_KEY | |||
BAIDU_SEARCH_API_KEY |
运行
# 默认模式(千帆后端,当天日期)python3 main.py# 指定日期(M/D格式)python3 main.py --date 5/7python3 main.py --date 10/1# 切换到Ollama后端python3 main.py --ollama# 组合使用python3 main.py --ollama --date 10/1# 显示帮助python3 main.py help输出
运行后在 output/ 目录生成:
history_today_*.html— 完整的可视化文章(响应式HTML,配图内嵌) images/— AI生成的配图文件(PNG)
🔧 技术栈
| LLM | ||
| 文生图 | ||
| 搜索 | ||
| 历史事件 | ||
| 提示词管理 | ||
| 输出格式 |
📊 数据流
日期(月/日) │ ▼┌──────────────────────────┐│ 聚合数据 todayOnhistory │ ──→ 事件列表(JSON)└──────────────────────────┘ │ ▼ LLM筛选(爱国>科技>人物>社会>文化)┌──────────────────────────┐│ 2~3个精选事件 │ ──→ {date, title, category, keywords, significance}└──────────────────────────┘ │ ▼ LLM拆解搜索计划┌──────────────────────────┐│ 百度AI Search × N │ ──→ 搜索结果文本└──────────────────────────┘ │ ▼ LLM整合素材┌──────────────────────────┐│ 结构化素材库 │ ──→ {key_facts, notable_quotes, controversies, narrative}└──────────────────────────┘ │ ▼ LLM生成大纲┌──────────────────────────┐│ 文章大纲+配图位置标注 │ ──→ {outline, image_suggestions(3~7处)}└──────────────────────────┘ │ ▼ LLM逐章撰写 + 千帆文生图┌──────────────────────────┐│ 正文(Markdown) + 配图 │ ──→ chapters[].content + images[].png└──────────────────────────┘ │ ▼ LLM润色 + HTML构建┌──────────────────────────┐│ 最终HTML文章 │ ──→ output/history_today_*.html└──────────────────────────┘⚠️ 注意事项
- API配额
:聚合数据每日有调用限额,百度AI Search和千帆API按量计费 - 文生图耗时
:每张配图生成约10~30秒,3~7张配图总耗时1~4分钟 - 搜索间隔
:批量搜索默认2秒间隔,避免触发限流 - Ollama要求
:使用Ollama后端需本地启动服务并拉取模型( ollama pull qwen2.5:7b) - 输出大小
:HTML文件因base64内嵌配图,单文件可能2~10MB
通过网盘分享的文件:history-today-writer.zip
链接: https://pan.baidu.com/s/1DZEbziiJ_SjmoTaoBLNP2A?pwd=w6my 提取码: w6my
--来自百度网盘超级会员v4的分享
夜雨聆风