<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>AI lessons</title><description>One weekly lesson on how AI models, serving, and agents work.</description><link>https://www.nikibirkner.com/</link><item><title>Serving agent sessions: keep the KV cache alive across tool and human gaps, route turns back to the warm replica, and price cache TTL by your pause distribution</title><link>https://www.nikibirkner.com/ai-lessons/serving-agent-sessions/</link><guid isPermaLink="true">https://www.nikibirkner.com/ai-lessons/serving-agent-sessions/</guid><description>AI agents pause constantly for tools and humans. Whether the model&apos;s memory survives those pauses decides the bill.</description><pubDate>Thu, 22 Oct 2026 15:00:00 GMT</pubDate><content:encoded/></item><item><title>Model routing and cascades for agents (price the switch; route at phase boundaries; judge on cost per success)</title><link>https://www.nikibirkner.com/ai-lessons/model-routing/</link><guid isPermaLink="true">https://www.nikibirkner.com/ai-lessons/model-routing/</guid><description>Sending easy work to cheap models and hard work to strong ones sounds simple. Inside an agent, switching models has a hidden price.</description><pubDate>Tue, 20 Oct 2026 15:00:00 GMT</pubDate><content:encoded/></item><item><title>Agent cost and latency SLOs. Price on cost per success with failures counted; early abort is the biggest margin lever</title><link>https://www.nikibirkner.com/ai-lessons/agent-cost-per-success/</link><guid isPermaLink="true">https://www.nikibirkner.com/ai-lessons/agent-cost-per-success/</guid><description>The cheapest AI model per token isn&apos;t always the cheapest per finished job. And the biggest savings come from giving up early.</description><pubDate>Sat, 17 Oct 2026 15:00:00 GMT</pubDate><content:encoded/></item><item><title>Production agent monitoring vs offline evals. The offline bank catches known breaks; step monitors, deterministic checks, human reads, and random A/B audits catch drift, and eval-only shipping is earned per change class</title><link>https://www.nikibirkner.com/ai-lessons/production-monitoring/</link><guid isPermaLink="true">https://www.nikibirkner.com/ai-lessons/production-monitoring/</guid><description>A test suite tells you an AI agent worked on launch day. Here&apos;s how teams find out it still works three weeks later.</description><pubDate>Thu, 15 Oct 2026 15:00:00 GMT</pubDate><content:encoded/></item><item><title>Score environment state and process on separate axes; a confident closer is not a DB assert.</title><link>https://www.nikibirkner.com/ai-lessons/agent-evals-outcome-vs-process/</link><guid isPermaLink="true">https://www.nikibirkner.com/ai-lessons/agent-evals-outcome-vs-process/</guid><description>AI agents sometimes say &apos;done!&apos; when nothing happened. Here&apos;s how to test whether the work really got done.</description><pubDate>Tue, 13 Oct 2026 15:00:00 GMT</pubDate><content:encoded/></item><item><title>A checkpoint saves state; durable execution also restarts the run.</title><link>https://www.nikibirkner.com/ai-lessons/durable-execution/</link><guid isPermaLink="true">https://www.nikibirkner.com/ai-lessons/durable-execution/</guid><description>How long-running AI agents survive crashes, deploys and three-day waits for a human to click approve.</description><pubDate>Sat, 10 Oct 2026 15:00:00 GMT</pubDate><content:encoded/></item><item><title>Multi-agent handoff budgets (1-2k return summary vs shared file store)</title><link>https://www.nikibirkner.com/ai-lessons/multi-agent-handoffs/</link><guid isPermaLink="true">https://www.nikibirkner.com/ai-lessons/multi-agent-handoffs/</guid><description>When one AI agent hands work to another, what should it pass along? About two thousand tokens and a pile of file paths.</description><pubDate>Tue, 06 Oct 2026 15:00:00 GMT</pubDate><content:encoded/></item><item><title>Cross-session memory: offload beats a longer window</title><link>https://www.nikibirkner.com/ai-lessons/cross-session-memory/</link><guid isPermaLink="true">https://www.nikibirkner.com/ai-lessons/cross-session-memory/</guid><description>Every new AI session starts with an empty desk. The trick is leaving good notes for next time.</description><pubDate>Sat, 03 Oct 2026 15:00:00 GMT</pubDate><content:encoded/></item><item><title>Agent loop compaction economics (cache thrash vs prune)</title><link>https://www.nikibirkner.com/ai-lessons/compaction-economics/</link><guid isPermaLink="true">https://www.nikibirkner.com/ai-lessons/compaction-economics/</guid><description>Summarizing a long AI conversation to save money can cost more than keeping it all. Here&apos;s why.</description><pubDate>Thu, 01 Oct 2026 15:00:00 GMT</pubDate><content:encoded/></item><item><title>Interleaved thinking: effort knobs vs tool-loop input tax</title><link>https://www.nikibirkner.com/ai-lessons/interleaved-thinking/</link><guid isPermaLink="true">https://www.nikibirkner.com/ai-lessons/interleaved-thinking/</guid><description>When an AI agent thinks between every tool call, yesterday&apos;s thinking becomes tomorrow&apos;s input, and the bill compounds.</description><pubDate>Tue, 29 Sep 2026 15:00:00 GMT</pubDate><content:encoded/></item><item><title>Reasoning decode economics: thinking tokens, relaxed acceptance, SLAs</title><link>https://www.nikibirkner.com/ai-lessons/reasoning-decode-economics/</link><guid isPermaLink="true">https://www.nikibirkner.com/ai-lessons/reasoning-decode-economics/</guid><description>Reasoning models think before they answer. You don&apos;t see most of that thinking, but you still pay for it and wait for it.</description><pubDate>Sat, 26 Sep 2026 15:00:00 GMT</pubDate><content:encoded/></item><item><title>Native MTP vs bolt-on EAGLE/Medusa for product ownership</title><link>https://www.nikibirkner.com/ai-lessons/native-mtp-vs-bolt-on/</link><guid isPermaLink="true">https://www.nikibirkner.com/ai-lessons/native-mtp-vs-bolt-on/</guid><description>Some models are trained with their own built-in guesser. Others need one bolted on. That choice decides who owns the upkeep.</description><pubDate>Thu, 24 Sep 2026 15:00:00 GMT</pubDate><content:encoded/></item><item><title>Pick the speculative proposer from traffic shape and packaging cost; score tokens/sec under your concurrency, not paper acceptance.</title><link>https://www.nikibirkner.com/ai-lessons/choosing-a-speculative-proposer/</link><guid isPermaLink="true">https://www.nikibirkner.com/ai-lessons/choosing-a-speculative-proposer/</guid><description>Three ways to guess ahead in speculative decoding, and how to choose between them.</description><pubDate>Tue, 22 Sep 2026 15:00:00 GMT</pubDate><content:encoded/></item><item><title>Jeff Dean: Exciting Trends in ML (Rice 2024 watch companion)</title><link>https://www.nikibirkner.com/ai-lessons/jeff-dean-trends-in-ml/</link><guid isPermaLink="true">https://www.nikibirkner.com/ai-lessons/jeff-dean-trends-in-ml/</guid><description>A viewing guide to Jeff Dean&apos;s 72-minute Rice lecture: scale, specialized chips, the transformer, and what Gemini was built on.</description><pubDate>Sun, 20 Sep 2026 15:00:00 GMT</pubDate><content:encoded/></item><item><title>Splitwise and DistServe show why prefill and decode need separate pools (and often separate GPU SKUs), with concrete cost/throughput gains and when colocation still wins.</title><link>https://www.nikibirkner.com/ai-lessons/splitwise-distserve/</link><guid isPermaLink="true">https://www.nikibirkner.com/ai-lessons/splitwise-distserve/</guid><description>Reading the prompt and writing the answer want different machines. Two papers showed how much splitting them saves.</description><pubDate>Sat, 19 Sep 2026 15:00:00 GMT</pubDate><content:encoded/></item><item><title>Read num_key_value_heads before treating GQA as a capacity win.</title><link>https://www.nikibirkner.com/ai-lessons/gqa-kv-heads/</link><guid isPermaLink="true">https://www.nikibirkner.com/ai-lessons/gqa-kv-heads/</guid><description>One number on a model card tells you how much memory every conversation costs. Here&apos;s how to read it.</description><pubDate>Thu, 17 Sep 2026 15:00:00 GMT</pubDate><content:encoded/></item><item><title>Continuous batching keeps the GPU full; prefix cache only hits if the shared prompt stays identical.</title><link>https://www.nikibirkner.com/ai-lessons/continuous-batching-prefix-cache/</link><guid isPermaLink="true">https://www.nikibirkner.com/ai-lessons/continuous-batching-prefix-cache/</guid><description>Two everyday tricks that make AI serving cheap, and the tiny mistake that breaks the second one.</description><pubDate>Sat, 12 Sep 2026 15:00:00 GMT</pubDate><content:encoded/></item><item><title>Sell the tier as first claim on capacity, then enforce a fair token budget inside that tier.</title><link>https://www.nikibirkner.com/ai-lessons/fair-scheduling/</link><guid isPermaLink="true">https://www.nikibirkner.com/ai-lessons/fair-scheduling/</guid><description>When many customers share one GPU, one customer&apos;s burst becomes everyone&apos;s slowdown. Here&apos;s how fair sharing works.</description><pubDate>Thu, 10 Sep 2026 15:00:00 GMT</pubDate><content:encoded/></item><item><title>Buy GPU capacity in goodput, requests that clear both TTFT and TPOT, not in raw tokens per second.</title><link>https://www.nikibirkner.com/ai-lessons/goodput/</link><guid isPermaLink="true">https://www.nikibirkner.com/ai-lessons/goodput/</guid><description>Throughput counts work done. Goodput counts work done fast enough to matter.</description><pubDate>Tue, 08 Sep 2026 15:00:00 GMT</pubDate><content:encoded/></item><item><title>Treat draft length as a live control; a fixed max draft burns compute once the batch is full.</title><link>https://www.nikibirkner.com/ai-lessons/adaptive-draft-length/</link><guid isPermaLink="true">https://www.nikibirkner.com/ai-lessons/adaptive-draft-length/</guid><description>Speculative decoding with a fixed setting is tuned for an empty server. The fix is to adjust it on the fly.</description><pubDate>Sat, 05 Sep 2026 15:00:00 GMT</pubDate><content:encoded/></item><item><title>Speculative decoding pays only when you measure it at real concurrency and on the actual task mix.</title><link>https://www.nikibirkner.com/ai-lessons/speculative-decoding/</link><guid isPermaLink="true">https://www.nikibirkner.com/ai-lessons/speculative-decoding/</guid><description>A clever trick that makes models answer faster, and why it can backfire when the servers get busy.</description><pubDate>Thu, 03 Sep 2026 15:00:00 GMT</pubDate><content:encoded/></item><item><title>On MoE decode, attention and experts fail different SLOs and want different GPU pools.</title><link>https://www.nikibirkner.com/ai-lessons/attention-ffn-disaggregation/</link><guid isPermaLink="true">https://www.nikibirkner.com/ai-lessons/attention-ffn-disaggregation/</guid><description>Why the biggest open models are starting to split one model across two kinds of machines.</description><pubDate>Tue, 01 Sep 2026 15:00:00 GMT</pubDate><content:encoded/></item><item><title>If the GPU is fast and the app still crawls, the missing time is queue, network, or hops, not the model.</title><link>https://www.nikibirkner.com/ai-lessons/end-to-end-latency/</link><guid isPermaLink="true">https://www.nikibirkner.com/ai-lessons/end-to-end-latency/</guid><description>On-GPU time versus what the user actually waits through, and where the missing milliseconds hide.</description><pubDate>Sun, 30 Aug 2026 15:00:00 GMT</pubDate><content:encoded/></item><item><title>TTFT is the wait for the first word, TPS is the rest of the stream, and P99 is the speed number to quote.</title><link>https://www.nikibirkner.com/ai-lessons/ttft-tps-p99/</link><guid isPermaLink="true">https://www.nikibirkner.com/ai-lessons/ttft-tps-p99/</guid><description>The two numbers behind &apos;this chatbot feels fast,&apos; and why the average lies.</description><pubDate>Sat, 29 Aug 2026 15:00:00 GMT</pubDate><content:encoded/></item><item><title>Start on a shared token API, and move to dedicated GPUs only when the math or a latency promise forces it.</title><link>https://www.nikibirkner.com/ai-lessons/shared-vs-dedicated/</link><guid isPermaLink="true">https://www.nikibirkner.com/ai-lessons/shared-vs-dedicated/</guid><description>Pay-per-token APIs versus running your own GPUs, and the moment the switch makes sense.</description><pubDate>Thu, 27 Aug 2026 15:00:00 GMT</pubDate><content:encoded/></item><item><title>Training writes the weights; inference reads them on every request, and that is where the cost lives.</title><link>https://www.nikibirkner.com/ai-lessons/training-vs-inference/</link><guid isPermaLink="true">https://www.nikibirkner.com/ai-lessons/training-vs-inference/</guid><description>The gym versus game day: why almost every AI product conversation is really about inference.</description><pubDate>Tue, 25 Aug 2026 15:00:00 GMT</pubDate><content:encoded/></item><item><title>Hallucination is pattern completion when the truth is not in the context or strongly in the weights.</title><link>https://www.nikibirkner.com/ai-lessons/hallucination/</link><guid isPermaLink="true">https://www.nikibirkner.com/ai-lessons/hallucination/</guid><description>Why a model will confidently invent a citation, and what actually reduces it.</description><pubDate>Sun, 23 Aug 2026 15:00:00 GMT</pubDate><content:encoded/></item><item><title>A context window is working memory for one request, not a filing cabinet of past chats.</title><link>https://www.nikibirkner.com/ai-lessons/context-window/</link><guid isPermaLink="true">https://www.nikibirkner.com/ai-lessons/context-window/</guid><description>Models read tokens, not words, and they can only see what fits on their desk for this one request.</description><pubDate>Sat, 22 Aug 2026 15:00:00 GMT</pubDate><content:encoded/></item><item><title>Next-token prediction, done extremely well, is how models absorb facts, code, and reasoning.</title><link>https://www.nikibirkner.com/ai-lessons/next-token-prediction/</link><guid isPermaLink="true">https://www.nikibirkner.com/ai-lessons/next-token-prediction/</guid><description>Chatbots are not giant search engines. They guess the next word, and getting very good at that turns out to require a lot of knowledge.</description><pubDate>Sat, 22 Aug 2026 15:00:00 GMT</pubDate><content:encoded/></item></channel></rss>