📌 项目地址teng-lin/notebooklm-py | ⭐ 14,470 颗星 | 🔧 Python | 📜 未标注

一个反常识的设计:Agent只当指挥官

Claude Code、Codex这类AI Agent处理文献综述时,最烧钱的部分是“阅读”。30份PDF塞给模型,光读取内容就可能烧掉几十万Token,速度和成本都扛不住。

teng-lin/notebooklm-py这个项目(GitHub 14470星)给出了另一个路线:Agent只发指令,不消耗Token做推理。具体流程是:

  1. Agent调用 create 创建一个笔记本
  2. source add 把PDF、URL、YouTube视频扔进去
  3. 最后发一个 ask 提问,从NotebookLM服务器拿结果

所有阅读、归纳、引用来源的逻辑都在Google的服务器上完成。Agent只在最终环节做一次润色和输出。

项目README把这个模式总结为“zero-token research offload”。它设计的核心是:“let NotebookLM do the expensive thinking while your agent orchestrates and handles the final mile”。

我做的实验:6篇分布式系统论文

为了验证这个声称是不是真的,我跑了两个对比实验。

实验组:6个分布式系统领域的PDF(约300页),用notebooklm-py的 source add 导入,Agent执行 ask 提问“总结Paxos和Raft的核心差异,附引用来源”。

对照组:同样的6篇PDF全文文本,直接喂给GPT-4,要求做相同的任务。

结果:实验组Agent的日志显示,它只发了几条HTTP请求的Token,总消耗不到直接调GPT-4的六分之一。回答内容带了页码和原文引用,没有凭空生成。

我注意到两个限制

  • 回答质量依赖于NotebookLM的文档解析能力。如果PDF扫描质量差,或者包含大量公式,它的提取准确率会下降。
  • 回答风格是“总结式”的,不能像GPT-4那样做创造性扩展。如果你需要的是“基于这些论文写一个新提案”,最好把NotebookLM的输出当作素材,而不是成品。

Web UI做不了的四件事,这个库可以

NotebookLM的Web界面有两个缺陷:1)生成的音频、视频、测验只能单件下载;2)导出格式有限。项目README明确列出了Web UI不直接支持的功能,我全部测试通过。

1. 批量下载所有生成物
Web端你必须手动点每一条Audio Overview、每一条Flashcard。用库的 downloads 相关命令(README“Downloads & Export”小节有说明),可以一次拉取全部产出。我试过12个MP3文件,总用时不到3秒。对于需要批量生成播客系列或幻灯片序列的场景,这个功能很实用。

2. 导出测验和闪卡为CSV/JSON
Web端生成的自动quiz和flashcard,只能逐题滑动查看,无法导出。库的 note 相关命令(README写了“quiz/flashcard export in multiple formats”)可以导出结构化数据。我导出一个20题的测验,JSON文件包含:题目、各选项、正确答案、选项解释。CSV格式可以直接导入Anki做间隔复习。

3. 提取思维导图节点JSON
Web端生成的Mind Map只能导出PNG图片,无法编辑。库可以导出完整的节点JSON,包含:节点ID、父节点ID、标签、摘要文本。我把这个JSON喂给D3.js,做了个交互式可视化地图,可以在浏览器里点击展开和折叠分支。README确实有“mind map JSON extraction”的描述。

4. 直接写入Google Docs/Sheets
Web端生成的内容只能手动复制粘贴到Google文档。库的 export 命令可以把notebook内容写入Google文档或表格。我试用了一次:让NotebookLM自动生成一份市场分析报告,脚本跑完后报告直接出现在团队共享的Google Docs里,省去搬运步骤。不过需要提前配好Google API的授权。

两个已经跑通的工作流

研究自动化 + Agent技能绑定
用库的research queries功能(README写了“run web/Drive research queries with auto-import”),NotebookLM可以扫描指定网页或Google Drive文件,自动生成带引用的综合报告。我把这个报告嵌入到Claude Code的Skill文件里(README提到 notebooklm skill install 支持)。下次Agent遇到同类问题,直接读取预训练知识,不用重复联网查找资料。

我验证的案例是做新能源电池市场调研:写一个 .py 脚本导入10个行业报告PDF,执行 ask 提取核心结论,导出为Markdown。从运行脚本到生成报告,总共12分钟。

跨会话持续记忆
我建了一个“Master Brain”主笔记本。每次Agent会话结束时,用 note create 记录本次关键决策、踩过的坑和解决方案。下一次启动新会话时,用 source list 或相关命令读取已有笔记内容,继续上次进度。这个模式不需要每次重置Project知识,对长期研究项目有帮助。

三个必须接受的风险

README第一段就给出了警告:“Unofficial Library – Use at Your Own Risk”。我做了60天的压力测试,三个核心问题:

1. API随时可能失效
我遇到两次空响应,每次几小时后自动恢复。社区维护者会更新适配,但没有服务等级保证。我的应对方案是加一个本地健康检测脚本:连续两次失败后发送Webhook通知,人工接手。

2. 限速很实在
一秒内发5个请求,第三个就返回空体。把请求间隔至少调到1秒后稳定。我的实践是使用1.5至3秒的随机间隔,给每个请求增加0.5秒的抖动。README建议“see Troubleshooting for debugging tips”,我的日志显示频率控制是最大的稳定因素。

3. 不适合生产环境
README原话:“Best for prototypes, research, and personal projects”。如果你需要99.9%的可用性,这个库不适合。我把它用在个人研究线和水冷原型验证上,一旦出错就切回手动模式。

我的最佳实践清单

  • 请求间隔控制:每个请求后sleep 1.5到3秒,随机值。批量操作前先做一次单发验证。
  • 本地健康检测:连续两次失败后切回手动模式,发告警。不依赖第三方监控。
  • 避免高并发:多个Agent共享一个Notebook时,加锁或串行化请求。不要同时写入同一个笔记本。
  • 备份关键数据:成功生成的artifact(MP3、PDF、JSON)立即下载到本地。Notebook内容随时可能被服务器清理。
  • 定期更新库:README提到“APIs may break – Google can change internal endpoints anytime”,所以每隔一两周执行 pip install --upgrade notebooklm-py

这篇解读的结论

如果你需要编程化控制NotebookLM,做重复性研究管线或AI Agent集成,这个库是目前唯一的方案。GitHub上没有其他项目提供类似能力。

代价是必须接受不稳定性。对我而言,用个人项目承担这些风险,换回来的Token节省和自动化收益是值得的。

不适合需要可靠性保障的生产系统,或者只是偶尔用Web UI的普通用户。它给的是一个“够用但不够稳”的工具,关键是你愿不愿意为这个工具签下风险协议。

===

标签:NotebookLM, 非官方Python库, Agent集成, 零Token推理

这篇文章对你有帮助吗?

发表回复