返回市场
新闻代理服务器

新闻代理服务器

作者:eugeneyan306 星标更新:2025-07-19

项目介绍

新闻代理

这是一个使用Amazon Q、模型上下文协议(MCP)和tmux创建的新闻聚合系统的小实验,该系统完全在终端中运行。它通过多个并行工作的代理从各种新闻来源获取并总结文章。

请阅读这里的详细介绍,并点击下方图片观看YouTube上的三分钟演示。

三分钟新闻代理演示

这个项目是关于什么的?

这个项目涉及以下内容:

  • 使用Amazon Q CLI作为代理容器
  • 使用MCP解析RSS源作为工具
  • 使用tmux进行终端分割和监控

该系统从几个来源如Hacker News、TechCrunch和WSJ抓取新闻,然后将所有内容汇总成易于阅读的摘要,全部在你的终端窗口中完成。

开始使用

设置Amazon Q

  1. 按照官方指南安装Amazon Q CLI
  2. 设置你的AWS凭证
  3. 确保其正常工作:
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获取源URL
  • 将它们分成三个相等的部分
  • 在单独的tmux面板中生成三个子代理
  • 监控每个人的进度
  • 最后收集所有的摘要

子代理

  • 每个被分配几个源
  • 对于每个源,他们:
    • 下载内容
    • 解析文章
    • 编写摘要
    • 将它们保存到summaries/[feed-name].md
  • 完成后,向主代理报告

整个过程看起来像这样

主代理(在主要的tmux面板中)
├── 读取feeds.txt
├── 将源分成三个部分
├── 创建3个子代理(在单独的tmux面板中)
│   ├── 子代理#1
│   │   ├── 处理第一部分的源
│   │   └── 完成后报告
│   ├── 子代理#2
│   │   ├── 处理第二部分的源
│   │   └── 完成后报告
│   └── 子代理#3
│       ├── 处理第三部分的源
│       └── 完成后报告
└── 将所有内容合并到main-summary.md

你会得到什么

  • summaries/文件夹中的个别摘要
  • main-summary.md中的一个大摘要
  • 终端中代理协同工作的酷炫演示

调试MCP

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/         # 所有摘要最终存放的地方