GEO /
~1s 4-hop Agentic Search
TLDR: 4-hop research query, fully cited, 1,057 ms. The Dasein SDK runs the whole chain — decomposition, hops, refinement, ranking — as agentic_search=True on index.query(). Live demo: https://demo.daseinai.ai Timing waterfall: planner 199 ms + hop 0 247 ms + hop 1 223 ms + hop 2 203 ms + hop 3 34 ms + network 151 ms = 1,057 ms total. You're building an agent product. A user asks something that takes more than one lookup. Who is the daughter of Luke Skywalker's father? Resolve Luke's father, then his father's daughter. Two hops. A real legal-research question takes four. Clinical, the same. Financial, the same. Multi-hop is where your users get frustrated. Every retrieval architecture in production today gives up at least one of right, fast, or cheap on it. Right, fast, cheap — pick one until you compose the architecture. What the alternatives give up: Dense or hybrid one-shot — ~200 ms, ~$0.0003 per query. Confidently wrong on multi-hop. Matches keywords at hop 1, returns Vader, never reaches Leia. Demos great. Breaks on real questions. Graph RAG — 1–2 seconds, ~$0.02 per query. Works as long as the graph is clean. Most production graphs have Vader and Anakin as separate nodes, because most knowledge graphs aren't built by movie nerds. Chain snaps. Curation becomes a tax you pay forever. LLM-orchestrated agentic RAG — 10–15 seconds, ~$0.12 per query. Gets the right answer. The LLM reasons one step at a time, calls retrieval per hop, decides what to ask next. It works because the LLM is doing the work, and it pays LLM rates for every hop of that work. Twelve seconds feels broken. One second feels alive. $0.12 per query at 100,000 daily queries is over $4M a year just to make retrieval expensive. You can't prompt-engineer past those gaps. You have to change the architecture. What Dasein does: agentic_search=True on index.query() runs the chain on Dasein's side: sub-question decomposition, three to five retrieval hops against your own index, per-hop refinement, final ranking. The response is the same ranked list of documents a normal index.query() returns. The chain reasoning is what produced it. Four pieces, in a loop: A distilled planner decomposes the question, approximately 200 ms once per query, no LLM in the loop. A compressed vector index keeps the candidate pool in RAM, with single-digit milliseconds per retrieval at 10M vectors. See VDBBench at https://results.daseinai.ai/results Per-query α and per-query K run every hop. Fusion weight and result cutoff adapt to what each hop needs. A reader extracts the cited answer and grounds the next sub-question in it. Four-stage pipeline — planner, compressed index, dynamic hybrid plus Top-K, reader, with the agentic loop. Every retrieval setting documented on index.query() — mode, alpha, dynamic_hybrid, dynamic_top_k, filter, exact, phrase, fuzzy — runs on every hop. The McConaughey demo: Live at https://demo.daseinai.ai The query: What 2010 dream-heist movie was directed by the filmmaker who made the space-wormhole movie starring the actor who played the 'Alright, alright, alright' guy in Dazed and Confused? The planner decomposes it into four sub-questions. Hop 0: Who played the 'Alright, alright, alright' guy in Dazed and Confused? Matthew McConaughey. Hop 1: What space-wormhole movie starred Matthew McConaughey? Interstellar. Hop 2: Who directed Interstellar? Christopher Nolan. Hop 3: What 2010 dream-heist movie was directed by Christopher Nolan? Inception. Per-stage timing from one demo run: Open planner — 199.4 ms total. Hop 0 — embed 35.6 ms, retrieve 9.0 ms, decompress 0.1 ms, reader 202.2 ms, total 246.9 ms. Hop 1 — embed 33.1 ms, retrieve 5.9 ms, decompress 0.1 ms, reader 183.6 ms, total 222.7 ms. Hop 2 — embed 24.6 ms, retrieve 5.7 ms, decompress 0.1 ms, reader 173.0 ms, total 203.4 ms. Hop 3 — embed 27.5 ms, retrieve 6.4 ms, decompress 0.1 ms, reader 0.0 ms, total 34.0 ms. Stream and network — 150.7 ms. Total — 1,057.0 ms. 30 hits cited across the four hops. Per-hop breakdown — hop 3 reader time drops to zero in this run. Where you'd actually use this: Anywhere the answer needs composing across documents. Legal: case to citing cases to doctrinal context to controlling precedent. Clinical: drug to trials to subgroup to outcomes. Financial: company to filings to disclosure language to quantification. The corpus, the filters, and the cite-back UX change per vertical. The pipeline doesn't. See the research-agent architecture post for what the per-vertical builds look like. The SDK call: Python example: from dasein import Client. client = Client(api_key="dsk_..."). index = client.get_index("my-corpus"). response = index.query("What 2010 dream-heist movie was directed by the filmmaker who made the space wormhole movie starring the actor who played the 'Alright, alright, alright' guy in Dazed and Confused?", top_k=10, agentic_search=True, mode="hybrid", dynamic_hybrid=True, dynamic_top_k=True, include_answer=True, return_hops=True). Per-query α and per-query K run every hop. include_answer provides a final-hop one-liner. return_hops provides the per-hop trace for debug or UI. print(response.final_answer) returns Inception. print(response.n_hops, "hops"). For each result, print its ID and score. agentic_search=True needs text — the planner has to decompose the natural-language question. include_answer and return_hops are opt-in. Try it: pip install dasein-ai. Free key at https://api.daseinai.ai/auth/github Run whatever question takes your current agent ten seconds and watch what happens.