<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>VidyalAI</title><description>Deep dives on designing production LLM systems.</description><link>https://vidyal.ai/</link><item><title>Designing a RAG System for 10 Million Documents</title><link>https://vidyal.ai/blog/rag-system-10m-documents/</link><guid isPermaLink="true">https://vidyal.ai/blog/rag-system-10m-documents/</guid><description>How to size, build and measure retrieval-augmented generation over 10M documents: ingestion, hybrid retrieval, reranking, ACLs, cost and evals.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>Retrieval &amp; RAG</category><category>rag</category><category>vector-search</category><category>retrieval</category><category>evals</category><category>architecture</category></item><item><title>Debugging a RAG System That Gives Wrong Answers</title><link>https://vidyal.ai/blog/debugging-rag-wrong-answers/</link><guid isPermaLink="true">https://vidyal.ai/blog/debugging-rag-wrong-answers/</guid><description>A stage-by-stage method for localizing RAG failures: build a replayable failure set, attribute each case to a stage, fix the biggest bucket, and gate on it.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>Retrieval &amp; RAG</category><category>rag</category><category>evals</category><category>llm-as-judge</category><category>observability</category><category>hallucination</category></item><item><title>Chunking Legal Contracts for Retrieval</title><link>https://vidyal.ai/blog/chunking-legal-contracts/</link><guid isPermaLink="true">https://vidyal.ai/blog/chunking-legal-contracts/</guid><description>Why fixed-size chunks fail on contracts, and how to chunk by clause with context headers, defined terms, cross-references and amendment lineage.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>Retrieval &amp; RAG</category><category>chunking</category><category>rag</category><category>retrieval</category><category>evals</category></item><item><title>BM25 vs Dense vs Hybrid Search: When to Use Each</title><link>https://vidyal.ai/blog/bm25-dense-hybrid-search/</link><guid isPermaLink="true">https://vidyal.ai/blog/bm25-dense-hybrid-search/</guid><description>How lexical, dense, learned-sparse and late-interaction retrieval fail differently, how to fuse them with RRF, and how to choose on your own traffic.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>Retrieval &amp; RAG</category><category>retrieval</category><category>vector-search</category><category>rag</category><category>reranking</category><category>evals</category></item><item><title>Adding a Reranker and Proving It Helped</title><link>https://vidyal.ai/blog/reranker-evaluation/</link><guid isPermaLink="true">https://vidyal.ai/blog/reranker-evaluation/</guid><description>How to add a cross-encoder reranker to a RAG pipeline, size it, and prove the gain with paired offline evals, end-to-end checks and a guarded A/B test.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>Retrieval &amp; RAG</category><category>reranking</category><category>retrieval</category><category>evals</category><category>latency</category><category>cost</category></item><item><title>Cutting LLM Cost by 70% Without Losing Quality</title><link>https://vidyal.ai/blog/cut-llm-cost-70-percent/</link><guid isPermaLink="true">https://vidyal.ai/blog/cut-llm-cost-70-percent/</guid><description>How to stack prompt caching, model routing, batch APIs and token hygiene into a 70-80% cost cut, with an eval gate that proves quality held.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>Cost, Latency &amp; Serving</category><category>cost</category><category>caching</category><category>routing</category><category>evals</category></item><item><title>Reducing Time to First Token in a Chat App</title><link>https://vidyal.ai/blog/reduce-time-to-first-token/</link><guid isPermaLink="true">https://vidyal.ai/blog/reduce-time-to-first-token/</guid><description>Decompose TTFT into network, pre-model work, queueing and prefill, then cut each stage: parallelism, prefix caching, chunked prefill and headroom.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>Cost, Latency &amp; Serving</category><category>latency</category><category>serving</category><category>caching</category><category>gpu</category><category>streaming</category></item><item><title>Designing a Semantic Cache with Hit-Rate Tracking</title><link>https://vidyal.ai/blog/semantic-cache-hit-rate-tracking/</link><guid isPermaLink="true">https://vidyal.ai/blog/semantic-cache-hit-rate-tracking/</guid><description>A layered semantic cache for LLM responses: scoped keys, tuned thresholds, borderline verification, invalidation, and false-hit-aware hit-rate metrics.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>Cost, Latency &amp; Serving</category><category>caching</category><category>vector-search</category><category>cost</category><category>observability</category></item><item><title>Routing Requests Between a Cheap and a Strong Model</title><link>https://vidyal.ai/blog/routing-cheap-and-strong-models/</link><guid isPermaLink="true">https://vidyal.ai/blog/routing-cheap-and-strong-models/</guid><description>Design an LLM router that sends each request to the cheapest good-enough model: rules, learned routers, cascades, threshold tuning and drift monitoring.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>Cost, Latency &amp; Serving</category><category>routing</category><category>cost</category><category>evals</category><category>llm-as-judge</category></item><item><title>Building Tool-Using Agents That Work Reliably</title><link>https://vidyal.ai/blog/reliable-tool-using-agents/</link><guid isPermaLink="true">https://vidyal.ai/blog/reliable-tool-using-agents/</guid><description>Tool-use reliability is a systems property: tool design, a guarded control loop, permission gates, and pass^k evals on verifiable end states.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>Agents &amp; Tool Use</category><category>agents</category><category>tool-use</category><category>structured-output</category><category>evals</category><category>prompt-injection</category></item><item><title>Detecting and Recovering from Agent Loops</title><link>https://vidyal.ai/blog/agent-loop-detection-recovery/</link><guid isPermaLink="true">https://vidyal.ai/blog/agent-loop-detection-recovery/</guid><description>Classify why an agent loops, add harness guardrails and better tool feedback, and recover with an escalation ladder you can measure.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>Agents &amp; Tool Use</category><category>agents</category><category>tool-use</category><category>observability</category><category>evals</category></item><item><title>Designing Long-Term Memory for an LLM Assistant</title><link>https://vidyal.ai/blog/long-term-memory-assistant/</link><guid isPermaLink="true">https://vidyal.ai/blog/long-term-memory-assistant/</guid><description>A tiered memory design with explicit write, read and forgetting policies, plus the benchmarks and production signals that show it works.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>Agents &amp; Tool Use</category><category>memory</category><category>agents</category><category>retrieval</category><category>privacy</category><category>evals</category></item><item><title>Guaranteeing Valid JSON Output from LLMs</title><link>https://vidyal.ai/blog/guaranteed-valid-json-output/</link><guid isPermaLink="true">https://vidyal.ai/blog/guaranteed-valid-json-output/</guid><description>Enforce JSON Schema at decode time, design schemas that keep quality high, and add validation, repair and truncation handling on top.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>Agents &amp; Tool Use</category><category>structured-output</category><category>tool-use</category><category>serving</category><category>evals</category></item><item><title>Detecting and Reducing LLM Hallucinations</title><link>https://vidyal.ai/blog/detecting-reducing-hallucinations/</link><guid isPermaLink="true">https://vidyal.ai/blog/detecting-reducing-hallucinations/</guid><description>Separate hallucination types, detect them with claim-level verification and uncertainty signals, and reduce them without making the model useless.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>Evaluation &amp; Reliability</category><category>hallucination</category><category>evals</category><category>rag</category><category>llm-as-judge</category></item><item><title>Building an Eval Suite for a Customer Support Bot</title><link>https://vidyal.ai/blog/support-bot-eval-suite/</link><guid isPermaLink="true">https://vidyal.ai/blog/support-bot-eval-suite/</guid><description>Build support-bot evals from real failures: layered offline tests, calibrated judges, statistically sound release gates and a production flywheel.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>Evaluation &amp; Reliability</category><category>evals</category><category>llm-as-judge</category><category>agents</category><category>tool-use</category><category>observability</category></item><item><title>Making LLM-as-a-Judge Trustworthy: Calibration, Bias and Drift</title><link>https://vidyal.ai/blog/trustworthy-llm-as-a-judge/</link><guid isPermaLink="true">https://vidyal.ai/blog/trustworthy-llm-as-a-judge/</guid><description>Treat an LLM judge like a measurement instrument: calibrate it against human labels, remove its known biases, and size your eval sets for real error bars.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>Evaluation &amp; Reliability</category><category>evals</category><category>llm-as-judge</category><category>observability</category></item><item><title>Defending Tool-Using Agents Against Prompt Injection by Design</title><link>https://vidyal.ai/blog/prompt-injection-defense-tool-agents/</link><guid isPermaLink="true">https://vidyal.ai/blog/prompt-injection-defense-tool-agents/</guid><description>Why model-level filters can&apos;t stop prompt injection, and how control/data separation, taint tracking and sink policies make attacks harmless.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>Security &amp; Privacy</category><category>security</category><category>prompt-injection</category><category>agents</category><category>tool-use</category><category>architecture</category></item><item><title>Building a PII Redaction Gateway in Front of Your LLM</title><link>https://vidyal.ai/blog/pii-redaction-gateway/</link><guid isPermaLink="true">https://vidyal.ai/blog/pii-redaction-gateway/</guid><description>A layered design for detecting, pseudonymizing and re-identifying PII before it reaches a model, and how to measure the leak rate honestly.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>Security &amp; Privacy</category><category>privacy</category><category>security</category><category>architecture</category><category>observability</category></item><item><title>Fine-Tuning vs RAG vs Prompting: An Eval-First Decision Procedure</title><link>https://vidyal.ai/blog/fine-tuning-vs-rag-vs-prompting/</link><guid isPermaLink="true">https://vidyal.ai/blog/fine-tuning-vs-rag-vs-prompting/</guid><description>Diagnose whether your gap is knowledge or behavior, then climb from prompting to RAG to fine-tuning only when the cheaper rung plateaus.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>Fine-tuning &amp; Adaptation</category><category>fine-tuning</category><category>rag</category><category>evals</category><category>cost</category><category>architecture</category></item><item><title>Fine-Tuning a Small Model with LoRA on 5,000 Examples</title><link>https://vidyal.ai/blog/lora-fine-tuning-5k-examples/</link><guid isPermaLink="true">https://vidyal.ai/blog/lora-fine-tuning-5k-examples/</guid><description>A practical LoRA recipe for an 8B model on 5K examples: data hygiene, hyperparameters, a real GPU memory budget, and eval-driven checkpoint selection.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>Fine-tuning &amp; Adaptation</category><category>fine-tuning</category><category>lora</category><category>evals</category><category>gpu</category><category>serving</category></item><item><title>Serving Open-Weight LLMs at Scale: Batching, KV Cache, Quantization</title><link>https://vidyal.ai/blog/serving-open-llms-at-scale/</link><guid isPermaLink="true">https://vidyal.ai/blog/serving-open-llms-at-scale/</guid><description>How to size and run an open-weight LLM fleet: prefill vs decode, KV-cache math, continuous batching, FP8/FP4 quantization and goodput per dollar.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>Cost, Latency &amp; Serving</category><category>serving</category><category>gpu</category><category>latency</category><category>cost</category><category>caching</category></item><item><title>Streaming LLM Responses over SSE and Surviving Disconnects</title><link>https://vidyal.ai/blog/sse-streaming-disconnects/</link><guid isPermaLink="true">https://vidyal.ai/blog/sse-streaming-disconnects/</guid><description>Stream tokens with server-sent events, decouple generation from the connection, resume with Last-Event-ID, and cancel cleanly so GPUs are freed.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>Production Engineering</category><category>streaming</category><category>latency</category><category>architecture</category><category>serving</category></item><item><title>Tracing Every Step of a Multi-Agent Workflow</title><link>https://vidyal.ai/blog/tracing-multi-agent-workflows/</link><guid isPermaLink="true">https://vidyal.ai/blog/tracing-multi-agent-workflows/</guid><description>Model multi-agent runs as one OpenTelemetry trace: GenAI span conventions, context propagation across queues, private content storage and tail sampling.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>Production Engineering</category><category>observability</category><category>agents</category><category>tool-use</category><category>privacy</category><category>evals</category></item><item><title>Rolling Back a Bad Prompt Change in Production</title><link>https://vidyal.ai/blog/prompt-rollback-production/</link><guid isPermaLink="true">https://vidyal.ai/blog/prompt-rollback-production/</guid><description>Make prompt rollback a sub-minute alias flip, catch regressions with canaries and guardrail metrics, and clean up what the bad prompt left behind.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>Production Engineering</category><category>deployment</category><category>evals</category><category>observability</category><category>architecture</category></item><item><title>Designing a ChatGPT-Style Chat Service for 1M Daily Users</title><link>https://vidyal.ai/blog/chat-service-1m-daily-users/</link><guid isPermaLink="true">https://vidyal.ai/blog/chat-service-1m-daily-users/</guid><description>Back-of-envelope sizing, architecture and overload strategy for an LLM chat product at 1M DAU, where GPUs set both the cost and the latency.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>Production Engineering</category><category>architecture</category><category>serving</category><category>cost</category><category>streaming</category><category>caching</category><category>routing</category></item></channel></rss>