TL;DR
一个Claude Code技能插件,把Google NotebookLM变成你的专属知识库助手。上传API文档、技术手册后,直接在编辑器里问问题,答案只来自你的文档,不会胡编乱造。
一、问题:AI为什么总在专业问题上瞎说
1.1 幻觉是AI的原罪
你问GPT:"高仙机器人怎么获取状态?"
AI可能回答:
调用 /api/v1/robot/status 接口,传入设备ID...
看起来很专业。但实际API文档里根本没这个接口。
为什么:大语言模型基于概率生成文本,没见过的文档会"合理推测"。结果就是一本正经地胡说八道。
1.2 传统方案的困境
方案
问题
直接问AI
幻觉严重,答案不可信
手动查文档
效率低,复杂文档难检索
本地RAG
需要搭建向量数据库,成本高
复制文档喂给AI
Token消耗巨大,超长文档装不下
本质矛盾:既要AI的理解能力,又要限定答案来源。
二、方案:NotebookLM限定知识边界
2.1 NotebookLM是什么
Google出品的"文档问答机器人"。你上传PDF、网页、文本,它只根据这些材料回答问题。
核心能力:
- ✅ 只答文档里有的内容,没有就说"文档未提及"
- ✅ 支持50+个文件,自动关联信息
- ✅ 答案带引用,可追溯原文出处
- ✅ Gemini后端,理解能力强
生活比喻:像给AI配了一个只能看指定书籍的图书馆管理员。你问的问题,他只翻这些书,找不到就不会瞎编。
2.2 NotebookLM Skill做了什么
把NotebookLM集成到Claude Code里,免去手动切换浏览器的麻烦。
工作流程:
1. 你在编辑器里问:"高仙机器人有哪些API?"
2. Skill自动打开Chrome → 登录NotebookLM → 提交问题
3. NotebookLM从你上传的文档里找答案
4. Skill把结果返回编辑器 → Chrome自动关闭
技术实现:
- 浏览器自动化(Patchright,Playwright魔改版)
- 本地Python环境(独立.venv,不污染系统)
- 持久化认证(登录一次,永久有效)
三、实战案例:查询高仙机器人API文档
3.1 准备工作
我把 https://developer.gs-robot.com/ 的所有API文档上传到NotebookLM,然后在Claude Code里直接提问。
注意:案例中的API调用地址应为 https://openapi.gs-robot.com
3.2 第一个问题:有哪些API?
输入:
高仙机器人平台有哪些api?
Skill自动执行:
python3 scripts/run.py ask_question.py \
--question "高仙机器人平台提供了哪些 API?请按功能分类详细列出..." \
--notebook-id [已屏蔽]
NotebookLM返回(60秒内完成):
按功能分类的完整API列表:
1. 任务管理
- /openapi/v2/robotCommand/submitTempTaskHasSite - 提交站点临时任务
- /openapi/v2/robotCommand/submitTempTaskNoSite - 提交无站点任务
- /v1alpha1/robots/*/commands/ - 获取指令队列
2. 状态监测
- /v1alpha1/robots/{robot}/status - V1通用状态
- /openapi/v2alpha1/s/robots/{robot}/status - V2 S系列专用
- :batchGet - 批量获取多机器人状态
3. 地图服务
- /openapi/v1/map/robotMap/list - 地图列表
- /openapi/v1/map/subareas/get - 分区信息
4. 事件推送
- Webhook机制,推送异常告警、任务状态、导航信息
5. 设备管理
- /v1alpha1/robots - 机器人列表(SN、MAC、硬件版本)
6. 认证安全
- OAuth 2.0:/v1alpha1/oauth/token - 获取访问令牌
3.3 第二个问题:如何获取状态?
输入:
能告诉我如何获取 GSxx-xxx-xxx-xx 机器人的状态的过程是如何的么?
NotebookLM返回完整流程代码:
import requests
# ========== 步骤1:OAuth认证 ==========
auth_url = "https://openapi.gs-robot.com/v1alpha1/oauth/token"
auth_payload = {
"grant_type": "client_credentials",
"client_id": "YOUR_APP_ID",
"client_secret": "YOUR_APP_SECRET"
}
auth_response = requests.post(auth_url, data=auth_payload)
access_token = auth_response.json().get("access_token")
# ========== 步骤2:查询机器人状态 ==========
robot_sn = "GSxx-xxx-xxx-xx"
status_url = f"https://openapi.gs-robot.com/openapi/v2alpha1/s/robots/{robot_sn}/status"
headers = {
"Authorization": f"Bearer {access_token}",
"Content-Type": "application/json"
}
response = requests.get(status_url, headers=headers)
# ========== 步骤3:解析响应 ==========
if response.status_code == 200:
data = response.json()
# 电池信息
print(f"电量: {data['battery']['percentage']}%")
print(f"电压: {data['battery']['voltage']}V")
# 导航与状态
print(f"导航状态: {data['navStatus']}")
print(f"急停状态: {data['emergencyStop']}")
# 清洁系统
print(f"清水箱: {data['cleanWaterLevel']}")
print(f"污水箱: {data['dirtyWaterLevel']}")
# 耗材寿命
print(f"滚刷寿命: {data['consumables']['rollerBrush']}%")
print(f"盘刷寿命: {data['consumables']['diskBrush']}%")
响应数据结构:
{
"navStatus": "NAVIGATING",
"emergencyStop": false,
"battery": {
"percentage": 85,
"voltage": 48.2,
"current": 5.3,
"temperature": 32.5
},
"cleanWaterLevel": "MEDIUM",
"dirtyWaterLevel": "LOW",
"consumables": {
"rollerBrush": 68,
"diskBrush": 72,
"filter": 45
}
}
3.4 效果对比
传统方式
NotebookLM Skill
打开文档网站 → 搜索关键词 → 翻多个页面 → 手动整理
一句话提问 → 60秒得到完整答案
需要理解API版本差异(V1/V2)
自动关联多版本说明
可能遗漏相关接口
自动发现关联API(如批量查询)
代码示例需自己拼凑
直接给出可运行代码
四、安装使用指南
4.1 三步安装
# 1. 创建技能目录
mkdir -p ~/.claude/skills
# 2. 克隆仓库
cd ~/.claude/skills
git clone https://github.com/PleasePrompto/notebooklm-skill notebooklm
# 3. 首次使用自动安装依赖(包括Chrome)
# 无需手动操作
4.2 首次配置
在Claude Code里说:
Set up NotebookLM authentication
自动流程:
1. Chrome浏览器自动打开
2. 跳转到Google登录页
3. 手动完成登录(建议用独立账号,避免主账号被检测)
4. 认证信息保存到本地 ~/.claude/skills/notebooklm/data/
重要:这个data目录包含登录凭证,不要提交到Git。
4.3 添加知识库
# 1. 在 https://notebooklm.google.com 上传文档
# 支持PDF、网页、Markdown等50+个文件
# 2. 点击"分享" → 设置为公开访问 → 复制链接
# 3. 在Claude Code里说:
Add https://notebooklm.google.com/notebook/xxx to my library
系统会要求你输入描述(如"高仙机器人API文档"),方便后续自动选择。
4.4 提问
# 直接问问题,Skill自动选择相关知识库
"高仙机器人如何提交临时任务?"
"状态监测API的响应数据结构是什么?"
"V1和V2接口有什么区别?"
4.5 常用命令
命令
作用
Show my NotebookLM notebooks
列出所有已保存知识库
Clear NotebookLM data
清空数据(保留库列表)
What skills do I have?
查看已安装技能
五、核心优势与限制
5.1 为什么不直接喂给Claude?
对比维度
直接喂Claude
NotebookLM Skill
Token成本
巨大(每次提问重发全文)
极低(Gemini预处理一次)
文档数量
受上下文限制(~10个文件)
50+文件无压力
跨文档关联
需手动整理
自动关联信息
引用溯源
无
每个答案带来源
幻觉风险
仍可能编造
严格限定文档内容
5.2 适用场景
✅ 适合:
- API文档查询(如高仙机器人案例)
- 技术手册问答(操作流程、参数说明)
- 产品规格对比(从多个PDF提取信息)
- 学术论文研究(关联多篇文献)
❌ 不适合:
- 实时数据查询(NotebookLM不联网)
- 需要推理的复杂任务(它只检索文档)
- 隐私敏感内容(数据上传到Google)
5.3 技术限制
限制
说明
仅限本地Claude Code
不支持Web版(沙箱限制)
无会话上下文
每次提问独立,不记忆上一轮对话
NotebookLM免费限额
每日查询次数有上限
需手动上传文档
不能自动爬取网站
六、实现原理剖析
6.1 技术栈
Claude Code Skill(前端)
↓ 调用 Python 脚本
浏览器自动化(Patchright)
↓ 模拟人类操作
NotebookLM(后端)
↓ Gemini处理
返回文档限定答案
核心依赖:
- patchright==1.55.2 - Playwright魔改版,绕过自动化检测
- python-dotenv==1.0.0 - 环境变量管理
6.2 会话模型
无状态设计:
# 每次提问的生命周期
1. 启动Chrome → 加载认证信息
2. 打开NotebookLM → 选择知识库
3. 提交问题 → 等待响应
4. 提取答案 → 关闭浏览器
为什么不保持会话:
- 避免浏览器长时间运行被检测
- 降低内存占用
- 每次问题独立,不依赖上下文
6.3 数据存储
所有数据在本地 ~/.claude/skills/notebooklm/data/:
data/
├── auth_state.json # Google登录凭证
├── library.json # 知识库列表
└── .env # 环境变量
安全提醒:.gitignore已配置忽略data目录,但仍需注意:
- 定期备份library.json
- 使用独立Google账号
- 不要在公共电脑上使用
七、进阶技巧
7.1 优化提问方式
糟糕的提问:
高仙机器人API怎么用?
(太宽泛,NotebookLM可能返回概述)
好的提问:
高仙机器人提交临时任务的API接口是什么?请给出完整的请求格式、参数说明和响应示例。
(具体、结构化,答案更精准)
7.2 多知识库组织
按项目分类:
我的NotebookLM库:
- "高仙机器人API" → 所有developer.gs-robot.com文档
- "普渡机器人API" → 普渡开放平台文档
- "React官方文档" → React Hooks、Context等
提问时自动选择:
# Skill根据问题关键词匹配库
"高仙机器人状态API" → 自动选"高仙机器人API"库
"React useEffect用法" → 自动选"React官方文档"库
7.3 配合Claude Code其他功能
典型工作流:
1. NotebookLM查API文档 → 获取接口定义
2. Claude Code生成调用代码 → 自动补全参数
3. 本地测试 → 调试错误
4. 再问NotebookLM → 查错误码含义
八、小结
8.1 核心价值
NotebookLM + Claude Code = 零幻觉的专业文档助手
三个关键能力:
1. 限定知识边界 - 答案只来自你的文档
2. 自动化集成 - 编辑器里直接提问,无需切换
3. 深度理解 - Gemini后端,能关联多文档信息
8.2 适用人群
角色
典型场景
API开发者
查询第三方平台接口文档
技术写手
从产品手册提取规格参数
研究人员
关联多篇论文找证据
运维工程师
查询设备操作手册
8.3 最佳实践
✅ 推荐:
- 用独立Google账号避免主账号被检测
- 定期备份library.json
- 提问时明确要求"给出代码示例"或"列出所有参数"
❌ 避免:
- 上传隐私敏感文档(数据在Google服务器)
- 期待它回答文档外的问题(会直接说"未提及")
- 用于实时数据查询
参考链接
- GitHub仓库:https://github.com/PleasePrompto/notebooklm-skill
- NotebookLM官网:https://notebooklm.google.com
- 高仙机器人开放平台:https://developer.gs-robot.com
- API调用地址:https://openapi.gs-robot.com