| name | bookmark-search |
| description | 搜索用户本地 Chrome 收藏夹(书签),按语义模糊查找已收藏的网页。当用户问"我收藏夹/书签里那个 XXX 网页在哪"、"我之前收藏的关于 YYY 的链接"、"找一下我收藏过的 ZZZ"、"我有没有收藏过 XXX" 这类问题时使用此 skill。直接读取本地 Chrome 数据文件,不需要登录或访问云端。 |
| metadata | {"openclaw":{"emoji":"🔖","requires":{"bins":["python"]}}} |
Bookmark Search(本地 Chrome 收藏夹语义搜索)
何时使用
用户用自然语言问到"自己收藏过的网页"时触发,例如:
- "我收藏夹里那个云图库的链接是什么"
- "之前看过一个关于 LeetCode 的,我收藏了,帮我找一下"
- "我有没有收藏过字节跳动的实习岗位"
- "找一下我书签里 SLAM 相关的"
- "上次看的那个 Anthropic 文档我收藏了,链接呢"
- "那个做激光雷达定位的论文"(语义搜索,不靠关键词)
不属于本 skill 的场景
- 用户要整理 / 导出 / 清理收藏夹 → 不是搜索,本 skill 不处理
- 用户要搜的是浏览历史(History)而不是书签 → 不是本 skill
- 用户要在网上搜新东西 → 用 web 搜索工具,不要用本 skill
执行步骤
1. 加载全部书签
python <skill_dir>/scripts/search_bookmarks.py --dump --json
这会输出用户本地 Chrome 的全部书签(JSON 格式),包含标题、URL、文件夹路径。
2. 语义搜索(由你完成)
拿到全部书签列表后,不要做关键词匹配,而是用你自己的语义理解能力来筛选:
- 理解用户的真实意图,而非字面关键词
- "那个做云存储的项目" → 匹配"Chaos云图库"
- "帮我找找工作相关的" → 匹配招聘网站、简历工具、面试题库等
- "之前看的一篇关于 transformer 的论文" → 匹配标题或 URL 中含 transformer/arxiv/springer 等的条目
- "国内的 AI 平台" → 匹配 modelscope、通义千问等
你需要自己判断哪些书签与用户描述语义相关,而不是靠字面匹配。
3. 返回结果
- 命中 1–5 条:直接展示标题 + URL + 文件夹路径
- 命中过多:挑最相关的 5 条展示,告知还有更多
- 一条都没命中:告知用户没找到,建议换个描述方式
输出格式
脚本 --dump --json 输出格式:
{
"total": 296,
"bookmarks": [
{
"idx": 1,
"name": "Chaos云图库",
"url": "http://chaosphoto.online/",
"path": "bookmark_bar / Bookmarks bar / 编程学习 / 项目实战"
}
]
}
为什么用语义搜索而不是关键词脚本
关键词匹配(精确/模糊子序列)只能处理"字面上有这些字"的情况。但用户的真实需求往往是:
- 描述模糊:"那个做图床的" → 不一定能匹配到"云图库"
- 用同义词:"找工作" → 需要匹配"招聘"、"校招"、"实习"
- 跨语言:"LeetCode" → 用户可能说"刷题网站"
- 语义关联:"机器学习论文" → 需要匹配 arxiv、springer、neurips 等
大模型天然擅长这些,直接用你的能力,比写复杂的匹配算法靠谱得多。
一个完整范例
用户:我收藏夹里那个做云图库的项目链接是什么?
你做的事:
- 执行:
python <skill_dir>/scripts/search_bookmarks.py --dump --json
- 从 296 个书签中语义识别出"Chaos云图库"相关的 3 条
- 回复用户:
回复:
在你的 Chrome 收藏夹里找到 3 条"云图库"相关的:
- Chaos云图库 — http://chaosphoto.online/
📁 编程学习 / 项目实战
- Chaos云图库(IP 直连)— http://47.122.117.173/
📁 编程学习 / 项目实战
- Vue3 + SpringBoot + AI + DDD 企业级智能协同云图库项目 — codefather.cn
📁 编程学习 / 项目实战