This repository has been archived on 2026-02-15. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
openclaw-skills/skills/obsidian-kb/AUTO_TRIGGER.md
T
OpenClaw Agent fbcc3df2cf feat(obsidian-kb): 实现短链接解析功能
- 新增 shortlink_resolver.py 模块
  * 检测 B站短链接(b23.tv)和其他短链接服务
  * 提供友好的用户引导信息
  * 支持 Playwright 浏览器自动化解析(可选)

- 集成到 handler.py
  * 短链接自动检测和提示
  * 智能区分短链接和完整 URL

- 更新 add_video.py
  * 支持短链接解析
  * 添加 --playwright 参数启用浏览器解析

- 新增 test_shortlink.py 测试脚本
  * 测试单个短链接检测
  * 测试多个短链接检测
  * 测试混合内容场景
  * 所有测试通过

- 更新文档
  * SKILL.md: 添加短链接说明
  * AUTO_TRIGGER.md: 添加短链接章节
  * obsidian-kb-improvements.md: 标记任务2为已完成

功能特点:
- 方案A(用户引导):已实现并作为默认行为
- 方案B(浏览器自动化):提供 PlaywrightResolver 类,可选使用
- 方案C(代理池):未实现(复杂度高,收益低)

验收标准达成:
✅ 短链接能够友好处理(显示引导信息)
✅ 用户不会感到困惑
✅ 支持 b23.tv 和其他短链接服务(检测)
✅ 集成到 handler.py
✅ 测试各种短链接场景
2026-02-06 21:22:45 +08:00

6.5 KiB
Raw Blame History

obsidian-kb 自动触发机制

概述

已实现 obsidian-kb 技能的自动触发机制,当用户通过 WhatsApp/Telegram 等渠道发送视频或文章链接时,技能会自动识别并提示处理。

实现方式

1. SKILL.md 更新

添加了 frontmatter 元数据和详细的触发规则说明:

---
name: obsidian-kb
description: Automatically detect and process video/article links...
version: 1.0.0
---

在文档中添加了:

  • 自动触发规则章节
  • 触发模式说明
  • 自动触发流程
  • 批量处理支持
  • 短链接友好提示

2. Handler 脚本

创建了 handler.py 脚本,功能包括:

  • 链接检测: 使用正则表达式匹配多种 URL 模式
  • 元数据提取: 识别平台、内容类型和 ID
  • 预览生成: 格式化显示识别到的内容
  • 智能去重: 避免重复检测相同的链接
  • 短链接处理: 对 b23.tv 等短链接显示友好提示

支持的 URL 模式

B站视频

  • 完整 URL: https://www.bilibili.com/video/BV*
  • 短链接: https://b23.tv/*
  • BV号: BV*

YouTube 视频

  • 完整 URL: https://www.youtube.com/watch?v=*
  • 短链接: https://youtu.be/*

知乎文章

  • 专栏文章: https://zhuanlan.zhihu.com/p/*
  • 回答: https://www.zhihu.com/question/*/answer/*

使用流程

自动触发模式(推荐)

  1. 用户发送链接
  2. 系统自动检测链接
  3. 显示内容预览
  4. 询问用户确认
  5. 用户确认后添加到收件箱
  6. 可选:立即处理

示例

用户: https://www.bilibili.com/video/BV1xx411c7mD

助手: 🔍 检测到内容链接:

📺 [1] B站视频
    URL: https://www.bilibili.com/video/BV1xx411c7mD
    ID: BV1xx411c7mD

是否添加到收件箱并处理?(y/n)

短链接示例

用户: https://b23.tv/oLBZZfK

助手: 🔍 检测到内容链接:

📺 [1] B站视频
    URL: https://b23.tv/oLBZZfK
    ⚠️  短链接,需要用户提供完整URL或ID

🔗 检测到短链接

⚠️  由于反爬虫保护,短链接无法自动解析

📱 手机用户:
   1. 打开链接
   2. 在浏览器地址栏复制完整 URL
   3. 发送给助手

💻 桌面用户:
   1. 发送 BV 号(如:BV1jcFqz7EFW)
   2. 或使用完整 URL

💡 提示:完整 URL 格式为:https://www.bilibili.com/video/BVxxxxx

其他链接是否立即处理?(y/n)

批量处理

支持一次发送多个链接:

用户: 这几个视频不错:
https://www.bilibili.com/video/BV1xx411c7mD
BV2yy522c8nE
https://www.youtube.com/watch?v=dQw4w9WgXcQ

