Agently-Daily-News-Collector
基于 LLM Agent 的全自动新闻采集与报告生成流水线,一句话主题输入即可输出 Markdown
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
基于 LLM Agent 的全自动新闻采集与报告生成流水线,一句话主题输入即可输出 Markdown
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下:每天早上,你只需要对着终端输入一个词,比如「AI大模型最新进展」,一杯咖啡的时间后,一份结构完整、排版规范的新闻汇总报告就静静地躺在你的文件夹里——包含栏目大纲、AI 自动检索的相关新闻、每条新闻的摘要,以及你设定的语言风格的栏目撰写稿。
这就是 Agently-Daily-News-Collector 正在做的事。它是一个完全开源的、基于大语言模型(LLM)的自动化新闻采集与报告生成工作流,通过 Agently AI 应用开发框架 构建,将 AI 新闻汇总的完整流程自动化:从结构规划、新闻检索、内容筛查,到摘要撰写、Markdown 格式输出,全程无需人工干预。
在 AI 领域,信息更新的速度远超人工阅读的极限。2024 年开始,大模型军备竞赛加速,每天都有新模型发布、新产品上线、新论文公开。对于 AI 研究者、产品经理、技术写作者来说,「快速获取高质量的行业新闻摘要」是一个高频刚需。
传统方案要么依赖 RSS 订阅(噪音大、格式乱),要么依赖人工整理(费时费力),要么付费购买新闻聚合服务(成本高、不可定制)。Agently-Daily-News-Collector 的出现,提供了一个完全免费、可深度定制、一次配置永久使用的开源替代方案。
该项目的核心贡献者团队 AgentEra 同时维护着 Agently AI 应用开发框架本身(GitHub stars 3,200+),项目背景深厚,开发活跃度高,值得关注。
项目底层使用 Agently(一个专为 GenAI 应用设计的 Python 开发框架)作为运行时。与 LangChain、Hugging Face Transformers 等通用框架不同,Agently 的设计哲学是「用结构化数据和链式调用语法与 AI Agent 交互」,将 Agent 的状态管理、Prompt 模板、工具调用、工作流编排封装为流畅的链式 API:
# Agently 典型的链式调用风格(示例)
result = (agent
.set_role("你是一位资深科技记者")
.set_user_info(topic="AI 大模型")
.load_yaml_prompt(path="prompts/summarize_news.yaml")
.start()
)
Agently 还提供了 TriggerFlow(事件驱动流) 机制,用于管理复杂的 LLM 工作逻辑。项目中的 build_daily_news_flow 正是基于 TriggerFlow 构建,实现了一个多阶段顺序执行的工作流引擎。
项目仓库中包含两套实现:
v3(旧版):基于 Agently v3,采用显式的 Workflow 类 + chunk 装饰器定义工作流节点。流程为:
column_workflow 并发生成(column_concurrency=3)timelimit=d,当天)news_collector(新版):基于 Agently v4 重构,代码更模块化,将工具层(搜索、浏览)与工作流解耦,引入 AppSettings 配置类统一管理环境变量和模型参数,支持 ${ENV.xxx} 占位符语法从 .env 文件动态注入敏感信息。
项目实现了 工具协议层(tools/base.py),定义了 SearchToolProtocol 和 BrowseToolProtocol 两个接口,提供了灵活的工具替换能力:
| 工具 | 实现 | 说明 |
|---|---|---|
| 搜索 | DuckDuckGo Search (ddgs) | 支持多后端:duckduckgo / bing / google 等 |
| 浏览 | Agently 内置 Browse 工具 | Playwright(无头)+ BeautifulSoup 双引擎 |
浏览工具支持 playwright_headless=True 无头模式,可抓取需要 JavaScript 渲染的动态网页;响应格式可选 Markdown 或纯文本,截断长度可配置(max_content_length=12000)。
配置好 SETTINGS.yaml 后,使用极其简单:
python app.py "AI大模型最新进展"
# 或者交互式输入
python app.py
输出直接是 Markdown 格式的新闻汇总报告,同时保存到 outputs/ 目录。例如默认配置会生成 3 个栏目的报告:
通过 SETTINGS.yaml 可以灵活调整:
OUTPUT_LANGUAGE: Chinese)max_column_num: 3)max_news_per_column: 3)timelimit: d/w/m)column_concurrency、summary_concurrency)进阶用户可以直接修改 prompts/ 目录下的 YAML Prompt 文件,改变 AI 的写作风格、筛选标准、内容结构,实现完全自定义的报告格式。
SETTINGS.yaml 中支持配置 HTTP 代理(PROXY),解决了国内用户访问某些新闻源的网络问题。模型层面,默认使用 OpenAI Compatible 格式,可接入 DeepSeek、Qwen、GLM 等任何兼容 OpenAI API 格式的模型,无需修改代码。
项目根目录提供了标准的单阶段 Dockerfile:
FROM python:3.10
WORKDIR /app
COPY . .
RUN pip install --no-cache-dir -r requirements.txt
CMD ["python", "app.py"]
构建镜像后需挂载配置文件和数据目录,因为 SETTINGS.yaml 中的 API Key 不能写死在镜像里。适合有 Docker 基础的用户。
需要 Python 3.10+ 环境,安装依赖后修改 SETTINGS.yaml 即可运行。无 GPU 需求,纯 CPU 运行,内存 2GB 足够。
| 维度 | 评估 |
|---|---|
| 技术门槛 | 低(Python 基础即可) |
| 配置复杂度 | 中(需配置 API Key 和可选代理) |
| 网络依赖 | 高(依赖模型 API + 搜索引擎) |
| 运行成本 | 低(DeepSeek API 成本极低) |
适合有一定技术背景、希望自动化日常信息收集流程的用户。对于完全不懂命令行的用户,有一定门槛。
项目没有提供任何图形界面,所有交互都在终端完成。对于非技术用户或希望多人协作使用的场景,体验不够友好。需要用户自己包装一个简单的 Web 服务来共享使用。
新闻筛选、摘要生成、栏目撰写的质量完全取决于所调用的 LLM。如果使用较弱的模型(如 gpt-3.5-turbo),生成报告的连贯性和信息密度可能不如预期。建议使用 DeepSeek V3 / GPT-4o / Claude 3.5 等强模型以获得最佳效果。
搜索后端默认为 DuckDuckGo,在某些新闻源覆盖度上不如 Google。若需覆盖中文新闻源,需要配置代理并尝试 Google 搜索后端,但这在国内环境中可能不稳定。
Agently-Daily-News-Collector 不仅仅是一个工具,它代表了一种趋势:用 AI Agent 自动化「信息消费」的生产环节。从更宏观的视角看,这类工作流有几个重要信号:
LLM 应用正在从「对话」走向「自动化」:不再是简单的问答,而是将 LLM 作为工作流的核心引擎,驱动完整的业务流程。
Prompt 即业务逻辑:项目中大量使用 YAML Prompt 文件来定义 AI 的行为,这意味着非程序员也可以通过调整 Prompt 来定制 AI 的输出风格和质量。
多模型兼容是标配:Agently 框架的核心设计之一是「换模型不改代码」,这正在成为 LLM 应用开发的事实标准。
对于 AI 爱好者,这个项目是理解 LLM Agent 工作流设计的优秀案例;对于 AI 开发者,它是基于 Agently 框架构建生产级应用的成熟参考模板。
Step 1:克隆仓库
git clone git@github.com:AgentEra/Agently-Daily-News-Collector.git
cd Agently-Daily-News-Collector
Step 2:安装依赖
pip install -r requirements.txt
Step 3:配置 SETTINGS.yaml
PROXY: http://127.0.0.1:7890 # 可选,国内可留空
MODEL:
provider: OpenAICompatible
base_url: ${ENV.DEEPSEEK_BASE_URL}
model: ${ENV.DEEPSEEK_DEFAULT_MODEL}
auth:
api_key: ${ENV.DEEPSEEK_API_KEY}
Step 4:设置 .env 文件
echo 'DEEPSEEK_BASE_URL=https://api.deepseek.com' >> .env
echo 'DEEPSEEK_API_KEY=your_key_here' >> .env
Step 5:运行
python app.py "AI Agent 最新动态"