News Agents 利用 Amazon Q CLI 作为代理框架,使用 Model Context Protocol (MCP) 解析 RSS feed 作为工具,使用 tmux 进行终端分割和监控,最终创建一个在终端中运行的新闻聚合系统。
News Agents通过多个并行工作的代理,从 Hacker News, TechCrunch, WSJ 等多个新闻源抓取并总结新闻,最终生成易于阅读的摘要。
主代理
1、从feeds.txt
文件获取订阅源URL。
2、将URL均分成3部分。
3、在不同tmux窗格中启动3个子代理。
4、监控所有子代理的进度。
5、最后收集所有摘要。
子代理
1、每个子代理被分配若干订阅源。
2、针对每个订阅源:
下载内容。
解析文章。
撰写摘要。
将摘要保存到summaries/[feed-name].md
文件。
3、完成任务后向主代理汇报。
整个流程如下:
主代理(在主tmux窗格中)
├── 读取feeds.txt
├── 将订阅源分成3块
├── 创建3个子代理(在不同tmux窗格中)
│ ├── 子代理#1
│ │ ├── 处理第1块中的订阅源
│ │ └── 完成后汇报
│ ├── 子代理#2
│ │ ├── 处理第2块中的订阅源
│ │ └── 完成后汇报
│ └── 子代理#3
│ ├── 处理第3块中的订阅源
│ └── 完成后汇报
└── 将所有内容合并到main-summary.md
News Agents主要用到了以下几个工具:
Amazon Q CLI:作为代理执行的基础工具。
MCP:用来解析RSS订阅源。
tmux:实现终端分屏和监控。
系统能从Hacker News、TechCrunch、《华尔街日报》(WSJ)等多个新闻源获取新闻,然后在终端窗口里把所有内容汇总成摘要。
设置Amazon Q
1、按照官方指南安装Amazon Q CLI。
2、设置好AWS凭证。
3、确认安装成功,在终端输入q --version
查看版本号。
克隆仓库运行
1、克隆项目仓库:git clone https://github.com/eugeneyan/news-agents.git
2、进入项目目录:cd news-agents
3、同步依赖:uv sync
4、检查httpx
和mcp[cli]
是否安装:uv tree
5、启动Amazon Q:q chat --trust-all-tools
6、添加系统上下文:/context add --global context/agents.md
7、启动主代理:让Q读取context/main-agent.md
,启动子代理执行任务。
系统启动后,会自动分成多个代理并行处理新闻订阅源,通过tmux分屏展示处理过程。
.
├── context/ # 代理的指令文件
├── src/ # 处理不同订阅源类型的代码
│ ├── ainews.py # 人工智能新闻相关代码
│ ├── hackernews.py # Hacker News相关代码
│ ├── techcrunch.py # TechCrunch相关代码
│ ├── wired.py # Wired相关代码
│ └── wsj.py # 《华尔街日报》相关代码
└── summaries/ # 所有摘要的保存位置