# Quote Reader

> 引用前文内容读取技能。当用户引用之前的消息时，自动检索并理解引用内容，支持飞书/QQ/企业微信交互式卡片内容获取。Trigger on "引用", "回复", "quote", "reply", "前文"。

- Skill: `dvcrn/quote-reader` (Agent Skill, multi-file: 14 files)
- Install (CLI): `npx skillmds@latest add dvcrn/quote-reader`
- Raw SKILL.md: https://api.skillmd.com/api/skills/dvcrn/quote-reader/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: dvcrn (https://skillmd.com/u/dvcrn)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/dvcrn/quote-reader

---


# 引用前文内容读取技能（增强版 v1.1.0）

智能识别用户引用的历史消息，**通过平台API获取真实消息内容**，支持交互式卡片内容解析。

## 🎯 核心特性

### ⭐ v1.1.0 新特性（重要！）⭐⭐⭐⭐⭐
- ✅ **真实API调用**：不再返回模拟数据
- ✅ **飞书卡片获取**：支持交互式卡片内容解析
- ✅ **Token自动管理**：缓存Token，自动刷新
- ✅ **JSON结构解析**：完整解析卡片结构

### ⭐ 智能引用识别
- ✅ **多平台支持**：飞书（已完成）、QQ（待实现）、微信（待实现）
- ✅ **引用标记检测**：`[quote]`、`[reply]`、`[reply_to]`等
- ✅ **消息ID提取**：准确定位引用的消息
- ✅ **嵌套引用**：支持多层引用

### ⭐ 真实内容获取（v1.1新功能）
- ✅ **平台API调用**：调用飞书/QQ/企业微信API
- ✅ **交互式卡片解析**：获取卡片的完整JSON结构
- ✅ **图片/表单/按钮**：解析卡片中的所有元素
- ✅ **普通消息内容**：同时支持普通文本消息

### ⭐ 智能理解
- ✅ **引用意图识别**：澄清、补充、反驳、深入等
- ✅ **上下文融合**：结合引用内容和当前问题
- ✅ **连贯对话**：保持对话连贯性
- ✅ **智能回答**：基于完整上下文生成回答

## 📊 引用识别规则

### 平台支持

| 平台 | 引用标记 | 示例 |
|------|----------|------|
| 飞书 | `[quote]`、引用消息 | `[quote:om_x100b55b]` |
| QQ | `[reply]`、回复消息 | `[reply:12345678]` |
| 微信 | 引用消息结构 | `引用消息: {...}` |
| Telegram | `reply_to` | `reply_to_message_id: 123` |

### 引用意图分类

| 意图类型 | 关键词 | AI行为 |
|---------|--------|--------|
| 澄清 | "这个是指什么？"、"什么意思？" | 解释引用内容 |
| 补充 | "关于这个，我还有..."、"补充一点" | 基于引用扩展 |
| 反驳 | "不对，应该是..."、"其实..." | 修正引用内容 |
| 深入 | "继续展开"、"详细说说" | 深入分析引用 |
| 关联 | "和之前说的..."、"类似的还有" | 关联历史对话 |

## 🚀 使用方式

### 1. 安装技能

```bash
# 从ClawHub安装
clawhub install quote-reader

# 或从本地安装
cd ~/.openclaw/workspace/skills/quote-reader
bash install.sh
```

### 2. AI自动集成

**AI行为规则（强制）：**

每次收到用户消息时，执行以下流程：

```bash
# 1. 检测引用
QUOTED_CONTENT=$(/path/to/quote-reader/scripts/detect-quote.sh "$USER_MESSAGE")

# 2. 如果检测到引用
if [ -n "$QUOTED_CONTENT" ]; then
    # 3. 提取引用内容
    QUOTED_TEXT=$(echo "$QUOTED_CONTENT" | scripts/extract-quote.sh)
    
    # 4. 结合引用内容回答
    # AI回复时引用：$QUOTED_TEXT
fi
```

### 3. 使用示例

