Skip to content
Akno

Reading memory

Akno separates evidence discovery, direct answering, exact reads, relationship inspection, time-based lookup, and automatic host context. The split keeps fast or inspectable operations from silently becoming generative.

Choose the right read operation

IntentOperationOutput
Find evidence for a fuzzy queryrecallRanked cited page and document cards
Ask for a direct grounded responseanswerVerified answer blocks, citations, and related identities
Open a known page or documentreadExact content, optionally a line range
Browse the taxonomylistFolders, filtered pages, or a tree
Inspect relationshipsgraphBounded exact evidence paths and locators, without bodies
Ask what happened in a periodtimelineAuthored events and typed dated-document evidence
Prepare one agent turncontextA bounded bundle; auto_recall is precision-first

Do not call both answer and recall by default for one question: answer already retrieves. Call recall separately when a person or agent also needs to inspect the evidence cards.

Recall

akno recall "When does the Zephyr QX-100 warranty expire?"
akno recall "invoice" --type receipt
akno recall "policy wording" --include source --depth full
akno recall "warranty" --source document --ownership orphan

Recall runs a staged pipeline:

query
  ├─ optional expansion
  ├─ lexical candidates
  ├─ optional semantic candidates
  └─ exact entities + bounded graph candidates

      rank fusion

  optional rerank + irrelevance qualification

  page/document assembly under one budget

The search arms use incompatible score scales, so Akno fuses ranks instead of comparing raw BM25, cosine, graph, or reranker values.

Recall chooses or accepts one mode:

ModeBest forBehavior
lookupA subject or phraseAdd synonyms and word forms
questionA question whose answer uses different wordingSearch the original plus a hypothetical answer form
exploreBroad discoveryFavor coverage and summaries

A result card reports role, relevance, contributing candidate arms, cited excerpts, and approximate budget. Question mode also reports concept coverage. A relevant page that does not cover one requested attribute is not evidence for that part of the answer.

Reranking also qualifies

A successful reranker may remove judged-irrelevant candidates. Candidates outside its bounded window are unjudged and are not used to fill holes the model never approved. If every judged candidate is rejected, recall returns honest empty.

If reranking fails or returns an invalid structured response, Akno preserves fusion order and reports typed degradation. It never applies an irrelevance filter from an unvalidated result.

Grounded answers

akno answer "How long is the Zephyr QX-100 warranty?"
akno answer "How long is the Zephyr QX-100 warranty?" --context
akno answer "How long is the Zephyr QX-100 warranty?" --rerank

answer uses question-oriented recall, then asks the answer role for structured cited blocks. Akno validates the opaque evidence labels, checks introduced numbers and negation against cited text, and renders persistent locators itself. A separate verifier call judges each answer block only against its nested evidence.

Unsupported blocks are withheld. A missing model produces degraded/not_answered; complete empty recall produces empty/not_found. If equally applicable evidence gives incompatible values without an authority rule, Akno abstains rather than choosing one or inventing a conflict explanation.

Reranking is off by default for answer because generation and verification already select supporting evidence. --rerank opts into another sequential model call for especially noisy corpora or weaker answer models. --context returns the exact bounded evidence shown to the model for a review interface.

Exact reads and browsing

akno read products/zephyr-qx-100
akno read products/zephyr-qx-100 --from 10 --to 20
akno read --document doc_a1b2c3d4

akno list --kind tree --depth 2
akno list --kind pages --folder products

read does no ranking. It can return a source page in full even though ordinary recall quotes it narrowly. A document read reports whether the original, an indexed extraction, or only identity metadata is available.

Use list before writing when the existing taxonomy or nearby page names matter.

Graph inspection

akno graph --slug people/ada-marlow --hops 2
akno graph --query "Zephyr QX-100 warranty" --relation related_entity
akno graph --entity ent_01JEXAMPLE --direction out --history

graph is not fuzzy search and does not answer questions. A slug or entity id gives an exact seed; a query extracts only declared exact names. Ambiguity stops traversal unless the optional contextual resolver already made a strongly supported select-or-abstain decision.

Traversal is bounded to three hops and 100 returned paths, with separate fan-out limits. Reaching a bound marks the result degraded so a partial graph never looks like proof that no other path exists. Paths contain compact node and relation identities plus source locators, not copied page claims. Follow the locator with read.

Timeline

akno timeline --since 2031-01 --until 2031-06
akno timeline --match warranty
akno timeline --subject people/ada-marlow
akno timeline --source document

Timeline combines authored events with typed date evidence from documents. A dated orphan document can appear without being converted into an event or canonical page. Owned documents remain grouped under their pages. File-created or file-modified metadata is used only when no supported date can be extracted, and it is labelled as metadata rather than authored fact.

Context for a deliberate agent turn

akno context "The Zephyr QX-100 needs service again" \
  --budget 8000 --pin products/zephyr-qx-100

The default context profile fits explicit pins, recent time evidence, a structure outline, and recall into one shared budget. It avoids four individually reasonable calls overflowing the host model when combined.

Automatic context for an agent host

A host that checks memory before every substantive turn should use the precision-first profile:

const bundle = await memory.context({
  profile: 'auto_recall',
  query: currentUserPrompt,
  conversation_context: recentTurns,
  budget: 1200,
});

auto_recall is evidence preparation, not another answering model. It omits ambient pins, timelines, folder outlines, and generated summaries. Exact page lines and document quotations keep their locators.

A strong exact or semantic match can activate directly; borderline candidates need qualification. Exact evidence excludes semantic near-duplicates. Attribute questions require evidence for the attribute, not merely the entity name. Conflicting values cause abstention. Recent conversation can resolve a narrow local reference but cannot make unrelated memory relevant.

empty is a normal “inject nothing” result. The host should call the profile at most once per turn, place non-empty evidence inside a clearly delimited untrusted-memory section, and never persist the returned bundle as new memory.

Search documentation