首页龙虾技能列表 › News Summary — 新闻摘要

News Summary — 新闻摘要

v1.0.1

用于获取新闻更新、日报简报或了解世界事件。从可靠的国际RSS源获取新闻,并可生成语音摘要。

116· 36,100·448 当前·464 累计·💬 1
by @joargp·MIT-0
下载技能包
License
MIT-0
最后更新
2026/2/27
安全扫描
VirusTotal
无害
查看报告
OpenClaw
可疑
medium confidence
该技能的行为(获取RSS源和调用OpenAI TTS端点)与其描述相符,但运行指令引用未在清单中声明的API密钥($OPENAI_API_KEY),且技能的源/主页未知 — 这些不匹配之处值得谨慎对待。
评估建议
该技能似乎做了它所声称的(拉取RSS源并总结),但运行指令使用$OPENAI_API_KEY调用OpenAI TTS API,而技能元数据未声明任何所需的凭据。安装或启用前,请考虑:- 是否信任这个未知的技能作者?没有主页或源代码列出。- 如果提供OpenAI API密钥,技能将发送总结文本到api.openai.com;如果可能,请使用具有有限范围/计费控制的专用密钥。- 请作者更新清单以声明所需的环境变量(OPENAI_API_KEY),使其权限透明。- 如果运行它,请注意它将写入/tmp/news.mp3;在临时文件和网络访问可接受的环境中运行。- 如果需要额外的谨慎,请在沙盒中(手动使用curl获取源并生成TTS)而不是授予技能运行时访问您的凭据。修复缺失的OPENAI_API_KEY声明并验证作者/源后,该技能将对其目的保持一致。...
详细分析 ▾
用途与能力
名称/描述(新闻摘要 + 可选语音)与运行指令一致:SKILL.md 获取RSS源(BBC、路透社、NPR、阿尔杰齐拉),解析标题,总结,并可选调用TTS端点。列出的源和解析步骤与声明的目的一致。
指令范围
指令主要针对获取和总结RSS源,但它们明确调用使用未在技能元数据中声明的环境变量($OPENAI_API_KEY)的OpenAI TTS API。SKILL.md 还写入输出文件(/tmp/news.mp3)。所需凭据的缺失声明是一种不一致,影响运行时行为和隐私期望。
安装机制
仅指令的技能,无安装规格和代码文件 — 低持久性,无安装时下载。这是最低风险的安装机制。
凭证需求
指令要求OpenAI API密钥来生成语音摘要(授权:Bearer $OPENAI_API_KEY),但清单未列出所需的环境变量或主凭据。请求或使用API密钥将用户内容发送到第三方(OpenAI)应明确声明,以便用户可以做出明知的选择。
持久化与权限
该技能不请求始终在线的存在,不安装或修改其他技能,并且没有安装钩子。自动调用(disable-model-invocation: false)是平台默认值,并非此处的特殊特权。
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv1.0.12026/1/6

添加了详细的新闻来源和RSS源使用文档,包括BBC、路透社、NPR和阿尔杰齐拉的`curl`命令示例。- 澄清了获取、解析和总结新闻标题的工作流程,无论是作为文本还是使用OpenAI TTS的短音频。- 包括新闻总结的示例输出格式,按主题分组。- 提出了最佳实践:简洁报道(5-8个故事)、平衡的观点和引文指南。- 没有对技能逻辑进行功能性更改 — 仅文档。

● 无害

安装命令 点击复制

官方npx clawhub@latest install news-summary
镜像加速npx clawhub@latest install news-summary --registry https://cn.clawhub-mirror.com

技能文档

概览

从可靠的国际源通过RSS源获取和总结新闻。

RSS源

BBC(主要)

# 世界新闻
curl -s "https://feeds.bbci.co.uk/news/world/rss.xml"
# 顶部故事
curl -s "https://feeds.bbci.co.uk/news/rss.xml"
# 业务

curl -s "https://feeds.bbci.co.uk/news/business/rss.xml" # 技术

curl -s "https://feeds.bbci.co.uk/news/technology/rss.xml"

路透社

# 世界新闻
curl -s "https://www.reutersagency.com/feed/?best-regions=world&post_type=best"

NPR(美国视角)