#### 场景1：澄清概念

```
用户：[引用之前的话] "QMD向量生成..."
用户：这个是指什么？

AI：[检测到引用]
    [提取引用内容："QMD向量生成受阻..."]
    
    QMD向量生成是指使用QMD工具为文档生成向量嵌入...
```

#### 场景2：补充信息

```
用户：[引用"测试框架设计"] 
用户：关于这个，我还有个想法...

AI：[提取引用内容："测试框架设计..."]
    好的，您对测试框架设计有什么新的想法？
    之前的设计思路是...（基于引用内容）
```

#### 场景3：深入讨论

```
用户：[引用"上下文管理策略"]
用户：继续展开这个话题

AI：[提取引用内容："上下文管理策略..."]
    好的，让我们深入讨论上下文管理策略...
    （基于引用内容展开详细分析）
```

## 🛠️ 技术实现

### 引用检测流程

```
用户消息
    ↓
detect-quote.sh
    ↓
├── 检测引用标记
├── 提取消息ID
└── 提取引用内容
    ↓
是否有引用？
    ├── 是 → extract-quote.sh
    │        ↓
    │        ├── 检索会话历史
    │        ├── 定位引用消息
    │        ├── 提取上下文
    │        └── 返回引用内容
    │        ↓
    │        AI结合引用回答
    └── 否 → 正常处理
```

### 脚本说明

#### detect-quote.sh - 引用检测

```bash
# 输入：用户消息
# 输出：JSON格式的引用信息

{
  "has_quote": true,
  "platform": "feishu",
  "message_id": "om_x100b55b...",
  "quoted_text": "引用的文本内容...",
  "quote_position": 0
}
```

#### extract-quote.sh - 引用提取

```bash
# 输入：引用信息（JSON）
# 输出：完整的引用内容（包含上下文）

{
  "quoted_message": {
    "id": "om_x100b55b...",
    "content": "完整内容...",
    "timestamp": "2026-03-05T08:00:00Z",
    "context_before": ["前一条消息"],
    "context_after": ["后一条消息"]
  },
  "intent": "clarify",
  "suggested_response": "建议的回答方式"
}
```

#### integrate-quote.sh - 集成到AI流程

```bash
# 完整的引用处理流程
# 适用于AI直接调用

# 输入：用户消息
# 输出：
#   - 无引用：静默返回
#   - 有引用：输出引用内容（供AI使用）
```

## 📁 文件结构

```
quote-reader/
├── SKILL.md                      # 技能文档
├── README.md                     # 使用说明
├── package.json                  # ClawHub配置
├── install.sh                    # 安装脚本
├── config/
│   ├── quote-patterns.json      # 引用模式配置
│   └── intent-rules.json        # 意图识别规则
├── scripts/
│   ├── detect-quote.sh          # 引用检测
│   ├── extract-quote.sh         # 引用提取
│   ├── integrate-quote.sh       # AI集成脚本
│   └── test-quote.sh            # 测试脚本
└── data/
    └── quote-cache.json         # 引用缓存（可选）
```

## 🔧 配置说明

### quote-patterns.json - 引用模式

```json
{
  "platforms": {
    "feishu": {
      "patterns": [
        "\\[quote:([a-zA-Z0-9_]+)\\]",
        "\\[reply_to:([a-zA-Z0-9_]+)\\]"
      ],
      "message_id_prefix": "om_x"
    },
    "qq": {
      "patterns": [
        "\\[reply:([0-9]+)\\]"
      ],
      "message_id_prefix": ""
    }
  },
  "fallback_patterns": [
    "引用[：:]\\s*(.+)",
    "回复[：:]\\s*(.+)"
  ]
}
```

### intent-rules.json - 意图识别

```json
{
  "intents": {
    "clarify": {
      "keywords": ["什么", "是指", "意思", "这个"],
      "priority": 1
    },
    "supplement": {
      "keywords": ["补充", "还有", "另外", "加上"],
      "priority": 2
    },
    "refute": {
      "keywords": ["不对", "其实", "应该是", "错误"],
      "priority": 3
    },
    "deepen": {
      "keywords": ["继续", "展开", "深入", "详细"],
      "priority": 4
    }
  }
}
```

