Gekro News 登场:一份围绕我自我策展的 AI 简报
本文是英文原文的机器翻译,部分细节可能有所损失,请以英文版本为准。 阅读英文原文
要点速览
每天早晨,在我醒来之前,一个小程序会读完当天的 AI 新闻,剔除与我的工作毫无关系的十分之九,把剩下的留给我。它通过阅读我自己的笔记来学习什么算是我的工作,并且随着这些笔记的变化持续学习。我没有买它,也没有安装它。市面上没有任何东西能围绕单个读者来策展新闻,所以我就做了一个能做到的东西。
架构
这不只是又一个订阅阅读器,原因在于过滤器不是静态的。大多数策展工具要你一次性设好主题,而你的工作一旦向前推进,它们就过时了。Gekro News 把这一点反过来:简报读取一份关于我当前兴趣的小画像,而这份画像会按计划从我自己的知识库重新生成。我这个月在做什么,新闻这个月就围绕什么。我从不修改任何设置。
| 它做什么 | 它运行在哪里 | |
|---|---|---|
| 品味 | 把我的知识库提炼成一份公开的兴趣画像,每周一次 | 一个 n8n 流程(云端) |
| 通讯社 | 扫描经过审核的订阅源,用那份画像策展、校验并发布 | 一个每日任务(云端,无人值守) |
| 投递 | 按需、解放双手地把简报读给我听 | RSS 加上车里的按需语音拉取 |
这三部分被刻意解耦,因此其中一个出故障绝不会拖垮其他部分。
WEEKLY DAILY (07:00 UTC, unattended)
────── ─────────────────────────────
n8n reads my knowledge base scan vetted feeds (last 36h)
↓ distills to PUBLIC ↓ read the interest profile
↓ AI topics, sanity-checked ↓ curate the day's 2-4 stories
↓ writes interest profile ───► ↓ validate (cite, neutral, sourced)
↓ auto-publish
↓
gekro.com/news + RSS ──► "read me my news" → car
搭建
**发现。**一个每日任务会扫描一小组经过审核的高信号订阅源,寻找过去 36 小时内发布的所有内容。这些订阅源是渔网,不是渔获。我最讲究的是引用:每条新闻都链接到任务实际抓取的那篇文章,发布器会拒绝任何无法追溯到它实际抓取内容的来源。简报不可能链接到它从未读过的页面,这就是一个我能以每小时 70 英里的速度放心信赖的通讯社,和一个我得在每个红灯前核实的通讯社之间的区别。
**策展。**候选内容交给一次模型调用,只用一套指令。没有微调,没有向量库。智能就是一条编码了某种观点的提示词,再叠上兴趣画像。
You are writing the daily AI briefing for gekro.com - a NEUTRAL, sourced
digest, not an opinion column.
PREFER: model releases (open-weight especially), research with engineering
implications, infra and tooling, real benchmarks, API and pricing changes
that affect developers.
AVOID: funding rounds, business news, opinion, press releases, AI drama,
AGI speculation without evidence.
Neutral, third person, no hype words. EVERY claim carries an inline citation.
Do not state anything you cannot attribute.
这条静态的主干每天都一样。变化的是一个小小的 READER FOCUS 块,它由兴趣画像注入,告诉编辑今天在那些偏好的主题中应当最看重哪些。如果你想看看这样一条提示词到底承担了多少,可以把它放进 System Prompt Linter 里跑一遍:筛选规则、语气规则和输出契约,全都在同一套指令里。
它也有记忆。在动笔之前,编辑会看到自己过去几天已经发布的标题,这样一条持续数日的新闻就不会每天早晨被重复报道。除非真的发生了新的事,否则它会翻篇,这就是订阅源和循环的区别。
**自我更新的品味。**这是我最看重的部分。一个 n8n 流程按计划运行,读取我的知识库,把它提炼成我真正参与构建并写过的、可公开的 AI 与软件主题。它把结果写入一份小画像,每日任务在下一次运行时读取。有两条规则让它能放心地对着公开站点无人值守运行。第一,画像存放在一个公开仓库里,因此按构造它就是全世界可读的,这意味着那里只能存放可发布的主题。第二,写入被一道检查把守:画像里不能有任何个人信息,不能有关于我为谁工作的内容,不能有任何可识别身份的内容,并且遵循“失败即拒绝”的原则:如果无法证明画像是干净的,它就什么都不写,保留上一份干净的画像。陈旧但干净,永远胜过新鲜但未经审核。
**发布与投递。**格式有问题的简报永远不会发出:生成器会校验自己的输出(语气中立、来源对齐、长度范围),在任何构建看到之前,遇到任何有问题的内容就中止。干净的简报会自行提交并部署,出现在 gekro.com/news 和一个 RSS 订阅源里。整个系统运行在定时的云端例程上,所以维持它不花我一分钱,也从不需要我的机器开着。投递方面,我给车里的助手接入了一条自定义指令:我说要听新闻,它就拉取最新的简报,在上班路上读给我听。没有应用,没有屏幕。
取舍
一个自我策展的过滤器是单一的品味来源。简报的相关性永远不会超过它背后的画像,而那份画像就是我。当我想要一个追踪我自己工作的通讯社时,这就是全部价值;而当我误以为它是客观的那一刻,它就成了隐患。它刻意反映的是我,我也尽量不忘记这一点。
更难的是公开与私密的界线。这是个公开站点,所以个性化必须让新闻对我更相关,却绝不能让这个页面变成日记。这条纪律只有一句话:个性化被选中的内容,绝不个性化被称呼的人。简报始终保持中立和第三人称。里面任何地方都没有“给你,Rohit”,因为另一头是真实的读者,他们值得一份简报,而不是窥探我的笔记本。个人化的那一半只存在于车里,那里的听众只有一个人。
我学到了什么
我差点做出来的版本要大得多:一个数据库、一个去重引擎、用于聚类新闻的嵌入、一个调整权重的仪表盘。我庆幸自己没这么做。整个东西就是一个定时任务、一条提示词、一份会自己重写的小画像,以及一个我本来就在生成的订阅源。智能不在基础设施里;它在一段编辑判断,和一份简短的、自我更新的“我在意什么”清单里。事实证明,策展既不是模型问题,也不是数据问题。它是品味问题,而品味压缩进一条提示词和一份画像里,比我尝试编码过的几乎任何东西都更合适。我为一个人的受众而造,然后在 gekro.com/news 把大门敞开,因为噪音并不只是我一个人的问题。