用 Nanobot 搭了个晨间新闻早报(DailyNews):工作流拆解与踩坑记录 #4035
Yulia-AI-2026
started this conversation in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
每天早上 7:40,我的邮箱里会准时躺着一份新闻早报。
它覆盖 AI 产品趋势、时政、本地文化、健康科普、内容创作等方向,每条新闻带背景、关联分析和行动入口。末尾附天气和当天日程备忘。
不是信息聚合器,是一个懂你当下关注什么的报纸——每天生成前,AI 会先读我最近两天的日记,提取情绪状态和关注方向,再决定今天搜什么。话题由日记驱动,不是固定关键词矩阵。
下面拆一下这个系统的完整工作流,附带搭建过程中踩过的坑。
工作流(10 步)
天气获取 — Open-Meteo 免费 API,拿上海当日温度、湿度、风力,自动转中文 + emoji。
日记驱动话题选择 — 读最近两天日记 → 提取当前状态和关注方向 → 决定搜索主题。不是预设话题池,是日记说了算。
话题轮换 — 检查前 3 天存档,同一话题不连续霸榜超过 3 天,每天至少覆盖 5 个不同方向。
多源搜索 — Tavily 全网搜,优先命中少数派、果壳、量子位、梅斯医学等直连稳定源。
Product Hunt 趋势 — 从 decohack.com 抓每日 PH 热榜(四层数据源容错),筛 AI、内容工具、独立开发者相关产品,附中文解读。
即刻话题精选 — 搜即刻上 AI 产品、内容创作、心理健康等话题的最新讨论,手动筛有信息增量的帖子。
交叉核查 — 日期、时间、展期类信息,至少两个独立来源验证才写入。核实不了的直接砍掉。
生成正文 — 所有搜索结果按固定格式写入 Markdown,每条 2-4 句,附带完整来源链接。
邮件发送 — QQ 邮箱 SMTP,正文即邮件内容。脚本内置自动归档,每次发送成功自动存入本地存档。
微信保底 — 邮件成功也补发微信,确保至少一个通道能到。
搭建心得
整个系统从想法到稳定跑起来,Nanobot 的文件即协议范式是核心支撑。
具体来说,这几个点比较关键:
SKILL.md 当执行规范写。 天气 API 的对接逻辑、邮件发送的 Python 脚本、定时任务的触发条件——这些东西我直接写进 SKILL.md,AI 按文档执行。不需要另外维护一份"开发文档",SKILL.md 既是需求文档也是执行规范。
MEMORY.md 管长期状态。 话题轮换规则、日记驱动逻辑、早报存档路径、发送策略(邮件优先/微信保底)——全部落在 MEMORY.md 里。每次生成前 AI 先读 MEMORY,不需要我在对话里重复交代上下文。
cron 技能做定时触发。 一条命令设好每日 7:40,剩下的不用管。
踩坑:微信通道不发附件。 早期设计是邮件和微信各发一份完整早报,结果发现微信通道不转发附件数据。后来改成邮件发正文、微信发摘要 + 提示查看邮件。通道能力差异要在设计阶段就确认,不然回头改很麻烦。
踩坑:话题重复。 初期没有轮换逻辑,AI 连续三天搜同一个话题。加了"检查前 3 天存档、同一话题不超 3 天"的硬约束后才解决。本质上是把"编辑判断"从隐式期望变成了显式规则。
致谢
结语
从一个念头到每天准时收到的邮件,无需人手敲代码,这正是证明当下是非码农人士学习AI的好机会,AI智能体是放大每个人优势的好工具。
如果你也在用 Nanobot 捣鼓什么东西,欢迎交流——互相学习比单打独斗快得多。
Building a Morning News Briefing with Nanobot: Workflow Breakdown & Lessons Learned
Every morning at 7:40, a news briefing lands in my inbox.
It covers AI product trends, current affairs, local culture, health science, and content creation. Each item comes with context, relevance analysis, and an action entry point. The footer carries weather and a daily schedule reminder.
It's not an aggregator. It's more like an editor who knows what you're focused on right now — before each generation, the AI reads my last two days of journal entries, extracts my emotional state and current interests, and decides what to search. Topic selection is diary-driven, not a fixed keyword matrix.
Here's the full workflow, plus the rough edges I hit along the way.
Workflow (10 Steps)
Weather — Open-Meteo free API for Shanghai conditions, auto-formatted to natural language with emoji.
Diary-driven topic selection — Read last two days of journal → extract current state & interests → determine search topics. The diary decides, not a preset topic pool.
Topic rotation — Check previous 3 days of archives. No topic dominates for more than 3 consecutive days. Minimum 5 distinct topics daily.
Multi-source search — Tavily scans the web, prioritizing direct sources like SSPAI, Guokr, QbitAI, and MedSci.
Product Hunt trends — Daily PH hot list from decohack.com (4-layer data source fallback), filtered for AI, content tools, and indie dev products, with commentary.
Jike (即刻) community highlights — Trending posts on AI products, content creation, and mental health, manually curated for information value.
Cross-verification — Dates, times, and event schedules require at least two independent sources. Unverifiable items get cut.
Content generation — All results written to fixed-format Markdown, 2-4 sentences per item with full source links.
Email delivery — QQ Mail SMTP, Markdown body as email content. Automatic archiving on every successful send.
WeChat fallback — WeChat push as backup, ensuring delivery through at least one channel.
Build Reflections
Nanobot's file-as-protocol paradigm was the backbone that made this system possible from idea to stable daily output.
A few points worth highlighting:
SKILL.md as executable spec. Weather API integration logic, email-sending Python script, cron trigger conditions — all written directly into SKILL.md. The AI follows it as both requirements doc and execution spec. No separate "developer documentation" to maintain.
MEMORY.md for long-term state. Topic rotation rules, diary-driven logic, archive paths, delivery strategy (email first / WeChat fallback) — all live in MEMORY.md. The AI reads MEMORY before each generation. I never need to re-state context in conversation.
Built-in cron for scheduling. One command sets the daily 7:40 trigger. Done.
Lesson: WeChat channel won't forward attachments. Early design planned full briefings to both email and WeChat. Reality: the WeChat channel doesn't forward file attachments. Reworked to email full content + WeChat summary with a "check your inbox" nudge. Channel capability differences need to be verified at design stage, not discovered during refactoring.
Lesson: Topic repetition. Without rotation logic, the AI happily searched the same topic three days straight. Fixed by adding a hard constraint: check the last 3 days of archives, no topic exceeds 3 consecutive days. In essence: turning implicit editorial judgment into explicit rules.
Acknowledgments
Closing
The gap between an idea and a briefing that lands in your inbox on time every morning isn't coding ability. It's proof that now is a great time for non-programmers to learn AI — AI agents are tools that amplify everyone's strengths.
If you're tinkering with Nanobot too, let's talk — learning from each other beats going it alone.
AI-assisted draft, human-reviewed.
All reactions