notebooklm-deep-research
Use NotebookLM's research-agent capability for questions that need depth beyond a chat query — multi-step reasoning, web search, Drive scan. Returns a structured report stored as a wiki node so it stays linkable.
Pre-flight checks
Wiki/Libraries/{library_slug}.mdexists.- NotebookLM session valid. Phase 1 fallback: scaffold an empty research note with
status: pending-installationand surface to Adam.
Procedure
1. Fire the research job (Phase 2+)
- Use
notebooklm-py's research-agent withmode={fast|deep}andauto_import={bool}. - Capture
report_id. The library may take 30s–several minutes (deep mode).
2. Wait & retrieve
- Poll for completion (with a sane timeout — deep mode can be 5+ min).
- On completion, fetch the structured report (markdown).
3. Write the wiki node
Path: Wiki/Notes/research-{YYYY-MM-DD}-{question-slug}.md
Use the wiki-node template. Frontmatter:
type: wiki-node
node_kind: concept
node_subkind: research-report
created: {today}
last_synthesized: {today}
sources:
- "<a class="wikilink wikilink-broken" href="#">Wiki/Libraries/{library_slug}</a>"
links: [] # filled in step 4
status: synthesized
confidence: medium
tags: [research, source/notebooklm]
notebooklm_report_id: {report_id}
research_question: "{question}"
research_mode: {mode}
Body: NotebookLM's report markdown, lightly cleaned.
4. Connect to the graph
- Scan the report for entities, decisions, brands, people. For each match against existing wiki nodes, add a
<a class="wikilink wikilink-broken" href="#">wikilink</a>tolinks:frontmatter and inline in the body. - If the question is decision-shaped, optionally cross-link to
Departments/Decisions/Memos/if a relevant memo exists.
5. If auto_import was true
- Run notebooklm-sync for
library_slugso any new sources NLM imported get reconciled into the wiki Sources table.
6. Append Log entry
- input:
library={library_slug}, question="{question[:80]}...", mode={mode}, auto_import={auto_import} - output:
report_path={path}, report_id={report_id} - artifacts:
<a class="wikilink wikilink-broken" href="#">Wiki/Notes/research-{date}-{slug}</a>,<a class="wikilink wikilink-broken" href="#">Wiki/Libraries/{library_slug}</a>
When to use this vs notebooklm-query
| Use case | Use |
|---|---|
| Quick fact lookup, single-paragraph answer | notebooklm-query |
| Multi-source synthesis, "explain this topic comprehensively" | notebooklm-deep-research |
| Decision needs grounding (Steelman/Devils-Advocate phase) | start with notebooklm-query; escalate to deep-research only if the dialectic needs more depth |
| Building out a new wiki concept hub | notebooklm-deep-research then synthesize the report into atomic Wiki/Concepts/ nodes |
Hard rules
- Deep research jobs are expensive (rate-limit + time). Don't fire reflexively — confirm the question warrants the depth.
- Never
auto_import: truewithout Adam's explicit confirmation — it can pull in surprising sources from web search. - Always store the report as a wiki node (not just in conversation) — reports take effort; preserve them.
Failure modes
- Job times out — log as failed; let Adam retry.
- Job returns empty (rare; happens with very narrow library + broad question) — prompt Adam to widen the library or sharpen the question.
- Auto-imported source is gated/paywalled — NLM will report the failure inline; pass through to the report and flag.