NotebookLM

notebooklm
分类通用
作者Alireza Rezvani
许可MIT
评分4.60/5
使用5.7K

NotebookLM — 浏览器自动化

> 要求: 浏览器自动化环境(支持 computer-use 的 Claude Code CLI、Claude Chrome 扩展程序或同等工具)。在非自动化上下文中,该技能将通过明确的“不支持”消息优雅地失败。

> 关键点: 该技能是 v2 集合中唯一的浏览器自动化技能。它遵循 research-pack 的 Agent Integrity Rules 约定。它适用不同的约束条件(UI 动态变化、异步生成、登录墙)。

步骤 0:浏览器上下文设置(强制)

在执行任何其他操作之前,请验证浏览器自动化是否可用:

1. 检查运行环境中是否加载了浏览器控制工具(screenshot, click, find-element, navigate)。
2. 如果不可用 $\rightarrow$ 停止并显示明确消息: “此技能需要浏览器自动化。当前处于 {context} 环境,无法继续。请使用支持 computer-use 的 Claude Code CLI、Claude Chrome 扩展程序或同等工具。”
3. 如果可用 $\rightarrow$ 截取初始屏幕截图,导航至 https://notebooklm.google.com
4. 通过截图检测登录墙。 如果检测到登录界面:停止并提示 “请在浏览器中登录 NotebookLM,然后重新调用此技能。” 切勿尝试自动处理登录过程。

阶段 0:需求确认(操作路由)

最多提出 4 个强制性问题,每次一个,按依赖顺序询问。大多数调用在 Q3 停止。

Q1 (根问题) — 操作类型

> 您想让我做什么?请选择一项:
>
> 1. 读取 / 提取 — 向现有笔记本提问
> 2. 添加来源 — 将内容(URL、文本、文件、Google 文档或综合内容)推送到笔记本
> 3. 生成 Studio 输出 — 音频/视频概览、思维导图、报告(简报文档、学习指南、FAQ、时间线)、闪卡、测验、信息图或幻灯片 —— 具体选项请参考实时 Studio 面板
> 4. 创建新笔记本 — 使用标题 + 初始来源进行初始化
>
> *询问原因:* 每项操作在 UI 中的路径不同且需要不同的参数。预先确定操作可避免浪费截图次数,并让我仅询问相关的后续问题。

强制选择。 如果用户仅说 “打开 NotebookLM” 而未指定操作,拒绝开始并重新询问 Q1。

Q2 (依赖于 Q1) — 笔记本身份

> 哪个笔记本? *(针对操作 1, 2, 3 询问 —— “创建新笔记本”无需询问)*
>
> *询问原因:* 如果您提供名称,我将在主页搜索;如果您提供 URL,我将直接导航。对于含义模糊的名称,我将提供消歧提示。
截图。

对于操作 4(创建新笔记本):替换为“新笔记本的标题是什么?”

Q3(取决于 Q1)— 特定操作参数

操作 1(读取/提取):
> “你想问笔记本什么问题?请使用自然语言描述——笔记本的聊天功能处理此类请求效果最好。”

操作 2(添加来源):
> “来源类型是什么?请选择一项:
> 1. URL / 网站 / YouTube 链接
> 2. 复制的文本(在此粘贴或指向内容)
> 3. 文件上传(提供绝对路径)
> 4. Google 文档(链接)
> 5. 综合内容(我将预处理并作为‘复制的文本’添加)
>
> *询问原因:* 每种来源类型在“添加来源”对话框中都有不同的子流程。提前选择可以节省步骤。”

操作 3(Studio 输出):
> “需要哪种 Studio 输出?截至 2026-06,Studio 面板提供:音频概览 (Audio Overview)、视频概览 (Video Overview)、思维导图 (Mind Map)、报告(简报 / 学习指南 / FAQ / 时间线 / 自定义)、闪卡 (Flashcards)、测验 (Quiz)、信息图 (Infographic) 和幻灯片 (Slides) —— 我会先截取实时面板图,确认你的账户实际显示的内容后再点击。另外:有任何自定义提示词方向吗?默认提示词生成的输出质量平庸 —— 我总是会打开自定义菜单并编写详细的提示词。 请告诉我切入角度或目标受众。
>
> *询问原因:* 输出类型决定了需要寻找的 UI 按钮。而自定义提示词是保证质量的必要条件。”

