引用前文内容读取技能(增强版 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] |
[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"
性能优化
- 缓存引用内容:避免重复检索
- 限制检索范围:最近50条消息
- 异步处理:不阻塞AI回复
- 智能过滤:仅检索相关消息
🚨 常见问题
Q1: 检测不到引用?
可能原因:
- 引用格式不在配置中
- 消息ID格式错误
解决方法:
# 添加自定义引用模式
jq '.platforms.custom.patterns += ["新模式"]' config/quote-patterns.json
Q2: 检索速度慢?
优化方案:
- 限制检索范围(最近50条)
- 启用缓存
- 使用索引
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 状态:✅ 开发中
📄 许可证与版权声明
MIT License
Copyright (c) 2026 思捷娅科技 (SJYKJ)
免费使用、修改和重新分发时,需注明出处。
出处:
- GitHub: https://github.com/zhaog100/openclaw-skills
- ClawHub: https://clawhub.com
- 创建者: 思捷娅科技 (SJYKJ)
商业使用授权:
- 小微企业(<10人):¥999/年
- 中型企业(10-50人):¥4,999/年
- 大型企业(>50人):¥19,999/年
- 企业定制版:¥99,999一次性(源码买断)
详情请查看:LICENSE