🧪 Skills
crypto daily report
加密货币日报生成技能。当用户要求生成日报、出日报、发日报、加密新闻日报时激活。按固定板块结构采集数据、处理脱水、排版后分三条消息发送
v1.0.0
Description
name: crypto-daily-report description: 加密货币日报生成技能。当用户要求生成日报、出日报、发日报、加密新闻日报时激活。按固定板块结构采集数据、处理脱水、排版后分三条消息发送到 Telegram 加密新闻 Topic。
加密货币日报 Skill
触发词
"出日报" / "生成日报" / "加密日报" / "日报" / "发日报"
输出目标
Telegram 加密新闻 Topic(threadId: 182747,chatId: 680162114) 分三条消息发送(见【排版规范】)
静默执行原则(重要)
- 执行过程中不向用户输出任何中间状态文字,包括:
- "开始采集数据"、"并行启动所有数据源"
- "数据采集完成,开始组装日报"
- "三条消息字符数均在限制内,开始发送"
- "日报已发送完毕"
- 任何执行进度说明、重点提示、分析总结
- 三条消息发送完毕后,主会话回复仅用 NO_REPLY,不追加任何内容
执行流程
Step 1:并行数据采集(全部同时发起)
快讯网站(主力,用 web_fetch):
- BlockBeats:
https://www.theblockbeats.info/newsflash - Odaily:
https://www.odaily.news/zh-CN/newsflash - PANews:
https://www.panewslab.com/zh/newsflash - CoinDesk:
https://www.coindesk.com/latest-crypto-news
价格数据:
python3 skills/crypto-daily-report/scripts/fetch_prices.py
Meme 趋势:
python3 skills/crypto-daily-report/scripts/fetch_meme_trending.py
DeFi 生息:
python3 skills/crypto-daily-report/scripts/fetch_defi_yields.py 5
RootData 热榜(内部权重,不对外展示标签):
python3 skills/rootdata/scripts/rootdata.py hot --limit 20
python3 skills/rootdata/scripts/rootdata.py funding --limit 10
OpenNews 高分补漏(score≥75):
TOKEN=$(grep OPENNEWS_TOKEN ~/.openclaw/.env | cut -d'=' -f2)
curl -s -X POST "https://ai.6551.io/open/news_search" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"minScore": 75, "limit": 20, "page": 1}'
Step 2:融资信息补全(重要)
RootData 融资列表拿到后,逐个去 BlockBeats 搜索项目名补充机构信息:
https://www.theblockbeats.info/search?q=<项目名>
- 找到对应快讯后用 web_fetch 读取原文
- 从原文提取:领投机构、参投机构(≤3个)
- ⚠️ 禁止用 Tavily 猜测机构名,必须从快讯原文获取
- ⚠️ 每个项目必须有独立链接,禁止将 A 项目的链接用在 B 项目上
- 若 BlockBeats 搜索无结果,尝试 Odaily 或 PANews,仍无则标注"参投机构未披露"
Step 3:内容处理与脱水
处理原则:
- 去重:同一事件只在最相关板块出现一次
- 脱水:每条新闻提炼核心信息,1-2句话
- 重要性过滤:优先 OpenNews 高分(≥75)、快讯头条、RootData 今日新上榜项目
- 时效过滤:只展示当日新闻;融资动态只展示最近一周
Step 4:按板块组装
板块结构
① 头条新闻
- 1-2 条,仅当日最重要
② 融资动态
- 最近一周,≤5条
- 每条:项目名、业务介绍(1句)、金额/轮次、参与机构(≤3个)、一条链接
③ 重大更新
- ≤5条,涵盖:产品上线、主网/测试网、重要公告、大事件
- 大额代币解锁仅最重要的一条作为更新展示
④ Alpha 前线
- 飙升 Meme 速递(GeckoTerminal 实时数据)
- 社区热议 Alpha 项目(3-4条,RootData热榜 + opentwitter 结合)
- 热门赛道叙事(1段,当日最强叙事)
⑤ 链上与 DeFi
- 链上数据:CEX 净流入/流出(Coinglass)、鲸鱼动向,不展示爆仓金额
- 生息机会:DeFiLlama yields API 数据,展示协议/资产/链/APY/TVL
⑥ 观点洞见
- 精选 ≤3条,来源:KOL推文、机构报告、研报
⑦ 交易数据
- 现货:BTC / ETH / SOL / HYPE
- ETF 资金流向
- 期货/衍生品(简洁1-2句)
- 市场判断(2-3句)
⑧ 宏观与政策
- 加密监管:≤1条
- 宏观经济数据(简洁,含近期重要数据发布提醒)
Step 5:排版与发送
分三条消息发送,格式如下:
消息一:头条 + 融资
📰 *加密货币日报 · YYYY年M月D日*
_来源:BlockBeats · Odaily · PANews · CoinDesk · Binance 实时_
━━━━━ 🔴 头条 ━━━━━
*[标题]*
[1-2句正文]
→ [来源链接]
━━━━━ 💰 融资动态 ━━━━━
▪ *项目名 · 金额 轮次*
业务介绍(1句)
机构1、机构2、机构3参投 · 日期
→ [链接]
消息二:重大更新 + Alpha 前线 + 链上DeFi
━━━━━ 🚀 重大更新 ━━━━━
▪ *项目名(代币)事件标题*
1-2句描述
→ [链接]
━━━━━ 🎯 Alpha 前线 ━━━━━
*飙升 Meme 速递*(GeckoTerminal Solana 实时)
代币名 · +X% · 量 $XM · FDV $XM
→ [DEX链接]
*社区热议 Alpha 项目*
▪ *项目名* — 1句描述,热度说明
→ [链接]
*热门赛道叙事*
[1段文字]
━━━━━ 📊 链上与 DeFi ━━━━━
*链上数据*
[CEX流向等]
*生息机会*(DeFiLlama 实时)
协议 · 资产 · 链 · APY X% · TVL $XM
→ [链接]
消息三:观点 + 交易数据 + 宏观
━━━━━ 💬 观点洞见 ━━━━━
▪ *来源名称*:内容(1-2句)
→ [链接]
━━━━━ 📈 交易数据 ━━━━━
*现货价格*(Binance,HH:MM BJ)
BTC $XX,XXX · +X.XX%
ETH $X,XXX · +X.XX%
SOL $XX.XX · +X.XX%
HYPE $XX.XX · +X.XX%(合约)
*ETF*:[一句话]
→ [链接]
*期货*:[一句话爆仓数据]
*判断*:[2-3句]
━━━━━ 🌐 宏观与政策 ━━━━━
[宏观数据 + 近期重要发布提醒]
→ [CME FedWatch链接]
*监管*:[1句]
→ [链接]
错误处理与降级策略
数据源故障处理
| 数据源 | 故障类型 | 降级策略 |
|---|---|---|
| BlockBeats/Odaily/PANews | 超时/403 | 跳过该站,其余三站补全;所有站均失败则标注 [快讯暂时不可用] |
| CoinDesk | 超时 | 跳过,不影响其他板块 |
| Binance 现货 API | 超时/限流 | 重试2次(间隔1.5s),仍失败输出 [DATA UNAVAILABLE] |
| Binance 合约 API(HYPE) | 超时 | 同上,标注 HYPE: [DATA UNAVAILABLE] |
| GeckoTerminal(Meme) | 403/超时 | 自动降级到 DEXScreener token-boosts;两者均失败则标注"今日 Meme 数据暂不可用" |
| DeFiLlama yields | 超时 | 重试2次,仍失败输出 "[DATA UNAVAILABLE] 请访问 defillama.com/yields" |
| RootData | 超时/限额 | 跳过融资/热榜板块,标注 [RootData 暂不可用] |
| OpenNews API | 超时/401 | 跳过补漏步骤,仅用快讯网站内容 |
| BlockBeats 搜索(融资机构) | 无结果 | 依次尝试 Odaily → PANews;仍无则标注"参投机构未披露" |
重试规范
- 脚本内置重试:最多2次,指数退避(1s, 2s)
- 整体采集超时:单个数据源超过15s视为失败,跳过,不阻塞其他板块
- 绝不因单点失败中断整个日报
标记规范
[DATA UNAVAILABLE]— 数据源无响应[未验证]— 来源可信度存疑⚠️ 降级数据— 使用了备用数据源
字数控制规范
Telegram 单条消息上限:4096 字符(UTF-16 code units) 建议每条不超过 3800 字符(留 ~200 字符余量)
发送前检查
每条消息组装完成后,用以下方式估算字符数:
# 快速估算:中文字符按1.5倍计,emoji 按2倍计
def estimate_chars(text):
count = 0
for ch in text:
cp = ord(ch)
if cp > 0xFFFF: count += 2 # emoji
elif cp > 0x4E00: count += 1 # 中文等 BMP 字符
else: count += 1
return count
或用脚本:echo "消息内容" | python3 skills/crypto-daily-report/scripts/check_length.py
各消息字数预算
| 消息 | 内容 | 建议上限 |
|---|---|---|
| 消息一 | 头条 + 融资 | 1500 字符 |
| 消息二 | 重大更新 + Alpha + DeFi | 3000 字符 |
| 消息三 | 观点 + 交易 + 宏观 | 1800 字符 |
超出时的压缩优先级
- 压缩"热门赛道叙事"段落(最长,最可压缩)
- Alpha 项目描述缩减到1句
- Meme 速递减少条目(5条→3条)
- 观点洞见减少到2条
- 生息机会减少到3条
全局规范
- 禁止表格(Telegram 不渲染)
- 禁止二级缩进
- 每条内容只保留一个链接
- 禁止展示 RootData 内部权重标签
- 反幻觉:所有数据必须来自本次会话实际查询,不确定的标注 [未验证]
- 时效:快讯只用当日内容;价格数据记录抓取时间
脚本位置
skills/crypto-daily-report/scripts/
├── fetch_prices.py # BTC/ETH/SOL 现货 + HYPE 合约价格
├── fetch_meme_trending.py # GeckoTerminal Solana trending Meme
├── fetch_defi_yields.py # DeFiLlama 主流协议生息机会
└── fetch_news.sh # 并行抓取四个快讯网站(备用)
数据源速查
| 数据 | 来源 | 方式 |
|---|---|---|
| 快讯 | BlockBeats/Odaily/PANews/CoinDesk | web_fetch |
| 价格 | Binance API | fetch_prices.py |
| Meme | GeckoTerminal | fetch_meme_trending.py |
| DeFi yield | DeFiLlama | fetch_defi_yields.py |
| 融资/热榜 | RootData | rootdata.py |
| 高分新闻 | OpenNews 6551 API | curl POST |
| Alpha KOL | OpenTwitter 6551 API | curl POST |
| 融资机构详情 | BlockBeats 搜索 | web_fetch 原文 |
| ETF 数据 | CoinDesk / Coinglass | web_fetch |
| 链上数据 | Coinglass | web_fetch |
Reviews (0)
Sign in to write a review.
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!