操作 4(创建新笔记本):
> “初始来源是什么?请提供 URL、文件路径,或回答‘稍后添加’。”

Q4(取决于 Q1 = 操作 3)— Studio 自定义提示词详情

> 请告诉我 Studio 输出的切入角度、目标受众和长度。示例:
>
> - 音频概览: “两位主持人对话,面向非技术高管,时长 8-10 分钟,侧重商业影响而非技术深度”
> - 信息图: “决策树风格,行动导向,最多 6 个面板,海军蓝单色”
> - 学习指南: “本科水平,包含定义 + 每个概念 3 个练习题”
>
> *询问原因:* 这将成为自定义提示词。Studio 默认提示词输出平庸 —— 具体指令才能产生精准输出。

仅在生成 Studio 输出(Q1=3)时询问。其他情况跳过。

停止条件: 在 Q4 之后(或因依赖关系提前跳过)提交并开始执行操作序列。

参考标准请见 references/studio_output_custom_prompts.md

笔记本检索 (Notebook Discovery)

对于操作 1-3(需要现有笔记本):

1. 导航至首页 $\rightarrow$ 截图
2. 如果用户提供了 URL $\rightarrow$ 直接导航
3. 如果用户提供了 名称
- 使用语义化 find() 通过可见标题文本定位笔记本卡片
- 如果有多个匹配项 $\rightarrow$ 截图首页,列出选项,请用户指定
- 如果没有匹配项 $\rightarrow$ 请用户提供 URL 或确认拼写

对于操作 4(创建新笔记本):
1. 在首页定位“New notebook”按钮
2. 点击 $\rightarrow$ 根据 Q2 设置标题
3. 根据 Q3 添加初始来源

操作 1:读取 / 提取

1. 打开笔记本(参考上述检索流程)
2. 定位聊天输入框(通过语义化 find 或截图坐标)
3. 输入问题(使用用户在 Q3 中提供的自然语言描述)
4. 提交(回车或点击发送按钮)
5. 等待 3-5 秒
6. 截取响应区域的图
7. 提取并以 整洁的格式 呈现(而非原始聊天记录 dump)

操作 2:添加来源

根据来源类型的子流程:

| 类型 | UI 流程 |
|---|---|
| URL / 网站 / YouTube | Add Source $\rightarrow$ Link $\rightarrow$ 粘贴 URL |
| 复制的文本 | Add Source $\rightarrow$ Copied text $\rightarrow$ 粘贴内容 |
| 文件上传 | 使用文件上传工具,提供绝对路径 + 输入引用(绝不点击原生文件选择器) |
Google Doc | 添加来源 → Google Docs → Drive 选择器 |
| 综合内容 | 在其他地方预处理内容,然后作为“复制的文本”添加 |

每次添加后: 等待导入加载图标,截屏确认成功。

综合内容模式(高效): 不要让 NotebookLM 直接导入可能包含噪声的原始 URL,而应先预处理内容(提取正文,去除导航/广告/评论),然后将其作为“复制的文本”添加。这样能显著提升摘要质量。

操作 3:Studio 输出

以发现为准,不要主观臆断。 NotebookLM 的 Studio 功能清单会随版本更新和账户等级而变化。截至上次验证(2026-06),面板提供:音频概览 (Audio Overview)、视频概览 (Video Overview)、思维导图 (Mind Map)、报告(简报、学习指南、FAQ、时间线、自定义报告格式)、闪卡 (Flashcards)、测验 (Quiz)、信息图 (Infographic)、幻灯片 (Slides)。将此列表视为参考而非绝对标准——以 Studio 面板的实时截屏为准。NotebookLM 的 UI 演进迅速;请对照实际产品进行验证,并在发生偏差时更新本节(Studio 功能清单最后验证时间:2026-06)。

强制工作流:

