wbl-ai-report
定位
中国AI企业系周报自动化技能。每周一上午9点自动触发,收集上周(周一至周日)腾讯、阿里、字节、百度、DeepSeek、Kimi、智谱AI、MiniMax、华为等企业系的最新AI进展,输出一份精简干练的HTML格式调研报告。
用户画像
- AI应用实践探索爱好者
- 产品经理
- 关注AI行业动态,需要高效获取权威信息
输出目录管理(动态配置)
本技能不硬编码输出目录,支持分享给其他用户使用。输出目录通过"首次询问 + 后续记忆"机制管理:
首次使用
- 检测输出目录中的
generate_log.json是否存在,或是否包含output_dir字段 - 如果不存在或无
output_dir字段,主动询问用户:「请指定周报生成的输出目录」 - 用户指定后,检查目录是否存在:
- 目录已存在:直接使用
- 目录不存在:告知用户目录不存在,提供两个选项:
- 选项A:由智能体自动创建目录(默认推荐路径:
D:\AI周报生成) - 选项B:用户手动创建后重新指定路径
- 选项A:由智能体自动创建目录(默认推荐路径:
- 目录确认后,将路径写入
generate_log.json的output_dir字段 - 继续执行报告生成流程
后续使用
- 读取
generate_log.json中的output_dir字段 - 直接使用该目录,不再询问
- 如果该目录已被删除或不可访问,回到"首次使用"流程重新询问
更换输出目录
当用户说「更换目录」「修改输出路径」「更改输出位置」等指令时:
- 重新询问用户指定新目录
- 同样执行目录存在性检查(同首次使用步骤3)
- 更新
generate_log.json中的output_dir字段 - 后续生成使用新目录
命名规范
- 报告文件命名:
YYYYMMDD_AI周报.html,其中 YYYYMMDD 为生成当天日期(如20260810_AI周报.html) - 生成日志:
generate_log.json存放在用户指定的输出目录中
核心规则
1. 来源管控(红线)
- 仅使用官方渠道:官网、官方微信公众号、官方文档中心、官方开发者社区、官方开源仓库
- 严禁使用第三方媒体报道作为信息来源
- 每条内容只保留一个官方来源链接,优先选择官网 > 文档中心 > 公众号
- 信息来源渠道配置见
channels.json
2. 白名单严格执行(红线)
- 仅输出
channels.json中配置的 9 家企业的动态:腾讯、阿里、字节跳动、百度、DeepSeek、Kimi(月之暗面)、智谱AI、MiniMax、华为 - 来源链接的域名必须匹配该企业在
channels.json中配置的官方渠道域名 - 不在白名单中的企业一律忽略
- 链接域名不匹配任何已配置官方渠道的一律剔除
channels.json是新闻来源的唯一基准,不得自行扩展企业或渠道
3. 链接校验(红线)
每条新闻在写入 HTML 前必须经过校验:
- 可访问性校验:使用
webfetch访问链接,确认返回正常内容(非 404、非超时) - 非首页校验:确认链接指向具体文章/公告页面,而非官网首页或频道列表页
校验结果处理:
- 校验通过:正常展示,标题为可点击链接指向原文
- 校验失败:保留该条目,但按以下方式标记:
- 新闻标题右侧显示浅灰色小标签「原文暂不可达」
- 卡片底部显示来源出处:
来源:{企业名}{渠道类型}(如来源:腾讯官网、来源:百度智能云公众号) - 标题不可点击(不渲染
<a>标签,改为纯文本)
- 推荐阅读专题中的链接同样执行校验,失败时同样标记
4. 时间范围
- 调用
date_calc工具,action: "range", period: "上周"获取上周周一至周日的精确日期 - 仅收集该时间范围内发布的动态,不在范围内的过滤掉
5. 去重机制(生成日志)
- 每次生成报告前,先读取输出目录中的
generate_log.json - 获取上次报告覆盖的时间范围
- 本次报告从上次报告结束日期的次日开始收集,确保不重复、不遗漏
- 如果是首次运行(日志为空),则按"上周"时间范围收集
- 报告生成完成后,立即更新
generate_log.json
6. 企业与内容筛选
- 覆盖企业系:腾讯、阿里、字节、百度、DeepSeek、Kimi(月之暗面)、智谱AI、MiniMax、华为
- 每个企业最多5条消息,正常3条左右
- 无进展则直接过滤,不凑数、不编造
- 内容类型:模型发布/更新、产品上线/升级、重大功能更新、开源动态、组织架构调整、战略合作、API/定价变更
7. 报告格式
- 输出 HTML 格式文件,保存到用户指定的输出目录
- 报告风格:精简、干练、专业,避免冗余
- 结构:
- 报告标题(含时间范围)
- 按企业分模块展示,每条动态含:标题、一句话摘要、发布日期、官方来源链接
- 最后附"推荐阅读学习"专题:从产品经理和AI实践者视角,挑选3-5条最值得关注的内容深入解读
- 视觉风格:参考 Notion/Linear 设计语言,极简、专业、克制(详见模板文件)
工作流程
Step 0: 确定输出目录
- 尝试读取输出目录中的
generate_log.json - 如果文件存在且包含
output_dir字段:- 检查该目录是否可访问
- 可访问 -> 使用该目录,进入 Step 1
- 不可访问 -> 回到首次使用流程
- 如果文件不存在或无
output_dir字段(首次使用):- 询问用户:「请指定周报生成的输出目录」
- 用户指定后,检查目录是否存在
- 目录不存在时,告知用户并提供选项:
- 选项A:智能体自动创建(默认推荐:
D:\AI周报生成) - 选项B:用户手动创建后重新指定
- 选项A:智能体自动创建(默认推荐:
- 目录确认后,创建
generate_log.json并写入output_dir字段
- 记录最终确定的输出目录路径,后续所有步骤使用该路径
Step 1: 读取生成日志,确定时间范围
- 读取
{output_dir}\generate_log.json - 调用
date_calc(action: "range", period: "上周")获取上周日期范围 - 对比日志:如果日志中上周时间范围已存在记录,则使用日志中最后日期的次日作为起点,本周一为终点
- 如果日志为空或无重叠,使用上周日期范围
- 调用
date_calc(action: "now")获取生成当天日期,用于文件命名
Step 2: 加载渠道配置
- 读取技能包内的
channels.json,获取所有企业的官方信息来源渠道 - 提取每家企业的合法域名列表(从 websites、docs、community、github、opensource 等字段提取域名)
- 按企业系逐一搜索,使用
websearch工具,关键词格式:{企业名} {产品名} 更新 {时间范围}
Step 3: 逐企业搜索与筛选
对每个企业:
- 使用
websearch搜索上周动态,优先site:搜索官方域名 - 使用
webfetch获取官方页面内容,验证发布日期在目标时间范围内 - 白名单域名匹配:检查每条候选新闻的来源链接域名是否在
channels.json该企业的合法域名列表中- 匹配通过:保留
- 匹配失败:剔除,不放入报告
- 筛选:保留重大动态,过滤次要更新
- 数量控制:每企业3条左右,最多5条;无进展则跳过
- 去重:与生成日志中已覆盖的内容比对,跳过已报告的
Step 4: 链接校验
对每条通过白名单筛选的新闻:
- 使用
webfetch访问该链接 - 检查返回内容:
- 返回正常且有实质内容 -> 校验通过
- 返回 404 / 超时 / 重定向到首页 / 内容为通用导航页 -> 校验失败
- 记录校验结果(通过/失败),传递给 Step 5
- 推荐阅读专题的链接同样执行校验
Step 5: 生成HTML报告
- 读取技能包内
report_template.html作为模板基础 - 填入企业动态数据
- 对校验通过的新闻:标题渲染为可点击链接(
<a href="..." target="_blank">) - 对校验失败的新闻:
- 标题渲染为纯文本(不含
<a>标签) - 标题右侧添加浅灰色小标签
原文暂不可达 - 卡片底部添加来源标识
来源:{企业名}{渠道类型}
- 标题渲染为纯文本(不含
- 生成"推荐阅读学习"专题,同样按校验结果处理链接
- 获取生成当天日期(YYYYMMDD),命名文件为
YYYYMMDD_AI周报.html - 保存到输出目录
{output_dir}\ - 调用
file_export声明产物
Step 6: 更新生成日志
- 读取输出目录中的
generate_log.json - 确保保留
output_dir字段不变 - 在
records数组中追加本次记录:generate_date: 报告生成日期report_file: 报告文件名date_range: 本报告覆盖的起止日期companies_count: 覆盖企业数量total_items: 动态总条数enterprises: 覆盖的企业名称列表
- 保留历史日志,追加模式
- 写回输出目录
{output_dir}\generate_log.json
generate_log.json 结构规范
{
"output_dir": "用户指定的输出目录绝对路径",
"records": [
{
"generate_date": "2026-08-10",
"report_file": "20260810_AI周报.html",
"date_range": "2026-08-03 to 2026-08-09",
"companies_count": 9,
"total_items": 18,
"enterprises": ["腾讯", "阿里", "字节跳动", "百度", "DeepSeek", "Kimi(月之暗面)", "智谱AI", "MiniMax", "华为"]
}
]
}
output_dir:首次确认后写入,后续保持不变(除非用户要求更换)records:每次生成追加一条记录
文件结构
wbl-ai-report/ # 技能包目录
SKILL.md # 本文件,技能主文档
channels.json # 官方信息来源渠道配置(白名单)
report_template.html # HTML报告模板
{output_dir}\ # 用户指定的输出目录(首次使用时确认)
YYYYMMDD_AI周报.html # 生成的周报文件
generate_log.json # 生成日志(含 output_dir 配置 + 去重记录)
定时任务
- 触发时间:每周一 09:00(Asia/Shanghai)
- cron 表达式:
0 9 * * 1 - 执行内容:自动运行上述完整工作流程(含 Step 0 输出目录检查)
质量标准
- 所有信息必须有官方来源,无来源不编造
- 报告精简干练,每条动态一句话摘要
- 无进展企业不凑数
- 白名单严格执行:非 channels.json 中的企业或渠道一律不收录
- 链接校验必执行:校验失败的条目保留但标记「原文暂不可达」+ 来源出处
- 生成日志确保不重复
- HTML报告视觉专业(Notion/Linear 风格),适合产品经理阅读
- 输出目录动态配置:首次询问、后续记忆,支持用户随时更换
Scan to join WeChat group