## 💡 最佳实践

### AI集成建议

**方式1：自动检测（推荐）**

```bash
# 在AI处理用户消息前
QUOTE_INFO=$(scripts/integrate-quote.sh "$USER_MESSAGE")

if [ -n "$QUOTE_INFO" ]; then
    # 输出引用信息供AI使用
    echo "$QUOTE_INFO"
fi

# AI正常回复
```

**方式2：手动调用**

```bash
# AI主动判断是否需要检索引用
scripts/detect-quote.sh "$USER_MESSAGE"
```

### 性能优化

1. **缓存引用内容**：避免重复检索
2. **限制检索范围**：最近50条消息
3. **异步处理**：不阻塞AI回复
4. **智能过滤**：仅检索相关消息

## 🚨 常见问题

### Q1: 检测不到引用？

**可能原因：**
- 引用格式不在配置中
- 消息ID格式错误

**解决方法：**
```bash
# 添加自定义引用模式
jq '.platforms.custom.patterns += ["新模式"]' config/quote-patterns.json
```

### Q2: 检索速度慢？

**优化方案：**
1. 限制检索范围（最近50条）
2. 启用缓存
3. 使用索引

### Q3: 引用内容不准确？

**调试方法：**
```bash
# 查看检测到的引用
scripts/detect-quote.sh "测试消息" | jq .

# 查看提取的内容
scripts/extract-quote.sh '{"message_id":"..."}' | jq .
```

## 📊 性能指标

| 指标 | 目标 | 说明 |
|------|------|------|
| 检测准确率 | > 95% | 正确识别引用 |
| 检索速度 | < 500ms | 定位引用消息 |
| 提取准确率 | > 90% | 准确提取内容 |
| 意图识别 | > 85% | 正确识别意图 |

## 🎯 使用场景

### 场景1：澄清概念

```
AI：QMD向量生成需要CUDA支持。
用户：[引用] 这个是指什么？
AI：QMD向量生成是指...（详细解释）
```

### 场景2：补充信息

```
AI：测试框架包括3层...
用户：[引用] 关于这个，还有第4层...
AI：好的，补充第4层...（结合之前内容）
```

### 场景3：深入讨论

```
AI：上下文管理策略是...
用户：[引用] 继续深入分析
AI：好的，深入分析上下文管理...（基于引用展开）
```

### 场景4：关联对话

```
用户：[引用1] 和 [引用2] 这两个有什么关系？
AI：这两个概念的关系是...（关联分析）
```

## 🚀 未来规划

### 短期（本周）
- [x] 核心功能开发
- [x] 飞书平台支持
- [ ] QQ平台支持
- [ ] 测试和优化

### 中期（本月）
- [ ] 多引用支持
- [ ] 引用链追踪
- [ ] 智能关联
- [ ] 性能优化

### 长期（未来）
- [ ] 跨会话引用
- [ ] 引用网络图
- [ ] 知识图谱集成
- [ ] 机器学习优化

## 📝 版本历史

### v1.1.0 (2026-03-05) ⭐⭐⭐⭐⭐
- ✅ **真实API调用**：不再返回模拟数据
- ✅ **飞书卡片获取**：支持交互式卡片内容解析
- ✅ **Token自动管理**：缓存Token（6727秒），自动刷新
- ✅ **JSON结构解析**：完整解析卡片结构
- ✅ **配置文件完善**：新增feishu-config.json

### v1.0.0 (2026-03-05)
- ✅ 基础引用检测
- ✅ 飞书平台支持
- ✅ 会话历史检索
- ✅ 意图识别
- ✅ AI集成

---

*引用前文内容读取技能 v1.0.0*
*让对话更连贯，引用更智能*
*创建时间：2026-03-05 09:00*
*状态：✅ 开发中*