1. 找到 Studio 面板(右侧;可能需要切换开关)并截屏——你看到的磁贴才是该账户实际支持的输出类型
2. 找到所需类型的具体输出按钮(如果不可见,在判定为不可用前,请先检查“探索更多/Discover more”或溢出菜单)
3. 打开自定义菜单(按钮旁的 V 型图标/箭头)——不要直接点击主按钮
4. 编写详细的自定义提示词(参考 Q4)
5. 确认并提交
6. 不要等待生成完成——确认生成已开始,通知用户,然后返回

自定义提示词示例(4 种输出类型)

音频概览 (Audio Overview):
> “一名研究员与一名资深从业者之间的双人对话。受众:做出预算决策的非技术高管。时长:8-10 分钟。侧重于业务影响而非技术深度。每个要点包含一个具体案例。简要提及反方观点。”

信息图 (Infographic):
> “决策树风格。行动导向(每个面板以决策或行动结束)。最多 6 个面板。配色为海军蓝单色 + 琥珀色高亮。每个面板包含:标题(4-6 个词)、1-2 句正文、决策/行动行。无需填充面板。”

学习指南 (Study Guide):
> “本科水平(定义所有技术术语)。结构:6 个概念 × 每个概念 4 个元素(定义 / 重要性 / 一个计算示例 / 3 道练习题)。练习题需符合布鲁姆认知目标的高阶思维(应用/分析),而非简单的记忆回顾。”

幻灯片 (Slides):
> “最多 12 页。每页正文 1-2 句话。每页附带演讲者备注,包含:一个具体案例 + 一个可能的受众质疑 + 如何应对。正文禁止使用项目符号——仅限散文体。最后一页为行动号召 (CTA)。”

更多内容请参阅 references/studio_output_custom_prompts.md

操作 4:创建新笔记本

1. 导航至主页
2. 点击“新建笔记本 (New notebook)”
3. 根据 Q2 设置标题
4. 根据 Q3 添加初始来源(根据来源类型执行操作 2 的子流程)
5. 等待自动摘要生成(此步骤是同步的——通常在 30 秒内完成)
6. 截屏最终状态

关键异步行为

> 异步输出规则: 对于 Studio 生成内容(尤其是 音频概览 —— 需 5-10 分钟),不要等待完成。否则用户的会话会超时。
>
> 工作流:点击生成 $\rightarrow$ 通过截屏确认生成已开始 $\rightarrow$ 告知用户“生成中 —— NotebookLM 将在完成后通知您”
“u when ready” → 结束任务。

这就是 fire-and-notify(触发并通知) 模式。它与 add-source 和 auto-summary(这两者速度足够快,可以等待)不同。

使用 scripts/async_action_classifier.py 来确定每个操作是“等待”还是“通知”:

| 操作 | 等待? |
|---|---|
| 添加来源 (URL/文本/文件) | 是 — 等待导入加载动画 (~5-30秒) |
| 读取/提取 (聊天) | 是 — 等待响应 (3-5秒) |
| Studio: 音频概览 (Audio Overview) | — 触发并通知 (5-10 分钟) |
| Studio: 视频概览 (Video Overview) | — 触发并通知 (5-15 分钟) |
| Studio: 信息图 / 幻灯片 / 思维导图 | — 触发并通知 (2-5 分钟) |
| Studio: 学习指南 / 简报 / FAQ / 闪卡 / 测验 | 是 — 等待 ~30-60秒 |
| 创建新笔记本 | 是 — 等待自动摘要 (<30秒) |

bash
# 为任何操作获取判定结果 + 可直接粘贴的通知消息
python3 scripts/async_action_classifier.py --action "video overview"

-> Verdict: FIRE_AND_NOTIFY, estimated 5-15 minutes, with the exact

"NOT waiting in this session" message to relay to the user

参考 references/async_action_discipline.md 获取标准规范。

截图优先原则 (Screenshot-First Discipline)

NotebookLM 是一个 动态单页应用 (SPA),其 UI 会根据以下因素而变化:

  • 账户层级 (免费版 vs Plus vs 企业版)

  • 功能推送 (某些 Studio 类型尚未对所有用户开放)

  • 近期的 UI 变更 (Google 频繁迭代产品)

