# Crypto Daily Report

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

- Skill: `modbender/crypto-daily-report` (Agent Skill, multi-file: 6 files)
- Install (CLI): `npx skillmds@latest add modbender/crypto-daily-report`
- Raw SKILL.md: https://api.skillmd.com/api/skills/modbender/crypto-daily-report/raw
- Safety review: pending (external: skill-scanner PASS, skillspector CAUTION)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: modbender (https://skillmd.com/u/modbender)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/modbender/crypto-daily-report

---


# 加密货币日报 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`

**价格数据：**
```bash
python3 skills/crypto-daily-report/scripts/fetch_prices.py
```

**Meme 趋势：**
```bash
python3 skills/crypto-daily-report/scripts/fetch_meme_trending.py
```

**DeFi 生息：**
```bash
python3 skills/crypto-daily-report/scripts/fetch_defi_yields.py 5
```

**RootData 热榜（内部权重，不对外展示标签）：**
```bash
python3 skills/rootdata/scripts/rootdata.py hot --limit 20
python3 skills/rootdata/scripts/rootdata.py funding --limit 10
```

**OpenNews 高分补漏（score≥75）：**
```bash
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 字符余量）**

### 发送前检查
每条消息组装完成后，用以下方式估算字符数：
```python
# 快速估算：中文字符按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 |

