引用前文内容读取技能(增强版 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. 安装技能

# 从ClawHub安装
clawhub install quote-reader

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

2. AI自动集成

AI行为规则(强制):

每次收到用户消息时,执行以下流程:

# 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 - 引用检测

# 输入:用户消息
# 输出:JSON格式的引用信息

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

extract-quote.sh - 引用提取

# 输入:引用信息(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流程

# 完整的引用处理流程
# 适用于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 - 引用模式

{
  "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 - 意图识别

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

💡 最佳实践

AI集成建议

方式1:自动检测(推荐)

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

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

# AI正常回复

方式2:手动调用

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

性能优化

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

🚨 常见问题

Q1: 检测不到引用?

可能原因:

  • 引用格式不在配置中
  • 消息ID格式错误

解决方法:

# 添加自定义引用模式
jq '.platforms.custom.patterns += ["新模式"]' config/quote-patterns.json

Q2: 检索速度慢?

优化方案:

  1. 限制检索范围(最近50条)
  2. 启用缓存
  3. 使用索引

Q3: 引用内容不准确?

调试方法:

# 查看检测到的引用
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:这两个概念的关系是...(关联分析)

🚀 未来规划

短期(本周)

  • 核心功能开发
  • 飞书平台支持
  • 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 状态:✅ 开发中