每次 UI 操作前必须先截图。 原因如下:

1. 在操作前验证 UI 是否符合预期
2. 尽早发现登录拦截页
3. 检测意外的布局变更
4. 为调试提供审计追踪

在每次关键的 UI 交互前,请使用 screenshot()(或浏览器自动化工具中的等效函数)。

参考 references/browser_automation_canon.md 获取规范。

先 find() 后点击

尽可能在像素坐标之前使用 语义化元素查找器

  • find(text="Audio Overview") → 无论位置如何都能返回元素
  • click(x=420, y=380) → UI 重新排列时会失效

语义化查找器能应对微小的 UI 变更,而像素坐标不能。

仅在以下情况回退到坐标点击:

  • 语义化 find() 未返回结果

  • 元素没有稳定的文本/aria-label/data-attribute

  • 视觉位置是唯一可靠的信号

将输出保存至工作区

对于产生有用信息的“读取/提取”操作:

1. 清晰地提取聊天响应(去除 UI 装饰)
2. 格式化为易读形式(根据情况使用段落、列表、代码块)
3. 如果用户要求 $\rightarrow$ 保存到文件 (${WORKSPACE}/notebooklm/<notebook-slug>-<action>-<date>.md)
4. 否则 $\rightarrow$ 在聊天中作为最终摘要返回

对于 Studio 输出:
1. NotebookLM 托管输出内容(音频概览在应用内,信息图可下载等)
2. 向用户报告位置(URL 或应用内导航路径)
3. 不要尝试将 Studio 输出下载/保存到本地工作区 —— 这是 NotebookLM 的职责

回报格式

完成任何操作后:

1. 如果视觉上相关,请拍摄最终截图
2. 提供 简洁的摘要(而非原始聊天记录):
- 使用的笔记本(名称)
- 执行的操作(具体)
- 结果(1-2 句话)
- 对于生成的输出:创建了什么 + 在哪里 + 何时就绪
3. 对于 fire-and-notify 操作:明确告知 “NotebookLM 将在就绪时通知您”

错误处理

| 故障 | 行为 |
|---|---|
| 浏览器自动化不可用 | 快速失败,提示 “此技能需要浏览器自动化” (步骤 0 停止) |
| 检测到登录拦截页 | 停止。告知用户登录 |
n. 不要尝试自动登录。 |
| 匹配到多个同名笔记本 | 截屏首页,列出选项,请用户指定 |
| 来源导入加载图标卡住 > 60秒 | 记录超时,询问用户是否重试 |
| 面板中未找到 Studio 按钮 | 向下滚动或寻找“Discover more”;若仍未找到,记录该账户可能未启用此功能 |
| 聊天响应在 10 秒内未出现 | 截屏,检查错误状态,重试一次 |
| 页面布局意外变更 | 截屏,描述可见内容,请用户指导 |

工具链

| 脚本 | 角色 |
|---|---|
| scripts/action_router.py | Q1-Q4 回答 $\rightarrow$ 行动计划 + UI 流程 + 必要参数 |
| scripts/custom_prompt_template_generator.py | Studio 输出类型 + 受众 + 长度 $\rightarrow$ 初始自定义提示词 |
| scripts/async_action_classifier.py | 行动名称 $\rightarrow$ 等待或通知模式(针对慢速生成采用“触发并通知”模式) |

参考资料

应拒绝的反模式

  • 使用缺乏抽象的特定工具名称(例如:硬编码 "Claude Chrome Extension")
  • 同步等待 Studio 生成结果(尤其是 Audio Overview)
  • 在操作之间跳过截图
  • 在有语义化 find() 可用时使用像素坐标
  • 尝试自动处理登录流程
  • 在未打开自定义菜单的情况下生成 Studio 输出
  • 使用 Studio 默认提示词(始终编写自定义提示词)

---

版本: 1.0.0
源规范: megaprompts/03-notebooklm-megaprompt.md
构建模式: 路径 B(直接转换)。浏览器自动化形态 —— 与研究包(research-pack)约定有所不同。