$ whoami
Abhishek Tripathi — Kanpur, India. raccoon-adjacent.
$ cat ~/.obsessions
agents that know when they're wrong
retrieval that cites its sources
traces you can actually read at 3am
$ which languages
/usr/bin/python
/usr/bin/typescript
/usr/bin/c++
$ uptime
awake,mostly. shipping since 2024.
$ echo $PHILOSOPHY
an answer without a source is a rumour
guardrails are cheaper than apologiesflowchart LR
Q(["🗣️ question"]) --> ROUTE{{"route"}}
ROUTE --> RET["retrieve"]
subgraph HYBRID ["hybrid search"]
direction TB
CH[("chromadb<br/>vectors")]
BM[("bm25<br/>keywords")]
end
RET --> CH
RET --> BM
CH --> RR["rerank"]
BM --> RR
RR --> GEN["generate"]
GEN --> CHK{"grounded?"}
CHK -->|"no — go dig-again"| RET
CHK -->|"yes"| OUT(["✅ answer + citations"])
classDef q fill:#36BCF7,stroke:#0F2027,color:#0F2027,font-weight:bold
classDef work fill:#203A43,stroke:#36BCF7,color:#ffffff
classDef store fill:#2C5364,stroke:#36BCF7,color:#ffffff
classDef gate fill:#6E44FF,stroke:#ffffff,color:#ffffff
classDef good fill:#2C7A7B,stroke:#ffffff,color:#ffffff
class Q q
class RET,RR,GEN work
class CH,BM store
class ROUTE,CHK gate
class OUT good
The interesting arrow is the one going backwards. A system that can't tell it failed to ground an answer will happily invent one instead.
trace a9f2c1 "why was my invoice charged twice?" 1,284 ms
│
├─ router.classify ................ ▇▇ 41 ms → billing
├─ retrieve.hybrid ............... ▇▇▇▇▇▇ 210 ms
│ ├─ chroma.vector_search ....... ▇▇▇▇ 148 ms k=12
│ └─ bm25.keyword ............... ▇ 34 ms k=12
├─ rerank.cross_encoder .......... ▇▇▇ 96 ms 12 → 4 chunks
├─ llm.generate .................. ▇▇▇▇▇▇▇▇ 612 ms groq · 284 tok
├─ guardrail.groundedness ........ ▇▇ 78 ms ✓ 4/4 cited
└─ guardrail.pii_scrub ........... ▇ 22 ms ✓ clean
──────────────
0 retries · ok
If you can't produce this for an LLM feature, you don't have a feature. You have a slot machine.
|
voice RAG in hindi
speech in, grounded speech out. the hard part was never the audio — it's proving the claim before you say it out loud. |
multi-agent handoffs
triage → specialist → escalation. every hop traced, because "the agent decided something" is not a debug log. |
sub-second inference
LLM calls sitting in the render path. if the user notices the model thinking, i've already lost. |
"just fine-tune it" usually no. most of the time your retrieval is bad, not your weights.
"the demo works" a demo is one lucky path through a system with no error handling.
"we'll add logging later" for anything non-deterministic, tracing is the feature. bolt it on afterwards and you're guessing.
"the model hallucinated" the model did exactly what it was built to do. you shipped it without a verifier.