curl -s "https://feeds.npr.org/1001/rss.xml"

阿尔杰齐拉(全球南视角)

curl -s "https://www.aljazeera.com/xml/rss/all.xml"

解析RSS

提取标题和描述:
curl -s "https://feeds.bbci.co.uk/news/world/rss.xml" | 
  grep -E "|<description>" | 
  sed 's/<[^>]<em>>//g' | 
  sed 's/^[ 	]</em>//' | 
  head -30
</code></pre>
<h2>工作流</h2>
<h3>文本总结</h3>
<ul><li>获取BBC世界头条</li>
<li>可选补充路透社/NPR</li>
<li>总结关键故事</li>
<li>按区域或主题分组</li>
</ul><h3>语音总结</h3>
<ul><li>创建文本总结</li>
<li>使用OpenAI TTS生成语音</li>
<li>作为音频消息发送</li>
</ul><pre><code>curl -s https://api.openai.com/v1/audio/speech 
  -H "Authorization: Bearer $OPENAI_API_KEY" 
  -H "Content-Type: application/json" 
  -d '{ "model": "tts-1-hd", "input": "<新闻总结文本>", "voice": "onyx", "speed": 0.95 }' 
  --output /tmp/news.mp3
</code></pre>
<h2>示例输出格式</h2>
<pre><code>📰 新闻总结 [日期]
🌍 世界 - [头条1] - [头条2]
💼 业务 - [头条1]
💻 技术 - [头条1]
</code></pre>
<h2>最佳实践</h2>
<ul><li>保持总结简洁(5-8个顶部故事)</li>
<li>优先突发新闻和主要事件</li>
<li>对于语音:约2分钟内</li>
<li>平衡观点(西方 + 全球南)</li>
<li>如果询问则引用来源</li></ul></div><div id="doc-en" class="skill-content lang-en" style="display:none"><h2>Overview</h2><p>Fetch and summarize news from trusted international sources via RSS feeds.</p><h2>RSS Feeds</h2><h3>BBC (Primary)</h3>
<pre><code># World news
curl -s "https://feeds.bbci.co.uk/news/world/rss.xml"</p><p># Top stories
curl -s "https://feeds.bbci.co.uk/news/rss.xml"</p><p># Business
curl -s "https://feeds.bbci.co.uk/news/business/rss.xml"</p><p># Technology
curl -s "https://feeds.bbci.co.uk/news/technology/rss.xml"
</code></pre><h3>Reuters</h3>
<pre><code># World news
curl -s "https://www.reutersagency.com/feed/?best-regions=world&post_type=best"
</code></pre><h3>NPR (US perspective)</h3>
<pre><code>curl -s "https://feeds.npr.org/1001/rss.xml"
</code></pre><h3>Al Jazeera (Global South perspective)</h3>
<pre><code>curl -s "https://www.aljazeera.com/xml/rss/all.xml"
</code></pre><h2>Parse RSS</h2><p>Extract titles and descriptions:
<pre><code>curl -s "https://feeds.bbci.co.uk/news/world/rss.xml" | \
  grep -E "<title>|<description>" | \
  sed 's/<[^>]<em>>//g' | \
  sed 's/^[ \t]</em>//' | \
  head -30
</code></pre><h2>Workflow</h2><h3>Text summary</h3>
<ul><li>Fetch BBC world headlines</li>
<li>Optionally supplement with Reuters/NPR</li>
<li>Summarize key stories</li>
<li>Group by region or topic</li></ul><h3>Voice summary</h3>
<ul><li>Create text summary</li>
<li>Generate voice with OpenAI TTS</li>
<li>Send as audio message</li></ul><pre><code>curl -s https://api.openai.com/v1/audio/speech \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "tts-1-hd",
    "input": "<news summary text>",
    "voice": "onyx",
    "speed": 0.95
  }' \
  --output /tmp/news.mp3
