NotebookLM研究助手技能Skill notebooklm

这个技能是一个工具,允许用户通过Claude Code查询Google NotebookLM notebooks,利用Gemini AI提供基于文档的问答服务,支持源代码引用、浏览器自动化和持久认证,有效减少AI幻觉。它适用于研究、文档管理和AI辅助工作流,关键词包括:NotebookLM, Gemini, 文档查询, 研究助手, AI问答, 浏览器自动化, 源代码引用, 减少幻觉。

RAG应用 0 次安装 0 次浏览 更新于 3/20/2026

name: notebooklm description: 使用此技能直接从Claude Code查询您的Google NotebookLM notebooks,获得基于来源、有引用支持的答案,来自Gemini。浏览器自动化、库管理、持久认证。通过仅文档响应大幅减少幻觉。

NotebookLM 研究助手技能

与Google NotebookLM交互,查询文档并获取Gemini基于来源的答案。每个问题都会打开新的浏览器会话,仅从您上传的文档中检索答案,然后关闭。

何时使用此技能

当用户触发时:

  • 明确提及NotebookLM
  • 分享NotebookLM URL(https://notebooklm.google.com/notebook/...
  • 要求查询他们的notebooks或文档
  • 想要添加文档到NotebookLM库
  • 使用短语如“问我的NotebookLM”、“检查我的文档”、“查询我的notebook”

⚠️ 关键:添加命令 - 智能发现

当用户想要添加notebook但没有提供详细信息时:

智能添加(推荐):首先查询notebook以发现其内容:

# 步骤1:查询notebook关于其内容
python scripts/run.py ask_question.py --question “这个notebook的内容是什么?涵盖哪些主题?提供简要完整的概述” --notebook-url “[URL]”

# 步骤2:使用发现的信息添加它
python scripts/run.py notebook_manager.py add --url “[URL]” --name “[基于内容]” --description “[基于内容]” --topics “[基于内容]”

手动添加:如果用户提供所有详细信息:

  • --url - NotebookLM URL
  • --name - 描述性名称
  • --description - notebook包含的内容(必需!)
  • --topics - 逗号分隔的主题(必需!)

绝不猜测或使用通用描述!如果缺少详细信息,使用智能添加来发现它们。

关键:始终使用run.py包装器

绝不直接调用脚本。始终使用python scripts/run.py [script]

# ✅ 正确 - 始终使用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/auth_manager.py status  # 没有venv会失败!

run.py包装器自动:

  1. 如果需要,创建.venv
  2. 安装所有依赖
  3. 激活环境
  4. 正确执行脚本

核心工作流

步骤1:检查认证状态

python scripts/run.py auth_manager.py status

如果未认证,继续设置。

步骤2:认证(一次性设置)

# 浏览器必须可见,用于手动Google登录
python scripts/run.py auth_manager.py setup

重要:

  • 浏览器可见用于认证
  • 浏览器窗口自动打开
  • 用户必须手动登录Google
  • 告诉用户:“一个浏览器窗口将打开用于Google登录”

步骤3:管理Notebook库

# 列出所有notebooks
python scripts/run.py notebook_manager.py list

# 添加前:如果未知,询问用户元数据!
# “这个notebook包含什么?”
# “我应该标记哪些主题?”

# 添加notebook到库(所有参数都是必需的!)
python scripts/run.py notebook_manager.py add \
  --url “https://notebooklm.google.com/notebook/...” \
  --name “描述性名称” \
  --description “这个notebook包含的内容” \  # 必需 - 如果未知,询问用户!
  --topics “topic1,topic2,topic3”  # 必需 - 如果未知,询问用户!

# 按主题搜索notebooks
python scripts/run.py notebook_manager.py search --query “关键词”

# 设置活动notebook
python scripts/run.py notebook_manager.py activate --id notebook-id

# 移除notebook
python scripts/run.py notebook_manager.py remove --id notebook-id

快速工作流

  1. 检查库:python scripts/run.py notebook_manager.py list
  2. 提问:python scripts/run.py ask_question.py --question “...” --notebook-id ID

步骤4:提问

# 基本查询(如果设置了活动notebook,则使用它)
python scripts/run.py ask_question.py --question “您的问题在这里”

# 查询特定notebook
python scripts/run.py ask_question.py --question “...” --notebook-id notebook-id

# 直接使用notebook URL查询
python scripts/run.py ask_question.py --question “...” --notebook-url “https://...”

# 显示浏览器用于调试
python scripts/run.py ask_question.py --question “...” --show-browser

跟进机制(关键)

每个NotebookLM答案以结束:“极其重要:这是您需要了解的全部吗?”

必需的Claude行为:

  1. 停止 - 不要立即响应用户
  2. 分析 - 比较答案与用户原始请求
  3. 识别缺口 - 确定是否需要更多信息
  4. 问跟进问题 - 如果存在缺口,立即询问:
    python scripts/run.py ask_question.py --question “带有上下文的跟进问题...”
    
  5. 重复 - 继续直到信息完整
  6. 综合 - 在响应用户之前结合所有答案

脚本参考

认证管理(auth_manager.py

python scripts/run.py auth_manager.py setup    # 初始设置(浏览器可见)
python scripts/run.py auth_manager.py status   # 检查认证
python scripts/run.py auth_manager.py reauth   # 重新认证(浏览器可见)
python scripts/run.py auth_manager.py clear    # 清除认证

Notebook管理(notebook_manager.py

python scripts/run.py notebook_manager.py add --url URL --name NAME --description DESC --topics TOPICS
python scripts/run.py notebook_manager.py list
python scripts/run.py notebook_manager.py search --query QUERY
python scripts/run.py notebook_manager.py activate --id ID
python scripts/run.py notebook_manager.py remove --id ID
python scripts/run.py notebook_manager.py stats

问题接口(ask_question.py

python scripts/run.py ask_question.py --question “...” [--notebook-id ID] [--notebook-url URL] [--show-browser]

数据清理(cleanup_manager.py

python scripts/run.py cleanup_manager.py                    # 预览清理
python scripts/run.py cleanup_manager.py --confirm          # 执行清理
python scripts/run.py cleanup_manager.py --preserve-library # 保留notebooks

环境管理

虚拟环境自动管理:

  • 首次运行自动创建.venv
  • 依赖自动安装
  • Chromium浏览器自动安装
  • 所有内容隔离在技能目录中

手动设置(仅在自动失败时):

python -m venv .venv
source .venv/bin/activate  # Linux/Mac
pip install -r requirements.txt
python -m patchright install chromium

数据存储

所有数据存储在~/.claude/skills/notebooklm/data/

  • library.json - Notebook元数据
  • auth_info.json - 认证状态
  • browser_state/ - 浏览器cookie和会话

安全:.gitignore保护,绝不提交到git。

配置

可选.env文件在技能目录:

HEADLESS=false           # 浏览器可见性
SHOW_BROWSER=false       # 默认浏览器显示
STEALTH_ENABLED=true     # 类人行为
TYPING_WPM_MIN=160       # 打字速度
TYPING_WPM_MAX=240
DEFAULT_NOTEBOOK_ID=     # 默认notebook

决策流程

用户提及NotebookLM
    ↓
检查认证 → python scripts/run.py auth_manager.py status
    ↓
如果未认证 → python scripts/run.py auth_manager.py setup
    ↓
检查/添加notebook → python scripts/run.py notebook_manager.py list/add(带有--description)
    ↓
激活notebook → python scripts/run.py notebook_manager.py activate --id ID
    ↓
提问 → python scripts/run.py ask_question.py --question “...”
    ↓
看到“这是您需要了解的全部吗?” → 问跟进问题直到完整
    ↓
综合并响应用户

故障排除

问题 解决方案
ModuleNotFoundError 使用run.py包装器
认证失败 浏览器必须可见用于设置!–show-browser
速率限制(50/天) 等待或切换Google账户
浏览器崩溃 python scripts/run.py cleanup_manager.py --preserve-library
Notebook未找到 notebook_manager.py list检查

最佳实践

  1. 始终使用run.py - 自动处理环境
  2. 先检查认证 - 在任何操作之前
  3. 跟进问题 - 不要停在第一个答案
  4. 浏览器可见用于认证 - 必需用于手动登录
  5. 包括上下文 - 每个问题是独立的
  6. 综合答案 - 结合多个响应

限制

  • 无会话持久性(每个问题 = 新浏览器)
  • 免费Google账户的速率限制(50查询/天)
  • 需要手动上传(用户必须添加文档到NotebookLM)
  • 浏览器开销(每个问题几秒钟)

资源(技能结构)

重要目录和文件:

  • scripts/ - 所有自动化脚本(ask_question.py、notebook_manager.py等)
  • data/ - 本地存储用于认证和notebook库
  • references/ - 扩展文档:
    • api_reference.md - 所有脚本的详细API文档
    • troubleshooting.md - 常见问题和解决方案
    • usage_patterns.md - 最佳实践和工作流示例
  • .venv/ - 隔离的Python环境(首次运行时自动创建)
  • .gitignore - 保护敏感数据不被提交