助手: 🔍 检测到内容链接:

📺 [1] B站视频
    URL: https://www.bilibili.com/video/BV1xx411c7mD
    ID: BV1xx411c7mD

📺 [2] B站视频
    URL: https://www.bilibili.com/video/BV2yy522c8nE
    ID: BV2yy522c8nE

▶️ [3] YouTube视频
    URL: https://www.youtube.com/watch?v=dQw4w9WgXcQ
    ID: dQw4w9WgXcQ

是否将上述 3 个内容添加到收件箱?(y/n)

测试结果

已测试所有 URL 模式:

✅ B站完整 URL: https://www.bilibili.com/video/BV1xx411c7mD ✅ B站 BV号: BV1jcFqz7EFW ✅ B站短链接: https://b23.tv/oLBZZfK (显示友好提示) ✅ YouTube 视频: https://www.youtube.com/watch?v=dQw4w9WgXcQ ✅ 知乎文章: https://zhuanlan.zhihu.com/p/123456789 ✅ 重复检测: 正确去重,避免重复显示

文件变更

skills/obsidian-kb/
├── SKILL.md                  [修改] 添加 frontmatter 和触发规则
├── handler.py                [新增] 自动触发处理器
└── AUTO_TRIGGER.md           [新增] 本文档

与 OpenClaw 集成

handler.py 可以通过以下方式集成:

  1. 手动调用: 使用 CLI 测试和调试

    python3 handler.py "text with link"
    
  2. Agent 调用: AI Agent 在接收到用户消息后,调用 handler 检测链接

  3. 插件集成: 未来可创建 OpenClaw 插件,自动监听消息并触发 handler

验收标准

  • SKILL.md 添加了触发规则
  • Handler 能够检测各种 URL 格式
  • 显示友好的预览信息
  • 短链接显示友好提示
  • 支持批量检测多个链接
  • 智能去重避免重复显示
  • 所有 URL 模式测试通过

后续工作

短链接解析(P2 优先级) ✅ 已完成

已完成短链接解析功能(2026-02-06):

已实现功能

  1. 短链接检测模块 (shortlink_resolver.py)

    • 检测 B站短链接(b23.tv)
    • 支持其他短链接服务(bit.ly, t.cn, dwz.cn 等)
    • 提供友好的用户引导信息
  2. 用户引导(方案A)

    • 检测到短链接时显示清晰的操作指南
    • 分别针对手机用户和桌面用户提供建议
    • 支持单个短链接和多个短链接的不同提示格式
  3. 浏览器自动化(方案B - 可选)

    • 提供了 PlaywrightResolver 类
    • 需要额外安装 Playwright:
      pip install playwright
      playwright install chromium
      
    • 可在 add_video.py 中使用 --playwright 参数启用
  4. 集成到现有流程

    • handler.py 集成短链接检测
    • add_video.py 支持短链接解析
    • 短链接会优先显示帮助信息,不会自动处理

使用示例

handler.py 自动触发:

python3 handler.py "Check this: https://b23.tv/oLBZZfK"

add_video.py 手动添加:

python3 add_video.py "https://b23.tv/oLBZZfK"
python3 add_video.py "https://b23.tv/oLBZZfK" --playwright  # 使用浏览器解析

shortlink_resolver.py 独立测试:

python3 shortlink_resolver.py "Test link: https://b23.tv/abc"
python3 shortlink_resolver.py "https://b23.tv/abc" --playwright  # 浏览器解析

文件变更

skills/obsidian-kb/
├── SKILL.md                  [修改] 添加短链接说明
├── handler.py                [修改] 集成短链接检测
├── add_video.py              [修改] 支持短链接解析
├── shortlink_resolver.py     [新增] 短链接解析模块
└── AUTO_TRIGGER.md           [修改] 添加短链接章节

验收标准

  • 短链接能够友好处理(显示引导信息)
  • 用户不会感到困惑
  • 支持 b23.tv 和其他短链接服务(检测)
  • 集成到 handler.py
  • 测试各种短链接场景(单个、多个、混合)

YouTube 和知乎支持(P1 优先级)

当前仅 Bilibili 有完整适配器:

  • 实现 YouTube 适配器
  • 实现知乎适配器
  • 添加相应的提取和处理逻辑

总结

自动触发机制已基本完成,用户现在可以通过简单的发送链接来触发 obsidian-kb 技能,大大提升了使用体验。