</code></pre><h2>Example Output Format</h2><pre><code>📰 News Summary [date]</p><p>🌍 WORLD
<ul><li>[headline 1]</li>
<li>[headline 2]</li></ul><p>💼 BUSINESS
<ul><li>[headline 1]</li></ul><p>💻 TECH
<ul><li>[headline 1]</li>
</ul></code></pre><h2>Best Practices</h2><ul><li>Keep summaries concise (5-8 top stories)</li>
<li>Prioritize breaking news and major events</li>
<li>For voice: ~2 minutes max</li>
<li>Balance perspectives (Western + Global South)</li>
<li>Cite source if asked</li>
</ul></div></div>
<div style="text-align:center;padding:var(--spacing-4);font-size:12px;color:var(--color-gray-400)">数据来源:<a href="https://clawhub.ai/joargp/news-summary" target="_blank" style="color:var(--color-gray-400)">ClawHub ↗</a> · 中文优化:龙虾技能库</div>
</section>
<section class="cta-card" aria-label="定制服务">
  <div style="display:flex;align-items:center;gap:16px;flex-wrap:wrap">
    <div style="flex:1;min-width:280px">
      <div style="font-size:var(--font-size-md);font-weight:700;color:var(--color-text);margin-bottom:6px"><svg width="1em" height="1em" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="vertical-align:-0.125em"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"/></svg> OpenClaw 技能定制 / 插件定制 / 私有工作流定制</div>
      <p style="font-size:var(--font-size-sm);color:var(--color-warning);margin-bottom:0;line-height:1.5"><svg width="1em" height="1em" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="vertical-align:-0.125em"><path d="M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/><line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/></svg> 免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制</p>
    </div>
    <a href="/custom" class="btn-cta">了解定制服务</a>
  </div>
