这是一个使用Amazon Q、模型上下文协议(MCP)和tmux创建的新闻聚合系统的小实验,该系统完全在终端中运行。它通过多个并行工作的代理从各种新闻来源获取并总结文章。
请阅读这里的详细介绍,并点击下方图片观看YouTube上的三分钟演示。
这个项目涉及以下内容:
该系统从几个来源如Hacker News、TechCrunch和WSJ抓取新闻,然后将所有内容汇总成易于阅读的摘要,全部在你的终端窗口中完成。
q --version
git clone https://github.com/eugeneyan/news-agents.git
cd news-agents
uv sync # 同步依赖项
uv tree # 检查httpx和mcp[cli]是否已安装
q chat --trust-all-tools # 启动Q
/context add --global context/agents.md # 添加多代理的系统上下文
Q,读取context/main-agent.md并启动子代理来执行它。 # 启动主代理
系统将开始执行:分裂成多个代理,并使用tmux面板并行处理新闻源,以保持一切可见。
feeds.txt获取源URLsummaries/[feed-name].md主代理(在主要的tmux面板中)
├── 读取feeds.txt
├── 将源分成三个部分
├── 创建3个子代理(在单独的tmux面板中)
│ ├── 子代理#1
│ │ ├── 处理第一部分的源
│ │ └── 完成后报告
│ ├── 子代理#2
│ │ ├── 处理第二部分的源
│ │ └── 完成后报告
│ └── 子代理#3
│ ├── 处理第三部分的源
│ └── 完成后报告
└── 将所有内容合并到main-summary.md
summaries/文件夹中的个别摘要main-summary.md中的一个大摘要uv run mcp dev src/main.p
.
├── context/ # 代理的操作指令
├── src/ # 处理每种源类型的代码
│ ├── ainews.py # AI新闻相关
│ ├── hackernews.py # Hacker News相关
│ ├── techcrunch.py # TechCrunch相关
│ ├── wired.py # Wired相关
│ └── wsj.py # 华尔街日报相关
└── summaries/ # 所有摘要最终存放的地方