内容
做一份团队真的会读的每日 AI 新闻简报
先拿有来源的新闻汇总,再加入实践者在 X 上的讨论,拉一条视频转录,最后用 Markdown 写成一期简报并存进 LiveDoc。
复制 prompt
把方括号里的字段替换掉,然后粘贴到 Claude Code、Codex 或任何能访问终端的 AI。它会安装 Felo skill、在花额度前询问,并执行这套 workflow。
为[行业或主题]制作一份每日行业简报。 时间范围:过去 24 小时,时区[时区]。读者:[读者]。 关注列表(可选):X [账号或主题]、YouTube [频道]、Reddit [社区]。 挑选 5–8 条真正重要的内容。每条写:发生了什么、为什么重要、来源链接,以及它属于公告、结果还是观点。 章节: 1. 头条。 2. 5–8 条内容,每条附来源链接。 3. X 上大家在说什么,附账号和日期。 4. 一条带时间戳的视频引文。 5. 接下来关注什么。 规则: - 每条都附链接。合并重复报道,保留最好的来源。 - 区分公告和独立结果;给厂商主张加标签。 - 只报告来源返回的指标。数据缺失时写“暂无数据”,不要写零。 - 如果没有重要事件,直接说明,不要为凑篇幅而填充。 - 消耗额度前,先展示计划执行的 API 调用并等待我批准。 - 不要排期、发布或发送任何内容。 - 将结果写入 ./daily-brief.md,并在对话中总结。
复制的内容也包含安装步骤和安全规则。
你会得到什么
一次运行的示例输出,不是实时生成。
AI 行业简报 — 2026-10-30
头条
一家大型实验室发布了一款更小的模型,其工具使用基准分数与旗舰相同。厂商主张;独立结果仍待公布。
条目
- 小模型,同分 — 厂商基准,尚未复现。[来源]
- 智能体框架发布 — 新的追踪和重试控制。[来源]
大家在说什么
@example_dev:“赢的是延迟,不是分数。” — 2026-10-30 08:12 JST
一条视频引文
“我们不再测 token,开始测已解决工单。” — [12:40]
接下来关注
工具使用的独立评测,以及发布周后价格是否维持。
实际调用
给开发者:同一套 workflow 的可复制代码,按执行顺序排列。
展开实际 API 调用
先做有来源的新闻汇总
用 Chat 问过去 24 小时的 AI 新闻,保留它引用的来源和日期。
digest.ts const BASE = "https://openapi.felo.ai"; const headers = { Authorization: `Bearer ${process.env.FELO_API_KEY}`, "Content-Type": "application/json", }; async function felo<T>(path: string, body?: unknown): Promise<T> { const res = await fetch(`${BASE}${path}`, { method: body ? "POST" : "GET", headers, body: body ? JSON.stringify(body) : undefined, }); if (!res.ok) throw new Error(`${res.status}: ${await res.text()}`); return res.json() as Promise<T>; } type ChatData = { data: { answer: string; resources: { link: string; title: string; snippet: string }[]; }; }; const roundup = await felo<ChatData>("/v2/chat", { query: "Biggest AI news stories in the last 24 hours", }); const sources = roundup.data.resources.slice(0, 5);示例输出
{ "answer": "The main stories today are …", "sources": [ { "link": "https://example.com/story", "title": "…", "snippet": "…" } ] }加入实践者讨论
在 X 搜同一话题,收集带账号和日期的实践者帖子。
digest.ts type XData = { data: { tweets: { content: string; author: { username: string }; created_at: string; metrics: { retweet_count: number; favorite_count: number }; }[]; next_cursor: string | null; has_next: boolean; }; }; const since = Math.floor((Date.now() - 24 * 60 * 60 * 1000) / 1000); const social = await felo<XData>("/v2/x/tweet/search", { query: "AI agents", limit: 20, since_time: since, }); const posts = social.data.tweets .filter((tweet) => tweet.metrics.favorite_count >= 50) .slice(0, 3);示例输出
{ "data": { "tweets": [ { "content": "…", "author": { "username": "…" }, "created_at": "2026-10-29T02:14:00Z", "metrics": { "retweet_count": 12, "favorite_count": 180 } } ] } }拉一条视频转录
用 YouTube Subtitling 拉一条相关视频的转录,挑一条带时间戳的引语。
digest.ts type SubtitleData = { data: { title: string; contents: { text: string; start: number; duration: number }[]; }; }; const videoCode = "dQw4w9WgXcQ"; // replace with today's video id const video = await felo<SubtitleData>( `/v2/youtube/subtitling?video_code=${videoCode}&language=en&with_time=true`, ); const transcript = video.data.contents.map((line) => line.text).join(" ");示例输出
{ "title": "Example Video Title", "contents": [ { "text": "Subtitle text", "start": 0.32, "duration": 14.26 } ] }写成 Markdown 简报
按“重点新闻 / 实践者反应 / 视频引语 / 下一步关注”组织内容。
digest.ts const date = new Date().toISOString().slice(0, 10); const issue = [ `# AI digest — ${date}`, "", "## The roundup", roundup.data.answer, "", "## What practitioners are posting", ...posts.map((post) => `- @${post.author.username}: ${post.content}`), "", "## From the video", transcript.slice(0, 1200), "", "## Sources", ...sources.map((source) => `- [${source.title}](${source.link})`), ].join("\n"); console.log(issue);归档到 LiveDoc
把这一期和来源存进 LiveDoc,下一期可以检索历史。
digest.ts type LiveDocData = { data: { short_id: string } }; const archive = await felo<LiveDocData>("/v2/livedocs", { name: "AI digest archive", description: "One document resource per daily issue", }); await felo(`/v2/livedocs/${archive.data.short_id}/resources/doc`, { title: `AI digest — ${date}`, content: issue, }); type Retrieved = { data: { title: string; content: string; score: number }[] }; const past = await felo<Retrieved>( `/v2/livedocs/${archive.data.short_id}/resources/retrieve`, { query: "what did we say about agent frameworks last month" }, ).then((res) => res.data.filter((hit) => hit.score >= 0.7));示例输出
[ { "title": "AI digest — 2026-10-01", "content": "…", "score": 0.88 } ]
包含什么
- 有来源的新闻汇总和链接
- X 上带账号和日期的实践者讨论
- 一条带时间戳的视频引语
- 保存每一期、可语义检索的 LiveDoc
不做什么
- 只覆盖公开来源;付费墙内容可能缺失
- X 只作为信号,不代表完整舆情
- 不自动发布或发送简报
- 视频需要已有字幕
- 每天运行一次,调度由你的 agent 或 cron 负责
常见问题
来源可靠吗?
每条新闻都带来源链接和发布日期;X 帖子额外带账号和时间戳。简报不会把未核实的内容写成事实。
可以换成其他行业吗?
可以。把主题占位符换成你的行业,来源和 X 搜索词跟着调整。
为什么需要视频?
视频提供一条带时间戳的实践者观点,让简报不只有新闻标题。没有字幕的视频会跳过。
会自动发到 Slack 吗?
不会。它生成 Markdown 文件;发送需要你自己的集成。
可以保存历史吗?
可以。LiveDoc 会保留每一期,之后可以检索过去几周的报道。
一次要花多少?
Chat、X 搜索、视频转录都按用量计费;当前费率在价格页面,prompt 会先请求确认。
相关 workflow
改成你的版本
同一套配方,按你实际的交付方式调整。
只做某一个细分
把主题缩到 AI 编程、AI 视频或 AI 搜索,简报会更有针对性。
加一个“本周变化”段落
把上一期 LiveDoc 检索出来,对比本周新增了什么。
改成周报
把调度改成每周一次,减少每天的信息噪音。
继续深入
这套配方背后的参考页面,以及下一步可以看什么。