</section>
</article>
<script>
function switchLang(lang){
  document.querySelectorAll('.i18n').forEach(function(el){
    var v=el.getAttribute('data-'+lang);
    if(v)el.innerHTML=v;
  });
  document.querySelectorAll('.lang-cn').forEach(function(el){el.style.display=lang==='cn'?'block':'none'});
  document.querySelectorAll('.lang-en').forEach(function(el){el.style.display=lang==='en'?'block':'none'});
  document.querySelectorAll('.sk-lgb').forEach(function(b){b.classList.remove('sk-lga')});
  var btn=document.getElementById('lang-'+lang);if(btn)btn.classList.add('sk-lga');
}
</script>
<style>
.sk-hero{border:1px solid var(--color-border);border-radius:12px;padding:22px;background:var(--color-bg-card);margin-bottom:16px;box-shadow:0 4px 12px rgba(0,0,0,.08)}
.sk-hero-main{display:flex;gap:24px}.sk-hero-left{flex:1;min-width:0}.sk-hero-right{width:200px;flex-shrink:0;display:flex;flex-direction:column;gap:10px}
.sk-tr{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:4px}.sk-t{font-size:20px;font-weight:700;margin:0;line-height:1.3}
.sk-d{font-size:14px;color:var(--color-text-secondary);line-height:1.6;margin:8px 0 12px}
.sk-sr{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;color:var(--color-text-secondary)}.sk-dot{color:var(--color-gray-400);opacity:.5}
.sk-au{font-size:13px;color:var(--color-text-muted);margin-top:4px}.sk-au a{color:var(--color-primary)}
.sk-lbox{font-size:13px;color:var(--color-text-secondary)}.sk-lbl2{font-size:11px;font-weight:600;color:var(--color-text-muted);margin-bottom:2px}
.sk-bdl{display:block;text-align:center;min-height:48px;line-height:20px;border-radius:12px;font-size:1.05rem;font-weight:600;padding:0.75rem 2rem;transition:background 0.2s}
.sk-bdl:hover{text-decoration:none;color:#fff;background:#333}
.btn--dark.sk-bdl{background:#1a1a1a;color:#fff;border:none}
.btn--dark.sk-bdl:hover{background:#333;color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,0.15)}
.btn--dark.sk-bdl:active{transform:translateY(0);box-shadow:none}
[data-theme="dark"] .btn--dark.sk-bdl{background:#e0e0e0;color:#1a1a1a}
[data-theme="dark"] .btn--dark.sk-bdl:hover{background:#ccc;color:#1a1a1a;box-shadow:0 4px 12px rgba(255,255,255,0.08)}
[data-theme="dark"] .btn--dark.sk-bdl:active{background:#bbb;box-shadow:none}
.sk-sc{border:1px solid var(--color-border);border-radius:12px;padding:16px;margin-bottom:16px;background:var(--color-bg-card)}
.sk-sc--safe{border-left:4px solid #67C23A}
.sk-sc--suspicious{border-left:4px solid #E6A23C}
.sk-sc--dangerous{border-left:4px solid #F56C6C}
.sk-sch{font-size:15px;font-weight:700;margin-bottom:12px}
.sk-scr{display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--color-gray-100);border-radius:8px;margin-bottom:8px}
.sk-scw{font-size:13px;font-weight:600;min-width:120px}.sk-scs{font-size:13px;font-weight:700}.sk-scl{font-size:12px;color:var(--color-primary);margin-left:auto}
.sk-scsm{font-size:13px;color:var(--color-text-secondary);line-height:1.6;padding:8px 12px;background:var(--color-gray-100);border-radius:8px;margin-bottom:8px}
.sk-scd{margin-top:4px}.sk-scd summary{cursor:pointer;color:var(--color-primary);font-size:13px;font-weight:600;padding:4px 0}
.sk-dm{padding:8px 12px;background:var(--color-gray-100);border-radius:8px;font-size:13px;margin-bottom:4px}
.sk-adv{margin-top:8px;padding:12px;background:#FDF6EC;border:1px solid #FFEEBA;border-radius:8px}.sk-adv ol{margin:4px 0 0 16px;font-size:12px;color:var(--color-text-secondary);line-height:1.8}
.sk-ig{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-bottom:16px}
.sk-ib{border:1px solid var(--color-border);border-radius:12px;padding:16px;background:var(--color-bg-card)}.sk-ib h3{font-size:14px;font-weight:700;margin:0 0 12px}
.sk-lic-desc{font-size:12px;color:var(--color-text-secondary);line-height:1.5;margin:8px 0 0}
.sk-ii{font-size:13px;margin-bottom:4px;display:flex;align-items:center;gap:8px}.sk-il{color:var(--color-text-muted);min-width:50px;flex-shrink:0;font-size:12px}
.sk-ii code{background:var(--color-gray-100);padding:1px 6px;border-radius:4px;font-size:12px}
.sk-cm{font-family:monospace;font-size:13px;padding:12px;background:var(--color-gray-100);border:1px solid var(--color-border);border-radius:8px;margin-bottom:8px;cursor:pointer;word-break:break-all;transition:border-color 300ms}
.sk-cm:hover{border-color:var(--color-primary)}.sk-cl{font-size:11px;font-weight:600;color:var(--color-text-muted);display:block;margin-bottom:2px}
.sk-cma{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}
.sk-cnn{background:#FDF6EC;border:1px solid #FFEEBA;border-radius:12px;padding:16px;margin-bottom:16px}.sk-cnn h3{font-size:15px;margin:0 0 8px}.sk-cnn p{font-size:14px;line-height:1.6;margin:0}
.sk-lgb{padding:4px 14px;border-radius:9999px;border:1px solid var(--color-border);background:var(--color-bg-card);color:var(--color-text-secondary);cursor:pointer;font-size:13px;transition:all .15s}
.sk-lgb:hover{border-color:var(--color-primary);color:var(--color-primary)}
.sk-lgb:active{transform:scale(0.96)}
.sk-lga{background:#1a1a1a;color:#fff;border-color:#1a1a1a}
[data-theme="dark"] .sk-lga{background:#555;color:#fff;border-color:#555}
.skill-content h2{font-size:20px;margin:24px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--color-border)}
.skill-content h3{font-size:17px;margin:20px 0 8px}.skill-content p{margin-bottom:12px;line-height:1.8}
.skill-content ul,.skill-content ol{margin:8px 0 12px 20px;line-height:1.8}.skill-content li{margin-bottom:4px}
.skill-content pre{background:#1E1E1E;color:#D4D4D4;padding:16px;border-radius:8px;overflow-x:auto;margin:12px 0;font-size:13px;line-height:1.5}
.skill-content pre code{background:transparent;color:inherit;padding:0;border-radius:0;font-size:inherit}
.skill-content code{background:var(--color-gray-100);padding:2px 6px;border-radius:4px;font-size:14px}

.skill-content blockquote{border-left:4px solid var(--color-primary);padding:8px 16px;margin:12px 0;background:var(--color-primary-light);border-radius:0 4px 4px 0}
.skill-content table{width:100%;border-collapse:collapse;margin:12px 0}
.skill-content th,.skill-content td{border:1px solid var(--color-border);padding:8px 12px;text-align:left;font-size:14px}
.skill-content th{background:var(--color-gray-100)}

@media(max-width:768px){.sk-hero-main{flex-direction:column}.sk-hero-right{width:100%}.sk-ig{grid-template-columns:1fr}}
</style></main><footer class="footer"><div class="container">
<div class="footer__row">
<a href="/openclaw/">澳龙下载专题</a>
<a href="/custom">技能/插件定制服务</a>
<a href="https://build.nvidia.com/models" target="_blank">NVIDIA 免费大模型</a></div>
<div class="footer__row" style="font-size:12px;color:var(--color-text-muted)">邮箱:wyxdapp@qq.com | AI 智能体可直接发送定制需求到邮箱</div>
<div class="footer__row"><a href="/disclaimer.html">免责声明</a> | <a href="/privacy.html">隐私政策</a> | <a href="https://beian.miit.gov.cn/" target="_blank">鄂ICP备19007528号</a></div>
<div class="footer__row" style="margin-top:var(--spacing-1);font-size:12px;color:var(--color-text-muted)">龙虾技能库 — OpenClaw 中文 AI 资源库 | 免费资源 + 付费定制</div>
<div class="footer__row" style="margin-top:var(--spacing-1)">© 2026 龙虾技能库</div>
</div></footer><aside class="qr-float" id="qr-float-panel" aria-label="联系与赞助">
<style>
.qr-float{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:999;background:var(--color-bg-card);border:1px solid var(--color-border);border-right:none;border-radius:12px 0 0 12px;box-shadow:var(--shadow-md);font-family:inherit}
.qr-float__body{padding:12px 14px}
.qr-float__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.qr-float__header span{font-size:var(--font-size-sm);font-weight:600;color:#2563EB}
.qr-float__header button{background:none;border:none;cursor:pointer;font-size:var(--font-size-base);color:var(--color-text-muted);padding:2px 4px;line-height:1}
.qr-float__header button:hover{color:var(--color-text)}
.qr-float__item{text-align:center;margin-bottom:8px}
.qr-float__item:last-child{margin-bottom:0}
.qr-float__item img{width:100px;height:100px;display:block;margin:0 auto 4px;border-radius:6px}
.qr-float__item span{font-size:var(--font-size-xs);color:var(--color-text-muted)}
.qr-float__trigger{display:none;position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:999;align-items:center;justify-content:center;width:40px;height:40px;background:var(--color-bg-card);border:1px solid var(--color-border);border-right:none;border-radius:12px 0 0 12px;box-shadow:var(--shadow-md);cursor:pointer;color:#2563EB;font-size:20px}
.qr-float__trigger:hover{background:var(--color-bg-hover,var(--color-bg-card))}
@media(max-width:768px){
.qr-float__body{display:none}
.qr-float__trigger{display:flex}
.qr-float__item img{width:80px;height:80px}
}
</style>
<div class="qr-float__body" id="qr-float-body">
<div class="qr-float__header">
<span>联系 & 赞助</span>
<button onclick="document.getElementById('qr-float-body').style.display='none';document.getElementById('qr-float-trigger').style.display='flex'" aria-label="收起面板">✕</button>
</div>
<div class="qr-float__item"><img src="/image/erweima.png" alt="站长微信二维码" loading="lazy"><span>关注站长微信</span></div>
<div class="qr-float__item"><img src="/image/weixinpay.png" alt="微信赞助收款码" loading="lazy"><span>微信赞助</span></div>
<div class="qr-float__item"><img src="/image/alipay.png" alt="支付宝赞助收款码" loading="lazy"><span>支付宝赞助</span></div>
</div>
<button class="qr-float__trigger" id="qr-float-trigger" onclick="document.getElementById('qr-float-body').style.display='block';document.getElementById('qr-float-trigger').style.display='none'" aria-label="展开联系与赞助面板"><svg width="1em" height="1em" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="vertical-align:-0.125em"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg></button>
</aside></body></html>