🧪 Skills

crypto daily report

加密货币日报生成技能。当用户要求生成日报、出日报、发日报、加密新闻日报时激活。按固定板块结构采集数据、处理脱水、排版后分三条消息发送

v1.0.0
❤️ 0
⬇️ 169
👁 2
Share

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 字符

超出时的压缩优先级

  1. 压缩"热门赛道叙事"段落(最长,最可压缩)
  2. Alpha 项目描述缩减到1句
  3. Meme 速递减少条目(5条→3条)
  4. 观点洞见减少到2条
  5. 生息机会减少到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)

Sign in to join the discussion.

No comments yet. Be the first to share your thoughts!

Compatible Platforms

Pricing

Free

Related Configs