新闻热点简报流水线
用途
把「多源检索 → 结构化简报 → 可视化网页 → 发布上线 → 邮件推送」这一整套动作固化下来,一次调用产出可直接分发、可长期订阅的成品。
技能本身不绑定任何领域。关注领域、地域侧重、人物线索等全部由调用方在触发时作为参数传入。领域缺失时,先向用户询问确认,不要自行假设。
触发方式
用户表述大致落在这些形态时使用本技能:
- 「生成一份新闻热点简报」「给我出一份今日简报」「XX 领域动态汇总」「热点追踪报告」
- 「按我关注的领域做一份简报,不低于 N 条」
- 「把简报做成网页并发我邮箱」「设置每天定时推送简报」
- 承接上一次简报的续期需求:「再出一期」「更新下一期」
第一步:确认参数
执行前先确定以下参数。已明确的不再追问;缺失的必须补齐,尤其领域不能留空。
| 参数 | 说明 | 默认 |
|---|---|---|
| 关注领域 | 用户关心的领域清单,必填,由用户提供 | 无默认,必须询问 |
| 地域侧重 | 需要优先覆盖的省市或区域,可空 | 无 |
| 人物线索 | 需要重点追踪的人物类型或具体名单,可空 | 无 |
| 期次标识 | 如「早报」「晚报」「周报」,影响文件命名与邮件标题 | 按运行时段自动判断 |
| 事件条数下限 | 简报事件总数下限 | 50 条 |
| 输出目录 | 简报与站点文件的落盘位置 | 当前工作目录 |
| 推送渠道 | 是否发布上线、是否发邮件、收件人邮箱 | 按用户要求 |
期次自动判断规则:运行时间在上午(约 12:00 前)→ 本期为「早报」,聚焦前一晚至今晨的新增动态;运行在下午或晚间 → 「晚报」,侧重当日白天动态与收盘数据。用户显式指定期次时以用户为准。
第二步:多源并行检索
同时启动以下三条检索线,不要串行等待:
线 1 — 社媒热搜(调用 热点话题追踪 技能)
抓取微博、百度、今日头条、抖音、知乎等平台实时榜单,用于捕捉传播侧正在发酵的话题,以及可能形成舆论关注的人物与事件。
线 2 — 权威官媒(调用 央视新闻助手 技能)
抓取央视新闻「推荐」「联播」「24小时」「传习录」等栏目。这是政策类、时政类事实的基准信源,优先级高于社媒转述。
线 3 — 定向网络检索(WebSearch)
按用户提供的领域补位检索,建议覆盖:
- 国家部委 / 省市政府的政策发布、法规、规划、会议部署
- 宏观数据(CPI / PPI / 金融数据 / 进出口 / 投资消费等)
- 资本市场当日或最近收盘数据、大宗商品价格
- 用户指定地域的省级政务、经济、文化动态
- 用户关注领域内的企业动向、技术突破、监管变化
时效规则:聚焦最近 24~48 小时。若时效内事件不足以支撑条数下限,可回溯至近一周内仍有延续性的事件,但必须标注实际发生时间,并在简报抬头说明覆盖时段。
检索纪律:
- 每条素材记录来源媒体/机构名称与发布时间点。
- 数据必须写明具体数值与统计时点。
- 存在争议的事件,同时记录正反双方立场。
- 不得为凑条数编造事件、数据或引语。素材不足时如实说明缺口,而非补假。
第三步:撰写 Markdown 简报
按 references/brief-structure.md 中定义的模块与条数要求组织内容。文件名规范:
新闻热点简报_<YYYY-MM-DD>_<期次>.md
期次为「早报」「晚报」等;若用户不需要区分期次,省略期次段。同日多期必须带期次标识,避免互相覆盖。
写作要点:
- 除「快速短讯」外,每条事件须齐备 核心事实(Who/What/When/Where)+ 为什么重要(Why now)+ 一句话展望(What's next) 三要素。
- 政策类条目额外标注 发布机构 / 政策层级(国家·部委·省市)/ 政策性质(鼓励·限制·规范)。
- 注重事件之间的传导关系,不做平铺堆砌。例如国际价格变动如何传导到国内产业链、政策调整如何影响特定行业。
- 每条注明来源与发生时间。
- 语言用书面语,流畅易懂;专业术语首次出现时给一句解释。
- 每段开头用一句话概括核心,便于快速浏览。
第四步:生成可视化 HTML
基于 assets/brief-template.html 生成同名 .html,与 Markdown 内容一致。
模板使用方式:
1. 整份复制 assets/brief-template.html
2. 替换全部 {{PLACEHOLDER}}(共 13 个,模板头部注释有完整清单),不得残留任何 {{ }} 标记
3. {{CONTENT}} 处填入各板块 <section>,结构照 references/html-components.md 的示例套用
4. 校验:<section> 与 </section> 数量一致、<body>/<main>/<header>/<nav> 均成对闭合
完整设计规范见 references/html-design-spec.md。
核心要求(用户既定偏好,勿擅自更改):
- 主题色:蓝色系。色阶
#0b2559 → #12367c → #1a4bab → #2563eb → #3b82f6,辅以#0ea5e9(sky)与#22d3ee(cyan)做渐变过渡。全套用 CSS 变量管理。 - 卡片式布局:每个板块卡片化。「今日头条」用大卡突出;政策类卡片顶部带三色标签(机构 / 层级 / 性质);「国内要闻」用紧凑小卡;「市场数据」用数据卡。
- 渐变 + 弥散阴影:头部为径向光斑 + 135° 主渐变 + 网格纹理多层叠加;卡片阴影用双层负扩散
0 24px 48px -28px rgba(26,75,171,.30)+0 8px 20px -12px rgba(15,28,51,.10),hover 扩散到-40px形成上浮柔光。 - 数据配色:涨红跌绿(中文财经习惯)。
- 交互:顶部阅读进度条、sticky 导航滚动高亮、卡片错峰入场、导航平滑滚动。
- 不确定性内容:用琥珀色系(
#b45309/#fff8ed)单独呈现,与其他板块形成视觉反差。 - 单文件、无外部依赖,样式与脚本内联,确保可直接分享或投屏。
- 抬头用统计卡呈现「重大新闻事件数 / 板块数 / 用户侧重地域相关线索数 / 深度视角数」,让人一眼把握本期体量。
脚本化实现要点(踩过的坑,2026-09-11 实测)
推荐用本技能自带的生成脚本 scripts/gen_brief.py(读 Markdown → 分节 → 卡片渲染 → 输出单文件 HTML),
比手写 HTML 更稳、可复用:
python scripts/gen_brief.py <输入.md> [输出.html]
不传参时回落到脚本内 SRC / OUT 两个默认路径。运行后会打印识别到的板块清单,
便于确认分节是否正常。两个必踩的坑:
- Python 三引号模板里禁用
%格式化。CSS 中大量出现width:100%之类的%,
用html_out % (...)会抛ValueError: unsupported format character '%'。
解法:模板中改用@@TOTAL@@/@@NAV@@/@@BODY@@之类占位符,最后统一.replace()。 - 列表形式的块也要做 label → class 映射。Markdown 里
- **为什么重要**:…这类条目
若解析器只在「段落分支」判断核心事实,会把为什么重要/一句话展望
全部渲染成blk fact,视觉层级丢失。列表分支必须同样按 label 分流到
fact/why/out。 - 「按行转列表」的分节末尾不能挂散行。
快速短讯/不确定性清单这类分节由解析器
逐行转成<li>,任何不以###开头的行都会被当成一条列表项。若把免责声明、版权行
等> **…**引用块放在文末,它会被渲染成第 N+1 条列表项(曾把 7 条不确定性渲染成 8 条)。
解法:免责声明写进文首头部引用块,不要放文末;文末最后一节永远是列表分节本身。
校验方法:数一下ol.quick/ol.uncertain里的<li>数量,必须与源 Markdown 的编号行数相等。
生成后必做的静态校验(agent-browser 不可用时的替代方案):
| 检查项 | 方法 | 通过标准 |
|---|---|---|
| 残留 Markdown | 正则搜 \*\* / ^### / ^- / ^\| / ^> |
0 命中 |
| class 未定义 | 用到的 class 集合 − CSS 中定义的 class 集合 | 空集 |
| 标签配对 | 逐标签统计 <tag 与 </tag> |
数量相等 |
| 块类型分布 | 统计各板块 blk fact / blk why / blk out |
三者均等于该板块卡片数 |
| 涨跌配色 | 统计 class="up" / class="down" |
均 > 0 |
第五步:发布上线(按需)
用户要求上线时执行:
- 将 HTML 复制为站点目录入口:
<输出目录>/site/index.html - 调用
workbuddy_sites_deploy发布该目录
-directory:站点目录绝对路径
-language:static
-appName:简短的中文应用名
-userAskedToPublish:仅在用户本轮明确要求发布时置true - 记录返回的
shareLink,在最终回复中作为「分享链接」呈现
注意:
- 单独建 site 目录的目的,是避免把工作笔记等无关文件一并上传。
- 同一目录重新发布会复用同一链接,线上内容被替换。用户未在本轮明确要求发布时,不得擅自发布。
- 每次成功后按返回的 manageGuidance 提示用户管理入口。
第六步:邮件推送(按需)
用户要求发邮件时执行:
- 调用
agent_mail_upload_attachment上传本期.md文件(绝对路径),取得file_id。 - 调用
mcp__agent-mail__SendMessage:
-to:用户邮箱
-subject:【新闻热点简报】<YYYY-MM-DD> <期次>
-body_format:HTML
-body:以蓝白卡片风格排版的摘要邮件——本期日期与时段、今日头条要点摘要(每条 1~2 句)、当日关键市场数据、用户侧重地域的相关线索汇总、在线分享链接(有则附)、结尾注明由自动化任务生成
-file_refs:引用上一步的file_id
-skip_confirmation:用户事先明确授权长期自动发送时置true;否则留空,按工具返回的确认要求向用户确认后再发 - 邮件正文风格与 HTML 简报保持一致的蓝色系,维持品牌感统一。
⚠️ 发送工具不可用时的处理(2026-09-11 实测)
agent_mail_upload_attachment(上传附件)与发送工具可用性相互独立:前者可能正常返回
file_id,而 mcp__agent-mail__SendMessage 并未出现在当前会话的工具索引中,调用时报
Tool not available in the current environment or configuration。
出现该情况时按以下顺序处理,不要伪造发送成功:
- 依次尝试命名变体
mcp__agent-mail__SendMessage→mcp__agentmail__SendMessage→
agent_mail_send_mail(历史上本产品用过不同命名)。 - 仍不可用则停止重试(累计不超过 2 次),保留已生成的
.md/.html与已上线的站点。 - 在汇报中明确列出:失败环节 = 邮件发送;原因 = 发送工具未注入当前会话;
已完成部分 = 简报 + 站点 + 附件已上传(附file_id)。 - 提示用户排查:到连接器管理页右上角「自定义连接器」入口,确认 Agent Mail 连接器是否
已「信任」启用——连接器显示 connected 不等于其工具已注入会话。
不要把失败原因归结为邮箱配额或收件人问题,也不要用其他渠道代发。
第七步:交付与汇报
完成后向用户汇报以下要点,不铺陈中间过程:
- 本期事件总条数(并确认各板块均达到条数要求)
- 今日头条要点
- 用户侧重地域/人物相关的核心线索
- 线上分享链接(如有)
- 邮件发送结果(如有)
- 需要读者注意的关键判断边界(如某项数据回暖的性质、未经官方确认的传闻等)
第八步(可选):配置定时自动化
用户提出固定周期推送时,用 automation_update 创建任务:
{
"mode": "create",
"name": "<任务名>",
"scheduleType": "recurring",
"rrule": "FREQ=DAILY;BYHOUR=<小时>;BYMINUTE=0",
"status": "ACTIVE",
"cwds": "<输出目录>",
"prompt": "<自包含的完整执行指令>"
}
硬约束:
- rrule 的 BYHOUR 不支持逗号多值。需要多个时间点时,必须拆成多条独立任务,各自绑定一个小时。例如早 9 点 + 晚 9 点 = 两条任务。
- 自动化任务的 prompt 必须自包含:未来运行时看不到本次对话,领域清单、条数要求、文件命名、输出目录、邮箱、设计规范等所有关键信息都要写进 prompt。
- prompt 中不要写时间调度信息(那是 rrule 的职责),只写任务本身。
- 领域说明要写全:用户关注的领域、地域侧重、人物线索、红线约束。
可复用资源
scripts/gen_brief.py— Markdown → 蓝色卡片式 HTML 的生成脚本,命令行传参即可运行references/brief-structure.md— 简报各模块定义、条数要求、三要素写法references/html-design-spec.md— 可视化 HTML 的完整设计规范(色板、渐变、阴影、组件、交互)references/html-components.md— 各板块的真实 HTML 组件片段,生成时照此套用assets/brief-template.html— 可直接套用的 HTML 模板骨架(含全部样式与脚本,13 个占位符)
常见坑
- 模板占位符必须全部替换。生成后搜一下
{{,若有残留会直接在页面上显示出来。 site/index.html单独放。不要把.workbuddy等目录一起发布,否则会把工作笔记传上去。- 多时段定时必须拆任务。
BYHOUR不支持逗号多值,早 9 点 + 晚 9 点 = 两条 automation。 - 同日多期文件名要带期次,否则晚报会覆盖早报。
- 邮件附件用绝对路径上传,拿到
file_id后再引用;否则发送时找不到文件。
执行原则
- 领域由用户定义,技能只提供流程。不要自行假设或固化任何领域。
- 不编造。数据、来源、时间、引语必须可溯。素材不足就说明不足。
- 先给判断,再给依据。汇报时先说结论。
- 区分事实与推断。推断内容必须标注,并纳入「不确定性清单」。
- 涉及争议事件,同时呈现多方立场,不单方面下结论。