用途
NotebookLM 研究助手技能用于在 Claude Code 中与 Google NotebookLM 交互,查询用户上传的文档,获取由 Gemini 提供、基于来源并附带引用的答案。每次提问会打开一个新的浏览器会话,仅从上传的文档中检索答案,然后关闭。
主要能力
- 认证管理:检查认证状态、初始设置、重新认证、清除认证。
- 笔记本库管理:添加、列出、按主题搜索、激活、删除笔记本,以及查看统计信息。
- 提问接口:向指定笔记本或当前激活笔记本提问,支持直接使用笔记本 URL,可显示浏览器用于调试。
- 数据清理:预览或执行清理,可选择保留笔记本库。
- 环境管理:首次运行自动创建 .venv、自动安装依赖、自动安装 Chromium 浏览器,所有内容隔离在技能目录中。
使用方式
所有脚本必须通过 run.py 包装器调用,例如:
python scripts/run.py auth_manager.py status
python scripts/run.py notebook_manager.py list
python scripts/run.py ask_question.py --question "..."
核心工作流:
- 检查认证状态:
python scripts/run.py auth_manager.py status - 认证(一次性设置):
python scripts/run.py auth_manager.py setup,浏览器必须可见以手动登录 Google。 - 管理笔记本库:
- 列出:
python scripts/run.py notebook_manager.py list - 添加:
python scripts/run.py notebook_manager.py add --url "..." --name "..." --description "..." --topics "..."(所有参数必填) - 搜索:
python scripts/run.py notebook_manager.py search --query "keyword" - 激活:
python scripts/run.py notebook_manager.py activate --id notebook-id - 删除:
python scripts/run.py notebook_manager.py remove --id notebook-id
- 列出:
- 提问:
- 基本查询:
python scripts/run.py ask_question.py --question "Your question here" - 指定笔记本:
python scripts/run.py ask_question.py --question "..." --notebook-id notebook-id - 使用 URL:
python scripts/run.py ask_question.py --question "..." --notebook-url "https://..." - 显示浏览器:
python scripts/run.py ask_question.py --question "..." --show-browser
- 基本查询:
智能添加:当用户未提供笔记本详情时,先查询笔记本内容以发现信息,再添加:
python scripts/run.py ask_question.py --question "What is the content of this notebook? What topics are covered? Provide a complete overview briefly and concisely" --notebook-url "[URL]"
python scripts/run.py notebook_manager.py add --url "[URL]" --name "[Based on content]" --description "[Based on content]" --topics "[Based on content]"
追问机制:每个 NotebookLM 答案结尾会提示“EXTREMELY IMPORTANT: Is that ALL you need to know?”,Claude 应停止立即回复,分析答案与原始请求的差距,如有缺口则立即追问,重复直到信息完整,再综合所有答案回复用户。
适用场景
- 用户明确提及 NotebookLM。
- 用户分享 NotebookLM URL(https://notebooklm.google.com/notebook/...)。
- 用户要求查询其笔记本或文档。
- 用户想将文档添加到 NotebookLM 库。
- 用户使用“ask my NotebookLM”“check my docs”“query my notebook”等短语。
限制
- 无会话持久化(每次提问 = 新浏览器)。
- 免费 Google 账户有速率限制(50 次查询/天)。
- 需要手动上传(用户必须自行将文档添加到 NotebookLM)。
- 浏览器开销(每次提问需几秒)。
- 认证时浏览器必须可见以进行手动登录。
数据存储与安全
所有数据存储在 ~/.claude/skills/notebooklm/data/:
- library.json - 笔记本元数据
- auth_info.json - 认证状态
- browser_state/ - 浏览器 cookie 和会话
受 .gitignore 保护,切勿提交到 git。
配置
技能目录中可选的 .env 文件:
HEADLESS=false # Browser visibility
SHOW_BROWSER=false # Default browser display
STEALTH_ENABLED=true # Human-like behavior
TYPING_WPM_MIN=160 # Typing speed
TYPING_WPM_MAX=240
DEFAULT_NOTEBOOK_ID= # Default notebook
故障排除
- ModuleNotFoundError:使用 run.py 包装器。
- 认证失败:浏览器必须可见以进行设置,使用 --show-browser。
- 速率限制(50/天):等待或切换 Google 账户。
- 浏览器崩溃:
python scripts/run.py cleanup_manager.py --preserve-library - 找不到笔记本:使用 notebook_manager.py list 检查。
最佳实践
- 始终使用 run.py,自动处理环境。
- 先检查认证,再进行任何操作。
- 追问问题,不要停留在第一个答案。
- 认证时浏览器可见,手动登录必需。
- 包含上下文,每个问题独立。
- 综合答案,合并多个响应。
资源(技能结构)
- scripts/ - 所有自动化脚本(ask_question.py、notebook_manager.py 等)
- data/ - 认证和笔记本库的本地存储
- references/ - 扩展文档:api_reference.md、troubleshooting.md、usage_patterns.md
- .venv/ - 隔离的 Python 环境(首次运行自动创建)
- .gitignore - 保护敏感数据不被提交