Refactor high-complexity React components in Dify frontend. Use when `pnpm analyze-component...
npx skills add zrt-ai-lab/opencode-skills --skill "searchnews"
Install specific skill from multi-skill repository
# Description
当用户要求"搜索新闻"、"查询AI新闻"、"整理新闻"、"获取某天的新闻",或提到需要搜索、整理、汇总指定日期的AI行业新闻时,应使用此技能。
# SKILL.md
name: searchnews
description: 当用户要求"搜索新闻"、"查询AI新闻"、"整理新闻"、"获取某天的新闻",或提到需要搜索、整理、汇总指定日期的AI行业新闻时,应使用此技能。
metadata:
version: "0.4.0"
AI新闻搜索技能 (Ralph Loop 增强版)
概述
此技能用于从多个AI新闻源精确搜索指定日期的新闻,采用 Ralph Loop 模式进行地毯式迭代,确保不留死角。
核心机制 (Ralph Loop)
1. 任务清单 (prd.json)
记录待爬取的源网站及其状态。
- date: 目标日期,格式 YYYY-MM-DD
- keywords_ref: 引用关键词库文件路径(如 references/keywords.md),搜索时加载 10 大分类和 100+ 标签进行筛选
- sources: 每个源包含 name, url, status (pending/done/failed), retry_count (max 3)
2. 退出逻辑 (目标导向)
- 成功退出:当所有
sources状态均为done时,输出<promise>COMPLETE</promise>并立即停止循环。 - 失败容错:单个源抓取失败时,最多尝试 3次。若 3 次均失败,将状态标记为
failed,记录失败原因,跳过该源。 - 高效收工:一旦所有源都处理完毕(状态为
done或failed),立即生成最终日报并交付,不强制跑完预设的最大轮次。
必抓源列表(按优先级排序)
| 优先级 | 源名称 | URL | 说明 |
|---|---|---|---|
| 高 | AIBase日报 | https://news.aibase.com/zh/daily | 每日AI新闻汇总,必抓!内容精炼、覆盖全面 |
| 中 | IT之家AI频道 | https://next.ithome.com/ | 国内科技资讯,AI专栏 |
| 中 | 36氪AI频道 | https://36kr.com/information/AI/ | 创投视角,AI产业报道 |
| 中 | 机器之心 | https://www.jiqizhixin.com/articles | 专业AI媒体,技术深度 |
| 中 | 量子位 | https://www.qbitai.com | AI前沿,产品报道 |
注意:AIBase日报通常在当天发布,内容即为当天新闻汇总,是最高效的信息源。
工作流程
⚠️ 铁律:必须使用 Ralph 脚本启动!
禁止手动乱抓! 必须严格按以下流程执行:
# 第零步:启动 Ralph Loop(必须执行!)
bash .opencode/skills/searchnews/scripts/ralph/ralph.sh 2026-01-19
脚本会自动初始化 prd.json,然后 Agent 按任务清单逐个处理。
第一步:初始化任务清单(由脚本完成)
脚本会在 .opencode/skills/searchnews/scripts/ralph/prd.json 中生成源网站列表,初始状态均为 pending。AIBase日报必须放在第一位,优先抓取。
第二步:地毯式循环搜索
- 读取
prd.json中处于pending状态的源。 - 每处理一个源,必须更新 prd.json 状态(pending → done/failed)。
- 每轮迭代必须写入 progress.txt,记录进度和失败原因。
- 严格校验日期,仅保留目标日期的内容。
- 抓取失败时
retry_count + 1,最多重试3次。
第二点五步:深度检索(重要!)
禁止只抓列表页! 对于筛选出的重要新闻,必须深入到详情页抓取:
1. 从列表页提取新闻详情 URL
2. 逐条访问详情页,获取完整内容
3. 提取关键信息:
- 完整正文(不是摘要)
- 技术细节、数据指标
- 原始来源/论文链接
- 划重点/要点总结
4. 深度检索的新闻质量远高于列表页复制粘贴
示例:AIBase日报列表页只有标题和简介,但详情页有完整的技术解读、数据对比、划重点等深度内容。
第三步:去重与聚合
合并不同来源的相同新闻,保留详情最丰富的版本,合并标注来源。
第四步:输出结构化文档
文件存储在 dailynews/YYYY-MM-DD/YYYY-MM-DD.md(每日独立文件夹)。
输出格式模板(必须严格遵守!)
---
date: YYYY-MM-DD
type: 新闻日报
tags: [AI新闻, 日报]
---
# AI新闻日报 - YYYY-MM-DD
> 日期校验: 已通过 | 仅包含YYYY-MM-DD发布的新闻 | 已去重
---
## 1. 新闻标题
**分类**: 分类标签 | **来源**: 来源网站 | **时间**: YYYY/M/D HH:MM
一句话摘要,概括新闻核心内容。
**详情**:
- 详情要点1(包含具体数据、指标)
- 详情要点2
- 详情要点3
- 详情要点4(可选)
- 详情要点5(可选)
---
## 2. 下一条新闻标题
...
*数据来源: 来源列表 | 整理时间: YYYY-MM-DD*
格式要点
- 每条新闻必须包含:编号标题、分类|来源|时间、摘要、详情要点(3-5条)
- 详情要点必须包含具体数据:金额、百分比、时间节点、技术指标等
- 分类标签参考:AI基础设施、AI产品、投融资、机器人、商业化、AI监管、行业观点、企业战略、AI能力、趣闻等
- 时间格式:精确到分钟(如 2026/1/19 15:28)
- 新闻数量要求:每日至少整理 10-20 条新闻,不得偷懒只抓几条!
第五步:确认完成
当所有源状态均为 done 或 failed 时,输出:
<promise>COMPLETE</promise>
质量要求
- [ ] 必用脚本:必须先执行
ralph.sh初始化,禁止手动乱抓! - [ ] 状态追踪:每处理一个源必须更新
prd.json状态。 - [ ] 进度记录:每轮迭代必须写入
progress.txt。 - [ ] 必抓AIBase:AIBase日报是必抓源,每次整理新闻必须首先访问。
- [ ] 深度检索:禁止只抓列表页!重要新闻必须深入详情页获取完整内容。
- [ ] 全量覆盖:必须尝试清单中所有的源网站。
- [ ] 日期铁律:严禁混入非目标日期的新闻。
- [ ] 标签映射:必须对照 10 大分类进行精准打标。
- [ ] 详情完整:包含标题、摘要、3-5条详情要点、溯源链接、精确时间。
- [ ] 循环退出:所有源 done/failed 后才输出
<promise>COMPLETE</promise>。
⛔ 输出铁律(违反即解雇!)
被剔除的新闻禁止输出!
- 只输出符合日期的新闻:最终日报中只能出现目标日期的新闻
- 剔除的不要提:因日期不符被剔除的新闻,禁止在任何地方输出或提及
- 不要显示剔除过程:不要告诉用户"我剔除了 xx 条"、"以下是被过滤的"等废话
- 静默过滤:日期校验是内部逻辑,用户只需要看到最终结果,不需要知道你筛掉了什么
- 简洁交付:只输出干净的、符合日期的新闻列表,没有任何多余说明
错误示例(禁止!):
以下新闻因日期不符已剔除:
- xxx(1月18日)
- yyy(1月20日)
正确做法:
静默跳过不符合日期的新闻,只输出符合的,一个字都不要多说。
资源引用
- scripts/ralph/ralph.sh - 启动主循环。
- scripts/ralph/prd.json - 动态任务清单。
- scripts/ralph/progress.txt - 迭代进度与重试日志。
- references/keywords.md - 10 大分类 100+ 标签地图。
- templates/ - 视频风格模板库。
第六步:生成新闻视频(可选)
新闻日报整理完成后,可生成AI新闻视频。
6.1 交互流程(必须询问!)
收到"生成新闻视频"请求后,必须依次询问:
问题1:确认日期
生成哪天的新闻视频?
- 今天 (YYYY-MM-DD)
- 昨天 (YYYY-MM-DD)
- 自定义日期
问题2:是否使用风格模板
是否使用提示词库中的风格模板?
- 是,使用模板 (推荐) - 从21种预设风格中选择,风格统一
- 否,自由生成 - 不使用模板,AI自由发挥
如果选择"使用模板",继续问题3;否则跳到问题4
问题3:选择视觉风格(21种)
风格提示词库位置:{prompts_dir}/图片生成风格/AI新闻早报风格/
选择配图风格:
【科技感】
- 默认风格-Dashboard (推荐) - 科技仪表盘,数据可视化
- 赛博未来风 - 霓虹赛博朋克
- 科技媒体封面风 - 新闻媒体封面感
- AI操作系统界面风 - JARVIS控制台风格
- 深色金融终端风 - Bloomberg终端感
- 全息投影风 - 全息科幻
- 量子科幻风 - 量子粒子效果
【简约风】
- 毛玻璃拟态风 - 苹果风毛玻璃
- 信息图表风 - 数据信息图
- 极简信息设计风 - 扁平极简
【特色风】
- 未来报纸头版 - 报纸版式
- 杂志封面风 - 杂志风格
- 漫画分镜风 - 漫画格子
- 太空宇宙风 - 星空宇宙
- 水墨国风 - 中国风水墨
- 复古像素风 - 8bit像素
- 霓虹波普风 - 波普艺术
- 工程蓝图风 - 技术蓝图
- 自然有机风 - 环保自然
- 未来实验室风 - 实验室科研
- 社交媒体爆款风 - 抖音小红书
问题4:生成模式
选择生成模式:
- 完整版(总览+详情)(推荐) - 1张总览图 + N张详情图
- 仅总览 - 只生成1张总览图
- 仅详情 - 只生成N张详情图
问题5:新闻数量(如果超过10条)
日报共有XX条新闻,如何处理?
- 全部生成
- 精选10条 - 自动挑选最重要的
- 精选5条 - 只做头条
6.2 加载并使用风格模板
步骤1:读取模板文件
{prompts_dir}/图片生成风格/AI新闻早报风格/{风格名}.md
步骤2:提取"完整提示词模板"
每个风格文件都包含 ## 完整提示词模板 段落,提取其中的提示词。
步骤3:替换变量
| 变量 | 替换内容 | 示例 |
|---|---|---|
{日期} |
日报日期 | 2026年01月23日 |
{N} |
新闻条数 | 25 |
{新闻列表} |
编号+标题列表 | 1. ChatGPT Atlas更新... |
步骤4:生成总览图
用替换后的提示词调用 image-service:
python .opencode/skills/image-service/scripts/text_to_image.py \
"{替换变量后的完整提示词}" -r 16:9 -o "assets/video/{日期}/00_overview.png"
步骤5:生成详情图
每条新闻单独生成,提示词结构:
AI新闻详情配图 - {风格名}
【新闻标题】{标题}
【新闻要点】
- {要点1}
- {要点2}
- {要点3}
【视觉要求】
- 沿用{风格名}的视觉风格
- 中心突出新闻主题的3D/扁平化插图
- 标题大字清晰,要点用图标化卡片展示
- 底部水印:{your_watermark}
输出尺寸:2560x1440 横版 16:9
6.3 视频生成流程
目录结构
assets/video/{YYYY-MM-DD}/
├── 00_overview.png # 总览图
├── 01_xxx.png # 详情图1
├── 02_xxx.png # 详情图2
├── ...
├── audio/
│ ├── 00_overview.mp3 # 总览配音
│ ├── 01.mp3 # 详情配音1
│ └── ...
├── video.yaml # 合成配置
└── {日期}_ai_news.mp4 # 最终视频
生成命令
# 1. 创建目录
mkdir -p "assets/video/{日期}/audio"
# 2. 并发生成配图(使用 text_to_image)
python .opencode/skills/image-service/scripts/text_to_image.py \
"{风格提示词}" -r 16:9 -o "assets/video/{日期}/00_overview.png"
# 3. 并发生成配音
python .opencode/skills/video-creator/scripts/tts_generator.py \
--text "{配音文本}" \
--voice zh-CN-YunyangNeural \
--output "assets/video/{日期}/audio/XX.mp3"
# 4. 合成视频
python .opencode/skills/video-creator/scripts/video_maker.py \
assets/video/{日期}/video.yaml
6.4 配音规范
| 场景 | 文本模板 |
|---|---|
| 总览 | "AI早报,{日期}。今天共有{N}条AI行业重磅新闻,让我们一起来看看!" |
| 详情 | "第X条,{标题}。{摘要}" |
| 结尾 | 最后一条追加"以上就是今天的AI早报,感谢收看!" |
音色选择:
- zh-CN-YunyangNeural - 男声,新闻播报(推荐)
- zh-CN-YunxiNeural - 男声,阳光活泼
- zh-CN-XiaoxiaoNeural - 女声,温暖自然
6.5 视频配置模板 (video.yaml)
output: {YYYY-MM-DD}_ai_news.mp4
scenes:
- image: 00_overview.png
audio: audio/00_overview.mp3
- image: 01_xxx.png
audio: audio/01.mp3
# ... 依次列出所有场景
6.6 完成后输出
✅ 视频生成完成!
📍 位置:assets/video/{日期}/{日期}_ai_news.mp4
⏱️ 时长:X分X秒
🎬 场景:X个(1总览 + X详情)
🎨 风格:{选择的风格}
是否打开预览?
6.7 注意事项
- 并发生成:配图和配音都要并发,提升效率
- 水印:所有配图底部必须添加水印
- 片尾:视频自动拼接通用片尾
- BGM:自动添加科技风背景音乐
- 比例:所有配图使用 16:9 横版
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.