Cards = question, chunks, tool callsTray = the promptGreen tube = KV cacheOut-basket = printed answersLibrary desk: the arm fetches index cards into the tray. The reader reads the tray first. A fuller tray means a longer wait. Agents add a card per tool call.Retrieval-augmented generation as a library: documents are cut into chunks and filed as index cards by embedding (here nomic-embed-text, about 137 M parameters, 768-dim vectors). A question is stamped into a vector, the arm pulls the top-k cards by cosine similarity, and every retrieved token lengthens the prompt the chat model must read before its first token. In agent mode the reader prints a thin tool-call slip (about 120 tokens of JSON) into the tray; the arm takes it to the incline lift, the loop carries it to a calculator, a file drawer or a web terminal, and it comes back as a thick result card (call plus about 800 tokens of result, a page or file excerpt) that the arm files in the tray before the context is read again; with prefix caching only the new cards are read. The glass tube fills with green as the reader writes the KV cache; past the room left after the weights its outline turns red and cards spill onto the bench. Estimates from _model.js for Q4_K_M weights and an FP16 KV cache: decode from memory bandwidth, prefill ≈ 2 × active params × tokens ÷ (dense FP16 tensor rate × 40%), the rate taken as NVIDIA's AI TOPS (FP4, sparse) ÷ 8 — about 419 TFLOPS on a 5090, 4.3 on the M4. Attention's own cost grows with context and is left out, so long prompts are optimistic.