These are the methods you’ll use most — reading from memory.

recall

recall(
    question: str,
    *,
    budget_tokens: int | None = None,
    section_types: list[str] | None = None,
    scope_signals: list[str] | None = None,
    keywords: list[str] | None = None,
    domain: str | None = None,
    label: str = "Claim",
) -> list[dict[str, Any]]
Search your memory and get back the most relevant pieces, up to your token budget. Returns a list of dicts with node_id, text, score, tokens, and provenance (where each piece came from).
spans = mem.recall("gliotransmission calcium", budget_tokens=8000)
assert spans[0]["provenance"]["paper_doi"] == "10.1/astro"

recall_papers

recall_papers(query: str) -> list[dict[str, Any]]
Recall indexed papers (metadata) matching a query.
papers = mem.recall_papers("metaplasticity astrocyte")
# [{"doi", "title", "year", "oa", "cached", "score"}, ...]

has_paper

has_paper(doi: str) -> bool
Whether a DOI is indexed in memory.

get_analysis

get_analysis(doi: str) -> dict[str, Any] | None
Fetch the structured analysis for a DOI (core_claim, acceptance, scorecard, sharpest_flaw), or None if there isn’t one.

extract_claims

extract_claims(doi: str) -> list[dict[str, Any]]
Return the claims Loom pulled from a paper’s analysis. Claims come from put_analysis.

Ingest to fill memory

Papers, documents, and analyses.