一、速览:反焦虑的新闻阅读器

入门

Kagi News(代号 Kite)是知名隐私搜索引擎 Kagi 推出的一款开源新闻应用。

它解决的核心痛点是「信息过载」与「算法茧房」。

传统新闻客户端通过无限滚动和个性化推荐争夺用户时长,而 Kagi News 反其道而行。

它每天仅在 UTC 时间 12:00 更新一次,强制切断用户的连续刷新行为。

内容经过 LLM 摘要处理,剔除观点性评论,只保留事实与多视角报道。

对于希望建立「健康新闻饮食」的开发者,这是一个极佳的参考案例。

Kagi News Open Graph

项目前端完全开源,基于 Svelte 构建,代码结构清晰,适合学习现代静态站点架构。

后端核心逻辑虽未完全公开,但前端展示了如何处理多语言源与分类聚合。

二、安装与本地运行

入门

该项目是一个标准的静态前端应用,依赖 Node.js 环境,无需配置数据库。

首先确保本地已安装 Node.js LTS 版本,这是运行 Vite 构建工具的基础。

使用 Git 克隆仓库并进入目录,这是所有开源项目上手的第一步。

git clone https://github.com/kagisearch/kite-public.git
cd kite-public

接着安装项目依赖。由于使用了 SvelteKit 和 Vite,依赖包体积适中。

npm install

启动开发服务器后,访问本地端口即可预览界面。

npm run dev

注意,本地运行看到的是前端框架和静态数据,实时新闻流依赖 Kagi 的后端 API。

若需修改 UI 或调试组件,此环境已足够;若需完整复现新闻聚合逻辑,需自行对接数据源。

三、核心架构与设计理念

进阶 · 推荐细读

理解 Kagi News 的代码前,需先理解其「少即是多」的产品哲学。

每日单次更新是其技术实现上的最大约束,也是最大特色。

这意味着前端不需要处理复杂的 WebSocket 实时推送或分页加载逻辑。

数据流是批处理的:后端在特定时间点抓取、清洗、摘要,然后一次性推送到前端。

在代码层面,这体现为对静态 JSON 数据的高效读取与渲染。

多语言自动翻译是另一个技术亮点。

README 明确指出,不同语言的源应归入同一类别,而非按语言拆分文件夹。

例如,瑞士的新闻源无论德语还是法语,都应在 kite_feeds.json 中统一管理。

source_language 字段仅用于标记主要语言,前端会调用翻译服务统一呈现。

这种设计避免了内容碎片化,确保了同一事件下不同视角的并置。

对于开发者而言,这提示我们在设计国际化应用时,应考虑内容层面的聚合,而非仅做 UI 翻译。

四、社区贡献与数据定制

进阶 · 推荐细读

虽然后端闭源,但项目开放了「社区 curated feeds」的贡献通道。

这是普通开发者最能直接参与的部分,也是理解其数据模型的关键。

数据定义位于 kite_feeds.json 或类似结构的配置文件中。

添加新源时,需遵循严格的质量标准,而非单纯追求数量。

注意:不要为不同语言创建单独的类别。保持类别的统一性,让系统自动处理翻译。

每个条目需包含源 URL、语言标记及所属分类。

高质量的源意味着更高的权重,这直接影响最终新闻摘要的生成质量。

如果你维护某个垂直领域的博客或资讯站,提交到此列表可获得更精准的曝光。

从代码角度看,这是一个典型的「众包数据清洗」模式。

通过社区力量维持源的新鲜度,比单一团队维护更高效。

五、踩坑与注意事项

深入 · 老手可选

在本地开发或二次开发时,有几个常见的技术陷阱需要注意。

首先是 API 依赖问题

本地运行的前端默认可能指向生产环境的 API,或者缺少 Mock 数据。

若页面显示空白或加载失败,检查网络请求是否被 CORS 策略拦截。

Kagi 的 API 通常需要认证,开源部分仅包含前端展示逻辑,不包含鉴权后端。

其次是 构建部署差异

README 提到生产构建参考 Vite 文档,但静态部署时需处理好路由回退。

SvelteKit 生成的静态文件在 Nginx 或 Cloudflare Pages 上部署时,需配置 try_files

否则刷新非首页路径时会报 404 错误。

最后是 许可证混淆

项目同时包含 MIT 协议和 CC BY-NC 4.0 协议。

代码部分通常为 MIT,可自由修改商用;但内容和品牌资产受 CC 协议限制。

若你打算 Fork 此项目做自己的新闻阅读器,务必替换掉 Kagi 的品牌标识和内容源。

六、判断建议:这项目适合你吗?

入门

适合以下人群:

  • 想学习 Svelte/SvelteKit 最佳实践的前端开发者。
  • 对信息过滤算法感兴趣,想研究如何结构化新闻数据的产品经理。
  • 厌倦了算法推荐,寻找替代方案的重度新闻读者。

不适合以下人群:

  • 期望获取完整后端源码,自行搭建一套新闻爬虫系统的工程师。
  • 需要实时突发新闻推送的交易员或运维人员。
  • 希望一键 Fork 就能拥有独立运营新闻 APP 的创业者(需解决数据和算力成本)。

Kagi News 的价值不在于代码的复杂性,而在于其对「技术克制」的实践。

它证明了在 AI 时代,技术服务于人的注意力管理,而非掠夺注意力。

项目信息

项目
仓库 kagisearch/kite-public
语言 Svelte
Star 1,050
Fork 262
主页 https://news.kagi.com

参考链接