<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>aiml.sh — AI agent engineering courses</title><link>https://aiml.sh/</link><description>New lessons in aiml.sh courses: runnable code, tests and failure cases for AI applications.</description><language>en</language><item><title>Admit decoding requests between token steps</title><link>https://aiml.sh/courses/building-ai-systems/admit-decoding-requests-between-token-steps/</link><guid isPermaLink="false">aiml.sh:admit-decoding-requests-between-token-steps</guid><description>Compute last-position logits for unequal-length prefixes in one padded tensor batch. Execute a focused local CPU experiment and inspect its raw result.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building AI Systems</category></item><item><title>Plan cold starts and gate model rollouts</title><link>https://aiml.sh/courses/llm-inference/autoscale-gpus-with-slow-cold-starts-and-roll-out-model-updates-safely/</link><guid isPermaLink="false">aiml.sh:autoscale-gpus-with-slow-cold-starts-and-roll-out-model-updates-safely</guid><description>Model replica startup and finite standby capacity, then evaluate canary gates. Distinguish requested capacity from ready capacity and compare tradeoffs.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>LLM Inference Engineering</category></item><item><title>Benchmark streaming inference under load</title><link>https://aiml.sh/courses/llm-inference/benchmark-streaming-inference/</link><guid isPermaLink="false">aiml.sh:benchmark-vllm-sglang-and-tensorrt-llm-on-real-traffic</guid><description>Measure offered load, completed streams, rejections and first-token latency. Use a real HTTP client and retain errors in the benchmark record.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>LLM Inference Engineering</category></item><item><title>Bound a local repair process</title><link>https://aiml.sh/courses/agent-engineering/bound-a-local-repair-process/</link><guid isPermaLink="false">aiml.sh:bound-a-local-repair-process</guid><description>Restrict a retry-condition patch, write each candidate into a fresh workspace and run independent behavioral checks in a separate process with a timeout.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Agent Design, Optimization and Harnesses</category></item><item><title>Build a byte-pair encoding tokenizer</title><link>https://aiml.sh/courses/llm-from-scratch/build-a-byte-pair-encoding-tokenizer/</link><guid isPermaLink="false">aiml.sh:build-a-byte-pair-encoding-tokenizer</guid><description>Train a byte-pair encoding tokenizer on a small synthetic story corpus in plain Python, save it as a versioned file and test what it cannot encode.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Build a Small Language Model From Scratch</category></item><item><title>Build a coding-agent loop</title><link>https://aiml.sh/courses/agent-engineering/build-a-coding-agent-loop/</link><guid isPermaLink="false">aiml.sh:build-a-coding-agent-loop</guid><description>Build a coding-agent loop that streams model messages, runs repository tools, checks a real test repair and stops at a fixed turn limit.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Agent Design, Optimization and Harnesses</category></item><item><title>Build a context assembler for instructions, history, tools, and retrieved passages</title><link>https://aiml.sh/courses/context-and-memory/build-a-context-assembler/</link><guid isPermaLink="false">aiml.sh:build-a-context-assembler</guid><description>Assemble instructions, tools, history and retrieved passages into one model request. Keep required sections whole and record optional content that does not fit.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Context and Memory Engineering for AI Agents</category></item><item><title>Build a context-selection benchmark</title><link>https://aiml.sh/courses/context-and-memory/build-a-context-selection-benchmark/</link><guid isPermaLink="false">aiml.sh:build-a-context-selection-benchmark</guid><description>Compare four history-selection strategies on shared cases, budgets and graders. Inspect retained facts, stale facts and strategy-specific failures.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Context and Memory Engineering for AI Agents</category></item><item><title>Build a guardrails proxy with streaming-output tests</title><link>https://aiml.sh/courses/building-ai-systems/build-a-guardrails-proxy-with-streaming-output-tests/</link><guid isPermaLink="false">aiml.sh:build-a-guardrails-proxy-with-streaming-output-tests</guid><description>Build a streaming proxy that redacts or blocks email addresses and card numbers across chunk boundaries. Test it with saved streams and failures.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building AI Systems</category></item><item><title>Build a KV cache for LLM generation</title><link>https://aiml.sh/courses/llm-from-scratch/build-a-kv-cache-for-llm-generation/</link><guid isPermaLink="false">aiml.sh:build-a-kv-cache-for-llm-generation</guid><description>Reuse attention keys and values during generation. Test cached and uncached output equivalence, and count the computation avoided by the cache.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Build a Small Language Model From Scratch</category></item><item><title>Build a 50-turn memory-compaction benchmark with fact-retention checks</title><link>https://aiml.sh/courses/context-and-memory/build-a-memory-compaction-benchmark/</link><guid isPermaLink="false">aiml.sh:build-a-memory-compaction-benchmark</guid><description>Replay a conversation with changed and forgotten facts. Compare four context strategies under one budget and inspect current, stale and deleted facts.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Context and Memory Engineering for AI Agents</category></item><item><title>Build a memory service with explicit user and task scope</title><link>https://aiml.sh/courses/context-and-memory/build-a-memory-service/</link><guid isPermaLink="false">aiml.sh:build-a-memory-service</guid><description>Store assistant memory in SQLite across restarts. Scope each read by user and task, then test that another scope cannot retrieve the stored facts.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Context and Memory Engineering for AI Agents</category></item><item><title>Build a memory usefulness eval</title><link>https://aiml.sh/courses/context-and-memory/build-a-memory-usefulness-eval/</link><guid isPermaLink="false">aiml.sh:build-a-memory-usefulness-eval</guid><description>Measure needed facts, unnecessary memory, stale lines and forgotten content sent with requests. Compare usefulness with recall and storage growth.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Context and Memory Engineering for AI Agents</category></item><item><title>Build a model selection harness</title><link>https://aiml.sh/courses/building-ai-systems/build-a-model-selection-harness/</link><guid isPermaLink="false">aiml.sh:build-a-model-selection-harness</guid><description>Define requirements for a small task, test two local models on development and held-out cases, and inspect the recorded model-selection rule.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building AI Systems</category></item><item><title>Build a next-token prediction baseline</title><link>https://aiml.sh/courses/llm-from-scratch/build-a-next-token-prediction-baseline/</link><guid isPermaLink="false">aiml.sh:build-a-next-token-prediction-baseline</guid><description>Score uniform, unigram and bigram models on held-out stories with cross-entropy, and record the prediction a model that sees one token back cannot make.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Build a Small Language Model From Scratch</category></item><item><title>Build a paired comparison report with uncertainty and slice-level results</title><link>https://aiml.sh/courses/building-ai-systems/build-a-paired-comparison-report/</link><guid isPermaLink="false">aiml.sh:build-a-paired-comparison-report</guid><description>Compare prompt versions on paired cases and seeds. Bootstrap differences over cases, source groups and trials, then inspect uncertainty by slice.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building AI Systems</category></item><item><title>Build a policy boundary for untrusted notes, tool outputs, and agent handoffs</title><link>https://aiml.sh/courses/building-ai-systems/build-a-policy-boundary-for-untrusted-agent-handoffs-and-tool-requests/</link><guid isPermaLink="false">aiml.sh:build-a-policy-boundary-for-untrusted-agent-handoffs-and-tool-requests</guid><description>Check Docuctl proposals against trusted page and reviewer records. Keep handoffs untrusted and hold publication after external input arrives.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building AI Systems</category></item><item><title>Build a portable model adapter with contract tests</title><link>https://aiml.sh/courses/building-ai-systems/build-a-portable-model-adapter-with-contract-tests/</link><guid isPermaLink="false">aiml.sh:build-a-portable-model-adapter-with-contract-tests</guid><description>Use one chat contract for Ollama’s native and OpenAI-compatible APIs. Test recorded traffic for request, response and error behavior.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building AI Systems</category></item><item><title>Build a repeated-trial benchmark that records failures and incomplete runs</title><link>https://aiml.sh/courses/building-ai-systems/build-a-repeated-trial-benchmark/</link><guid isPermaLink="false">aiml.sh:build-a-repeated-trial-benchmark</guid><description>Repeat evaluation cases across sampled model replies, log each trial and resume interrupted runs. Report per-case passes, pass@k and pass^k.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building AI Systems</category></item><item><title>Build a local server for the trained model</title><link>https://aiml.sh/courses/llm-from-scratch/build-a-server-for-your-trained-llm/</link><guid isPermaLink="false">aiml.sh:build-a-server-for-your-trained-llm</guid><description>Serve the trained model through a validated local HTTP interface. Compare served and direct generation, and evaluate on held-out story tasks.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Build a Small Language Model From Scratch</category></item><item><title>Build a small language-model training pipeline</title><link>https://aiml.sh/courses/llm-from-scratch/build-a-small-language-model-training-pipeline/</link><guid isPermaLink="false">aiml.sh:build-a-small-language-model-training-pipeline</guid><description>Train a one-block transformer on bundled stories using batches and Adam. Inspect loss and compare it with a bigram baseline on held-out stories.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Build a Small Language Model From Scratch</category></item><item><title>Train a baseline model</title><link>https://aiml.sh/courses/building-mlops/build-a-supervised-learning-baseline-with-reproducible-dataset-splits/</link><guid isPermaLink="false">aiml.sh:build-a-supervised-learning-baseline-with-reproducible-dataset-splits</guid><description>Train a rice-variety classifier with stable data splits and training-only preprocessing. Compare it with a majority rule and investigate changed results.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building MLOps</category></item><item><title>Build a transformer block with positional information</title><link>https://aiml.sh/courses/llm-from-scratch/build-a-transformer-block-with-positional-information/</link><guid isPermaLink="false">aiml.sh:build-a-transformer-block-with-positional-information</guid><description>Combine causal attention, normalization, skip paths and a feed-forward network. Add position embeddings and check the complete block’s gradients.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Build a Small Language Model From Scratch</category></item><item><title>Build authentication and authorization boundaries for users and tools</title><link>https://aiml.sh/courses/building-ai-systems/build-authentication-and-authorization-boundaries-for-users-and-tools/</link><guid isPermaLink="false">aiml.sh:build-authentication-and-authorization-boundaries-for-users-and-tools</guid><description>Delegate a Docuctl tool call with limited authority. Test role, tenant, actor, audience, expiry and replay checks without forwarding session tokens.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building AI Systems</category></item><item><title>Build causal self-attention and inspect intermediate outputs</title><link>https://aiml.sh/courses/llm-from-scratch/build-causal-self-attention-and-inspect-intermediate-outputs/</link><guid isPermaLink="false">aiml.sh:build-causal-self-attention-and-inspect-intermediate-outputs</guid><description>Implement causal self-attention and its backward pass in plain Python. Inspect intermediate tensors and test that future tokens remain hidden.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Build a Small Language Model From Scratch</category></item><item><title>Build checkpoints and resumable training</title><link>https://aiml.sh/courses/llm-from-scratch/build-checkpoints-and-resumable-training/</link><guid isPermaLink="false">aiml.sh:build-checkpoints-and-resumable-training</guid><description>Save checkpoints bound to training inputs, select parameters by development loss and test that an interrupted run resumes to the same result.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Build a Small Language Model From Scratch</category></item><item><title>Build context compaction with information-loss tests</title><link>https://aiml.sh/courses/context-and-memory/build-context-compaction/</link><guid isPermaLink="false">aiml.sh:build-context-compaction</guid><description>Replace removed conversation turns with cited notes. Test retained, lost and stale facts instead of assuming a shorter context preserves every fact.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Context and Memory Engineering for AI Agents</category></item><item><title>Build end-to-end request tracing with source provenance</title><link>https://aiml.sh/courses/building-ai-systems/build-end-to-end-request-tracing-with-evidence-provenance/</link><guid isPermaLink="false">aiml.sh:build-end-to-end-request-tracing-with-evidence-provenance</guid><description>Propagate a trace across two local Docuctl processes. Inspect parent links and distinguish current, stale and dropped sources before returning a citation.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building AI Systems</category></item><item><title>Build isolated contexts for users, tasks, and agents</title><link>https://aiml.sh/courses/context-and-memory/build-isolated-contexts/</link><guid isPermaLink="false">aiml.sh:build-isolated-contexts</guid><description>Scope context to the requesting app, user, task or agent. Compare a leaking shared list with a scoped store and test restricted worker handoffs.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Context and Memory Engineering for AI Agents</category></item><item><title>Build LLM monitoring for latency, cost and errors</title><link>https://aiml.sh/courses/building-ai-systems/build-llm-monitoring-for-latency-cost-and-errors/</link><guid isPermaLink="false">aiml.sh:build-llm-monitoring-for-latency-cost-and-errors</guid><description>Aggregate simulated model-service requests into latency, token, cost, error and queue metrics. Test alert transitions and histogram estimates.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building AI Systems</category></item><item><title>Build memory consolidation with conflict tests</title><link>https://aiml.sh/courses/context-and-memory/build-memory-consolidation-with-conflict-tests/</link><guid isPermaLink="false">aiml.sh:build-memory-consolidation-with-conflict-tests</guid><description>Merge duplicate memories and resolve conflicts using source and recency rules. Retain superseded facts with records of the consolidation decision.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Context and Memory Engineering for AI Agents</category></item><item><title>Build memory provenance and deletion</title><link>https://aiml.sh/courses/context-and-memory/build-memory-provenance-and-deletion/</link><guid isPermaLink="false">aiml.sh:build-memory-provenance-and-deletion</guid><description>Track memory sources, corrections and expiry in SQLite. Delete forgotten content while retaining a text-free record, and test scope isolation.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Context and Memory Engineering for AI Agents</category></item><item><title>Build working, semantic, and episodic memory retrieval</title><link>https://aiml.sh/courses/context-and-memory/build-memory-retrieval/</link><guid isPermaLink="false">aiml.sh:build-memory-retrieval</guid><description>Retrieve working notes, facts and past events with separate rules and token quotas. Compare this with a pooled ranking on the same memory tasks.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Context and Memory Engineering for AI Agents</category></item><item><title>Build one training step by hand</title><link>https://aiml.sh/courses/llm-from-scratch/build-one-training-step-by-hand/</link><guid isPermaLink="false">aiml.sh:build-one-training-step-by-hand</guid><description>Build a 20-parameter next-token model in plain Python, compute every gradient by hand, check them against finite differences and apply one update.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Build a Small Language Model From Scratch</category></item><item><title>Build historical feature snapshots</title><link>https://aiml.sh/courses/building-mlops/build-point-in-time-feature-joins/</link><guid isPermaLink="false">aiml.sh:build-point-in-time-feature-joins</guid><description>Keep original and corrected feature values. Reconstruct historical training rows using only the values available at each prediction time.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building MLOps</category></item><item><title>Build text generation with sampling controls</title><link>https://aiml.sh/courses/llm-from-scratch/build-text-generation-with-sampling-controls/</link><guid isPermaLink="false">aiml.sh:build-text-generation-with-sampling-controls</guid><description>Generate text from the trained model with greedy choice, temperature and top-k. Define stop rules and compare settings on development openings.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Build a Small Language Model From Scratch</category></item><item><title>Reuse prompt prefixes without overloading a warm replica</title><link>https://aiml.sh/courses/llm-inference/cache-shared-prompt-prefixes-and-route-to-warm-gpus/</link><guid isPermaLink="false">aiml.sh:cache-shared-prompt-prefixes-and-route-to-warm-gpus</guid><description>Implement radix-prefix matching, pinning and eviction. Compare cache affinity with queue waiting and inspect real reuse of model cache tensors.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>LLM Inference Engineering</category></item><item><title>Calibrate task graders before comparing policies</title><link>https://aiml.sh/courses/agent-engineering/calibrate-outcome-graders-and-compare-repeated-trials/</link><guid isPermaLink="false">aiml.sh:calibrate-outcome-graders-and-compare-repeated-trials</guid><description>Expose false positives in a format-only grader, compare it with the task contract and calculate what any-success and repeated-success metrics actually mean.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Agent Design, Optimization and Harnesses</category></item><item><title>Capture the training configuration</title><link>https://aiml.sh/courses/building-mlops/capture-dependencies-and-configuration-for-an-existing-trainer/</link><guid isPermaLink="false">aiml.sh:capture-dependencies-and-configuration-for-an-existing-trainer</guid><description>Check whether a declared 300-epoch recipe would actually run for 300 epochs. Capture the inputs and Python runtime without launching training.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building MLOps</category></item><item><title>Choose an architecture from task requirements</title><link>https://aiml.sh/courses/building-ai-systems/choose-an-ai-system-architecture/</link><guid isPermaLink="false">aiml.sh:choose-an-ai-system-architecture</guid><description>Build a version-aware documentation lookup and an approval-bound action proposal. Use their contracts to choose an application boundary.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building AI Systems</category></item><item><title>Choose hardware from the workload bottleneck</title><link>https://aiml.sh/courses/llm-inference/choose-hardware-for-inference/</link><guid isPermaLink="false">aiml.sh:choose-the-right-gpu-for-prefill-and-decode</guid><description>Use a roofline estimate to distinguish compute and bandwidth limits. Compare memory fit and explain why hardware choice depends on workload.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>LLM Inference Engineering</category></item><item><title>Compare a handwritten transformer with PyTorch</title><link>https://aiml.sh/courses/llm-from-scratch/compare-a-handwritten-transformer-with-pytorch/</link><guid isPermaLink="false">aiml.sh:compare-a-handwritten-transformer-with-pytorch</guid><description>Port the existing one-block transformer to CPU tensors, then compare logits, loss and every parameter gradient with explicit attention and PyTorch SDPA.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Build a Small Language Model From Scratch</category></item><item><title>Compare a workflow with a bounded policy</title><link>https://aiml.sh/courses/agent-engineering/compare-a-workflow-with-a-bounded-policy/</link><guid isPermaLink="false">aiml.sh:compare-a-workflow-with-a-bounded-policy</guid><description>Compare a keyword route, fixed search/read workflow and scripted decision loop on shared documentation tasks. Measure outcomes and tool work.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Agent Design, Optimization and Harnesses</category></item><item><title>Compare full updates and low-rank adaptation</title><link>https://aiml.sh/courses/building-ai-systems/compare-full-and-low-rank-updates/</link><guid isPermaLink="false">aiml.sh:compare-full-and-low-rank-updates</guid><description>Train full and low-rank updates of a small text classifier, compare held-out predictions and count the parameters each method changes.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building AI Systems</category></item><item><title>Compare packed weight quantization and output error</title><link>https://aiml.sh/courses/building-ai-systems/compare-packed-weight-quantization-and-output-error/</link><guid isPermaLink="false">aiml.sh:compare-packed-weight-quantization-and-output-error</guid><description>Pack trained matrices into eight-bit values or paired four-bit codes. Compare numeric payload sizes and output errors using dequantized CPU inference.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building AI Systems</category></item><item><title>Measure the cost of prediction errors</title><link>https://aiml.sh/courses/building-mlops/connect-prediction-errors-to-product-costs/</link><guid isPermaLink="false">aiml.sh:connect-prediction-errors-to-product-costs</guid><description>Compare two classifiers on the same validation cases and show how explicit costs change the consequences of their errors.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building MLOps</category></item><item><title>Create an evaluation set and a failure taxonomy</title><link>https://aiml.sh/courses/building-ai-systems/create-an-evaluation-set-and-a-failure-taxonomy/</link><guid isPermaLink="false">aiml.sh:create-an-evaluation-set-and-a-failure-taxonomy</guid><description>Turn version, environment, role and action requirements into evaluation cases. Distinguish failed task contracts from incomplete execution.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building AI Systems</category></item><item><title>Curate traces before selecting an improvement</title><link>https://aiml.sh/courses/agent-engineering/curate-traces-before-selecting-an-improvement/</link><guid isPermaLink="false">aiml.sh:curate-traces-before-selecting-an-improvement</guid><description>Deduplicate versioned questions, keep task families within one split and save the actual decisions and tool observations for each cleaned case.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Agent Design, Optimization and Harnesses</category></item><item><title>Choose a latency-throughput operating point</title><link>https://aiml.sh/courses/llm-inference/choose-a-latency-throughput-operating-point/</link><guid isPermaLink="false">aiml.sh:cut-per-token-latency-without-hurting-throughput</guid><description>Choose a feasible latency and throughput operating point. Inspect memory limits, communication assumptions and efficiency per serving device.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>LLM Inference Engineering</category></item><item><title>Investigate host overhead before changing GPU settings</title><link>https://aiml.sh/courses/llm-inference/profile-inference-host-overhead/</link><guid isPermaLink="false">aiml.sh:debug-a-gpu-stuck-at-30-percent-utilization-under-load</guid><description>Profile host operators around an actual Metal model forward. Read recorded events without treating CPU timings as GPU kernel measurements.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>LLM Inference Engineering</category></item><item><title>Define a task-specific answer rubric using the existing eval runner</title><link>https://aiml.sh/courses/building-ai-systems/define-a-task-specific-answer-rubric/</link><guid isPermaLink="false">aiml.sh:define-a-task-specific-answer-rubric</guid><description>Write source-based criteria for a documentation answer, bind example judgements to exact revisions and keep pending review separate from scored outcomes.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building AI Systems</category></item><item><title>Delegate independent tasks with explicit worker state</title><link>https://aiml.sh/courses/agent-engineering/delegate-independent-tasks-with-explicit-worker-state/</link><guid isPermaLink="false">aiml.sh:delegate-independent-tasks-with-explicit-worker-state</guid><description>Fan out two documentation requests into separate bounded runtimes. Gather results by task ID and account for dispatch, merge and incomplete-worker behavior.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Agent Design, Optimization and Harnesses</category></item><item><title>Size serving capacity from accepted benchmark results</title><link>https://aiml.sh/courses/llm-inference/size-serving-capacity/</link><guid isPermaLink="false">aiml.sh:design-a-1m-user-inference-fleet-and-cut-cost-per-million-tokens-by-70-percent</guid><description>Size serving replicas from accepted workload-matched results. Convert request demand to peak capacity and include reserves and stated cost assumptions.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>LLM Inference Engineering</category></item><item><title>Choose evaluation splits</title><link>https://aiml.sh/courses/building-mlops/design-temporal-and-entity-aware-evaluation-splits/</link><guid isPermaLink="false">aiml.sh:design-temporal-and-entity-aware-evaluation-splits</guid><description>Split repeated-user observations by user, time or both. Choose evaluation windows that match the population your predictor will serve.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building MLOps</category></item><item><title>Distinguish schema, freshness and distribution signals</title><link>https://aiml.sh/courses/building-mlops/distinguish-schema-freshness-and-distribution-signals/</link><guid isPermaLink="false">aiml.sh:distinguish-schema-freshness-and-distribution-signals</guid><description>Validate event fields and feature values before considering freshness. A local executable Rice rollout and monitoring continuation.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building MLOps</category></item><item><title>Protect interactive requests from noisy neighbors</title><link>https://aiml.sh/courses/llm-inference/enforce-multi-tenant-fairness-priority-queues-and-admission-limits/</link><guid isPermaLink="false">aiml.sh:enforce-multi-tenant-fairness-priority-queues-and-admission-limits</guid><description>Implement tenant queues, token budgets and deficit round-robin scheduling. Inspect admission limits and the latency cost of protecting interactive work.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>LLM Inference Engineering</category></item><item><title>Export a full-precision inference bundle</title><link>https://aiml.sh/courses/building-mlops/export-a-full-precision-inference-bundle/</link><guid isPermaLink="false">aiml.sh:export-a-full-precision-inference-bundle</guid><description>Keep the trained scaler and classifier together without rounding serving parameters. A local Rice-classifier lab with explicit failure checks.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building MLOps</category></item><item><title>Balance long-prompt prefill against streaming latency</title><link>https://aiml.sh/courses/llm-inference/fix-long-prompt-stalls-with-chunked-prefill/</link><guid isPermaLink="false">aiml.sh:fix-long-prompt-stalls-with-chunked-prefill</guid><description>Schedule prompt chunks around active decode work. Compare modeled token budgets with a real cached-forward experiment and explain added overhead.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>LLM Inference Engineering</category></item><item><title>Trace a real inference request from prompt to first token</title><link>https://aiml.sh/courses/llm-inference/trace-an-inference-request/</link><guid isPermaLink="false">aiml.sh:follow-an-inference-request-from-prompt-to-first-token</guid><description>Trace tokenization, prefill and decode with a pinned open model. Compare actual cached and uncached token intervals from a local inference run.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>LLM Inference Engineering</category></item><item><title>Gate a model candidate on validation results</title><link>https://aiml.sh/courses/building-mlops/gate-a-model-candidate-on-validation-results/</link><guid isPermaLink="false">aiml.sh:gate-a-model-candidate-on-validation-results</guid><description>Make a quality decision about the exact exported candidate using explicit count-based checks. A local Rice-classifier lab with explicit failure checks.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building MLOps</category></item><item><title>Inspect a direct preference optimization update</title><link>https://aiml.sh/courses/building-ai-systems/inspect-a-direct-preference-optimization-update/</link><guid isPermaLink="false">aiml.sh:inspect-a-direct-preference-optimization-update</guid><description>Align completion-token scores with their preceding prompt positions. Execute a focused local CPU experiment and inspect its raw result.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building AI Systems</category></item><item><title>Join delayed outcomes and review retraining</title><link>https://aiml.sh/courses/building-mlops/join-delayed-outcomes-and-review-retraining/</link><guid isPermaLink="false">aiml.sh:join-delayed-outcomes-and-review-retraining</guid><description>Join finalized labels to predictions by identity rather than list position. A local executable Rice rollout and monitoring continuation.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building MLOps</category></item><item><title>Profile KV-cache work across serving workloads</title><link>https://aiml.sh/courses/building-ai-systems/measure-kv-cache-work/</link><guid isPermaLink="false">aiml.sh:measure-kv-cache-work</guid><description>Implement one causal attention layer, reuse previous keys and values, and compare equivalent outputs, counted work and local CPU timings.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building AI Systems</category></item><item><title>Measure quality by request slice and asymmetric failure cost</title><link>https://aiml.sh/courses/building-ai-systems/measure-quality-by-request-slice-and-asymmetric-failure-cost/</link><guid isPermaLink="false">aiml.sh:measure-quality-by-request-slice-and-asymmetric-failure-cost</guid><description>Inspect request-group coverage and explicit error costs. Keep critical failures, incomplete runs and empty groups visible beside the overall score.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building AI Systems</category></item><item><title>Compare eager and compiled normalization on real tensors</title><link>https://aiml.sh/courses/llm-inference/compare-eager-and-compiled-normalization/</link><guid isPermaLink="false">aiml.sh:profile-a-slow-model-and-fuse-a-bottleneck-kernel-in-triton</guid><description>Compare eager and compiled normalization on real Metal tensors. Check numerical agreement and synchronized timings across several input shapes.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>LLM Inference Engineering</category></item><item><title>Quantize a model and evaluate the regression</title><link>https://aiml.sh/courses/llm-inference/evaluate-model-quantization/</link><guid isPermaLink="false">aiml.sh:quantize-a-model-and-measure-the-quality-drop</guid><description>Convert real model linear layers to INT8 and compare development likelihood. Inspect the observed regression before accepting a serving candidate.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>LLM Inference Engineering</category></item><item><title>Handle late data and delayed labels</title><link>https://aiml.sh/courses/building-mlops/record-data-availability-and-label-delay/</link><guid isPermaLink="false">aiml.sh:record-data-availability-and-label-delay</guid><description>Reconstruct the inputs available for each prediction. Account for late events and wait for outcome labels before assembling training rows.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building MLOps</category></item><item><title>Register and select a content-addressed model</title><link>https://aiml.sh/courses/building-mlops/register-and-select-a-content-addressed-model/</link><guid isPermaLink="false">aiml.sh:register-and-select-a-content-addressed-model</guid><description>Bind a local model selection to separately retained expected bytes. A local Rice-classifier lab with explicit failure checks.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building MLOps</category></item><item><title>Schedule requests between decode iterations</title><link>https://aiml.sh/courses/llm-inference/replace-static-batching-with-continuous-batching/</link><guid isPermaLink="false">aiml.sh:replace-static-batching-with-continuous-batching</guid><description>Compare fixed and changing batch membership with a request scheduler. Inspect actual local model interleaving and its latency tradeoffs.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>LLM Inference Engineering</category></item><item><title>Roll back a model with feature-contract checks</title><link>https://aiml.sh/courses/building-mlops/roll-back-a-model-with-feature-contract-checks/</link><guid isPermaLink="false">aiml.sh:roll-back-a-model-with-feature-contract-checks</guid><description>Select a prior model by its retained digest, refuse incompatible feature contracts, and verify the local serving selection over actual HTTP.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building MLOps</category></item><item><title>Route a sticky canary and compare cohort outcomes</title><link>https://aiml.sh/courses/building-mlops/route-a-sticky-canary-and-compare-cohort-outcomes/</link><guid isPermaLink="false">aiml.sh:route-a-sticky-canary-and-compare-cohort-outcomes</guid><description>Assign repeated caller IDs to a stable canary cohort with an explicit salt and allocation. A local executable Rice rollout and monitoring continuation.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building MLOps</category></item><item><title>Run a search-and-read decision loop</title><link>https://aiml.sh/courses/agent-engineering/run-a-search-and-read-decision-loop/</link><guid isPermaLink="false">aiml.sh:run-a-search-and-read-decision-loop</guid><description>Separate policy decisions from tool execution. Enforce action schemas, tool and turn limits, and citation provenance before checking the returned command.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Agent Design, Optimization and Harnesses</category></item><item><title>Run group-relative policy updates on sampled completions</title><link>https://aiml.sh/courses/building-ai-systems/run-group-relative-policy-updates-on-sampled-completions/</link><guid isPermaLink="false">aiml.sh:run-group-relative-policy-updates-on-sampled-completions</guid><description>Sample completions from a tiny CPU policy, compute group-relative rewards, and inspect clipped updates with fixed old scores and a frozen reference.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building AI Systems</category></item><item><title>Separate source support, action correctness and format validity</title><link>https://aiml.sh/courses/building-ai-systems/separate-source-support-action-correctness-and-format-validity/</link><guid isPermaLink="false">aiml.sh:separate-source-support-action-correctness-and-format-validity</guid><description>Diagnose a structured answer without letting valid JSON, a matching citation or a correct command stand in for the other requirements.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building AI Systems</category></item><item><title>Serve a versioned predictor through batch and HTTP</title><link>https://aiml.sh/courses/building-mlops/serve-a-versioned-predictor-through-batch-and-http/</link><guid isPermaLink="false">aiml.sh:serve-a-versioned-predictor-through-batch-and-http</guid><description>Reuse one validated preprocessing and prediction function across two adapters. A local Rice-classifier lab with explicit failure checks.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building MLOps</category></item><item><title>Set task acceptance criteria and request resource budgets</title><link>https://aiml.sh/courses/building-ai-systems/set-task-acceptance-criteria-and-request-resource-budgets/</link><guid isPermaLink="false">aiml.sh:set-task-acceptance-criteria-and-request-resource-budgets</guid><description>Define task acceptance and request resource limits. Reuse application graders and distinguish admission decisions from post-execution checks.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building AI Systems</category></item><item><title>Shadow predictions without changing live responses</title><link>https://aiml.sh/courses/building-mlops/shadow-predictions-without-changing-live-responses/</link><guid isPermaLink="false">aiml.sh:shadow-predictions-without-changing-live-responses</guid><description>Route a request to the live model while recording a separate candidate prediction. A local executable Rice rollout and monitoring continuation.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building MLOps</category></item><item><title>Budget model weights, KV cache, and runtime memory</title><link>https://aiml.sh/courses/llm-inference/size-gpu-memory-for-model-weights-and-the-kv-cache/</link><guid isPermaLink="false">aiml.sh:size-gpu-memory-for-model-weights-and-the-kv-cache</guid><description>Calculate weight and attention-cache payloads with consistent byte units. Compare grouped-query cache sizes and budget runtime memory separately.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>LLM Inference Engineering</category></item><item><title>Explain tiled attention and verify its output</title><link>https://aiml.sh/courses/llm-inference/verify-tiled-attention/</link><guid isPermaLink="false">aiml.sh:speed-up-long-contexts-with-flashattention</guid><description>Implement tiled attention with online softmax on the CPU. Verify numerical agreement and distinguish storage savings from measured GPU runtime.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>LLM Inference Engineering</category></item><item><title>Budget cache transfer before splitting inference pools</title><link>https://aiml.sh/courses/llm-inference/split-prefill-and-decode-pools-and-serve-large-moe-models/</link><guid isPermaLink="false">aiml.sh:split-prefill-and-decode-pools-and-serve-large-moe-models</guid><description>Calculate cache-transfer payloads before separating prefill and decode. Explore bandwidth and expert-placement assumptions without claiming fleet benchmarks.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>LLM Inference Engineering</category></item><item><title>Implement paged cache allocation and copy-on-write</title><link>https://aiml.sh/courses/llm-inference/stop-memory-waste-with-paged-kv-caching/</link><guid isPermaLink="false">aiml.sh:stop-memory-waste-with-paged-kv-caching</guid><description>Implement a paged cache allocator with reference counts and copy-on-write. Inspect ownership and fragmentation using concrete token markers.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>LLM Inference Engineering</category></item><item><title>Stream model output and stop work when the client disconnects</title><link>https://aiml.sh/courses/llm-inference/stream-tokens-over-sse-and-cancel-dropped-requests/</link><guid isPermaLink="false">aiml.sh:stream-tokens-over-sse-and-cancel-dropped-requests</guid><description>Build a local streaming HTTP server with bounded admission and disconnect cleanup. Test SSE framing and iterator release over real sockets.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>LLM Inference Engineering</category></item><item><title>Check features before serving</title><link>https://aiml.sh/courses/building-mlops/test-feature-freshness-and-training-serving-parity/</link><guid isPermaLink="false">aiml.sh:test-feature-freshness-and-training-serving-parity</guid><description>Check whether a feature is available and recent enough, then compare historical and current reads using identical inputs.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building MLOps</category></item><item><title>Investigate inference tail latency with request records</title><link>https://aiml.sh/courses/llm-inference/investigate-inference-tail-latency/</link><guid isPermaLink="false">aiml.sh:track-inference-metrics-and-fix-10x-p99-latency-spikes</guid><description>Aggregate request records to investigate tail latency. Keep timing boundaries, preemptions and admission outcomes distinct when testing hypotheses.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>LLM Inference Engineering</category></item><item><title>Record and select a training run</title><link>https://aiml.sh/courses/building-mlops/track-run-identity-and-select-an-immutable-training-artifact/</link><guid isPermaLink="false">aiml.sh:track-run-identity-and-select-an-immutable-training-artifact</guid><description>Inspect a completed training run and verify its retained inputs, logs and results. Select its exact evaluation report without rerunning the trainer.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building MLOps</category></item><item><title>Tune retrieval policy on separated task families</title><link>https://aiml.sh/courses/agent-engineering/tune-retrieval-policy-on-separated-task-families/</link><guid isPermaLink="false">aiml.sh:tune-retrieval-policy-on-separated-task-families</guid><description>Choose alias expansion and candidate count on development tasks. Freeze the selected configuration before measuring source recall on separate task families.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Agent Design, Optimization and Harnesses</category></item><item><title>Check speculative decoding correctness and its cost</title><link>https://aiml.sh/courses/llm-inference/use-speculative-decoding-and-know-when-it-hurts/</link><guid isPermaLink="false">aiml.sh:use-speculative-decoding-and-know-when-it-hurts</guid><description>Implement speculative token acceptance and residual resampling. Verify the target distribution and separate correctness from assumed speedups.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>LLM Inference Engineering</category></item><item><title>Validate incoming data</title><link>https://aiml.sh/courses/building-mlops/validate-a-dataset-and-quarantine-invalid-records/</link><guid isPermaLink="false">aiml.sh:validate-a-dataset-and-quarantine-invalid-records</guid><description>Validate an event batch, preserve rejected records and block the batch when parsing or schema checks fail. Inspect the rejection reasons.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building MLOps</category></item><item><title>Verify edits independently of completion claims</title><link>https://aiml.sh/courses/agent-engineering/verify-edits-independently-of-completion-claims/</link><guid isPermaLink="false">aiml.sh:verify-edits-independently-of-completion-claims</guid><description>Run controlled repair candidates through the existing harness. Preserve completion claims as observations while grading the behavior of each fresh candidate.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Agent Design, Optimization and Harnesses</category></item><item><title>Version the data and feature contract</title><link>https://aiml.sh/courses/building-mlops/version-data-schemas-and-feature-definitions/</link><guid isPermaLink="false">aiml.sh:version-data-schemas-and-feature-definitions</guid><description>Tie dataset, schema and feature versions to their contents. Detect silent changes before computing feature values from the selected manifest.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>Building MLOps</category></item><item><title>Add search and read tools</title><link>https://aiml.sh/courses/agentic-rag/add-search-and-read-tools/</link><guid isPermaLink="false">aiml.sh:add-search-and-read-tools</guid><description>Expose bounded documentation search and passage reads, bind handles to a pinned corpus and exact request, and inspect provenance before accepting tool output.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building Agentic RAG Applications</category></item><item><title>Add vector retrieval</title><link>https://aiml.sh/courses/agentic-rag/add-vector-retrieval/</link><guid isPermaLink="false">aiml.sh:add-vector-retrieval</guid><description>Query an actual LangChain vector store with preserved Qwen embeddings, refuse unrecorded inputs, and inspect scores without new model calls.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building Agentic RAG Applications</category></item><item><title>Apply filters across retrievers</title><link>https://aiml.sh/courses/agentic-rag/apply-filters-across-retrievers/</link><guid isPermaLink="false">aiml.sh:apply-filters-across-retrievers</guid><description>Apply one version policy to SQLite lexical and LangChain vector retrieval before top-k, and compare eligible candidates and post-filter underfill.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building Agentic RAG Applications</category></item><item><title>Assemble context within a token budget</title><link>https://aiml.sh/courses/agentic-rag/assemble-context-within-a-token-budget/</link><guid isPermaLink="false">aiml.sh:assemble-context-within-a-token-budget</guid><description>Fit validated RAG windows into a complete templated request using the pinned local tokenizer, with whole-window admission, output reserve and failure records.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building Agentic RAG Applications</category></item><item><title>Authorize collection searches</title><link>https://aiml.sh/courses/agentic-rag/authorize-collection-searches/</link><guid isPermaLink="false">aiml.sh:authorize-collection-searches</guid><description>Resolve synthetic fixture identities, filter granted collections before top-k, and recheck issued passage handles before returning source text.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building Agentic RAG Applications</category></item><item><title>Build a RAG eval dataset</title><link>https://aiml.sh/courses/agentic-rag/build-a-rag-eval-dataset/</link><guid isPermaLink="false">aiml.sh:build-a-rag-eval-dataset</guid><description>Create eight source-bound developer questions, label relevant passages by documentation version, and validate answerability and frozen held-out targets.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building Agentic RAG Applications</category></item><item><title>Build a retrieval inspector</title><link>https://aiml.sh/courses/agentic-rag/build-a-retrieval-inspector/</link><guid isPermaLink="false">aiml.sh:build-a-retrieval-inspector</guid><description>Build a same-origin retrieval inspector, verify response bytes and request identity before rendering, and inspect real loading, empty, limited and error states.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building Agentic RAG Applications</category></item><item><title>Build the developer knowledge assistant</title><link>https://aiml.sh/courses/agentic-rag/build-developer-knowledge-assistant/</link><guid isPermaLink="false">aiml.sh:build-developer-knowledge-assistant</guid><description>Build a local docs assistant with a browser UI, CLI, versioned retrieval, collection permissions, cited answers and application evaluation.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building Agentic RAG Applications</category></item><item><title>Build hybrid retrieval</title><link>https://aiml.sh/courses/agentic-rag/build-hybrid-retrieval/</link><guid isPermaLink="false">aiml.sh:build-hybrid-retrieval</guid><description>Combine native BM25 and preserved-vector retrieval with reciprocal rank fusion, inspect each contribution, and retain filtering and failure records.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building Agentic RAG Applications</category></item><item><title>Cache retrieval results</title><link>https://aiml.sh/courses/agentic-rag/cache-retrieval-results/</link><guid isPermaLink="false">aiml.sh:cache-retrieval-results</guid><description>Cache completed retrieval sources with principal, policy, corpus and normalized-request binding, bounded TTL/LRU retention and explicit failure bypass.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building Agentic RAG Applications</category></item><item><title>Choose chunk boundaries</title><link>https://aiml.sh/courses/agentic-rag/choose-chunk-boundaries/</link><guid isPermaLink="false">aiml.sh:choose-chunk-boundaries</guid><description>Compare fixed-character, paragraph and heading-aware chunk boundaries on a synthetic developer document, with exact source spans and stable identity checks.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building Agentic RAG Applications</category></item><item><title>Compare fixed, scripted and Gemini retrieval policies</title><link>https://aiml.sh/courses/agentic-rag/compare-agents-and-pipelines/</link><guid isPermaLink="false">aiml.sh:compare-agents-and-pipelines</guid><description>Compare fixed, scripted and Gemini-selected retrieval policies on frozen questions, enforce tool limits, and retain invalid proposals and incomplete outcomes.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building Agentic RAG Applications</category></item><item><title>Compare retrieval configurations</title><link>https://aiml.sh/courses/agentic-rag/compare-retrieval-configurations/</link><guid isPermaLink="false">aiml.sh:compare-retrieval-configurations</guid><description>Compare frozen lexical, vector, fused and coverage-reranked configurations on preserved development questions, with exact target mapping and retained misses.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building Agentic RAG Applications</category></item><item><title>Connect retrieval tools through MCP</title><link>https://aiml.sh/courses/agentic-rag/connect-retrieval-tools-through-mcp/</link><guid isPermaLink="false">aiml.sh:connect-retrieval-tools-through-mcp</guid><description>Expose pinned documentation tools through an actual MCP stdio server, initialize an SDK client, preserve issued read handles and inspect real tool failures.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building Agentic RAG Applications</category></item><item><title>Scaffold, lint, and run an ADK project with Google Agents CLI</title><link>https://aiml.sh/courses/agents-cli/create-and-run-an-agent-project-with-agents-cli/</link><guid isPermaLink="false">aiml.sh:create-and-run-an-agent-project-with-agents-cli</guid><description>Scaffold a prototype ADK agent with agents-cli, inspect agents-cli-manifest.yaml, run agents-cli lint, and serve multi-turn ADK and A2A sessions locally.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building, Evaluating, and Deploying Agents with Google Agents CLI</category></item><item><title>Generate traces and grade evaluations with agents-cli eval</title><link>https://aiml.sh/courses/agents-cli/evaluate-an-agent-with-agents-cli-eval/</link><guid isPermaLink="false">aiml.sh:evaluate-an-agent-with-agents-cli-eval</guid><description>Author single-turn and continued-conversation datasets, generate ADK traces with agents-cli eval generate, and score custom metrics in eval grade.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building, Evaluating, and Deploying Agents with Google Agents CLI</category></item><item><title>Evaluate scripted retrieval tasks</title><link>https://aiml.sh/courses/agentic-rag/evaluate-retrieval-agent-tasks/</link><guid isPermaLink="false">aiml.sh:evaluate-retrieval-agent-tasks</guid><description>Evaluate deterministic retrieval policies with separate execution and source checks, exact target joins, repeated trials and an explicit fixture release gate.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building Agentic RAG Applications</category></item><item><title>Build a RAG pipeline</title><link>https://aiml.sh/courses/agentic-rag/follow-a-rag-request-end-to-end/</link><guid isPermaLink="false">aiml.sh:follow-a-rag-request-end-to-end</guid><description>Follow a question through document search, context assembly and the model request, then check the answer’s source links.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building Agentic RAG Applications</category></item><item><title>Handle conflicting documentation</title><link>https://aiml.sh/courses/agentic-rag/handle-conflicting-documentation/</link><guid isPermaLink="false">aiml.sh:handle-conflicting-documentation</guid><description>Filter synthetic developer documentation by the requested version, compare explicit contract directives, and withhold answer requests when claims conflict.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building Agentic RAG Applications</category></item><item><title>Handle ingestion failures</title><link>https://aiml.sh/courses/agentic-rag/handle-ingestion-failures/</link><guid isPermaLink="false">aiml.sh:handle-ingestion-failures</guid><description>Keep accepted documents and explicit failure records together, and return an incomplete batch status when a source cannot be loaded.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building Agentic RAG Applications</category></item><item><title>How BM25 ranks documents</title><link>https://aiml.sh/courses/agentic-rag/how-bm25-ranks-documents/</link><guid isPermaLink="false">aiml.sh:how-bm25-ranks-documents</guid><description>Inspect native SQLite FTS5 BM25 scores, indexed terms and document lengths, and keep matching passages separate from answer validation.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building Agentic RAG Applications</category></item><item><title>How RAG works</title><link>https://aiml.sh/courses/agentic-rag/how-rag-works/</link><guid isPermaLink="false">aiml.sh:how-rag-works</guid><description>Learn how an application searches documents, supplies relevant passages to a language model and links its answer to sources.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building Agentic RAG Applications</category></item><item><title>Limit concurrent RAG requests</title><link>https://aiml.sh/courses/agentic-rag/limit-concurrent-rag-requests/</link><guid isPermaLink="false">aiml.sh:limit-concurrent-rag-requests</guid><description>Bound active retrieval and waiting work in one process; inspect actual FIFO promotion, queue refusals, wait deadlines and cancellation-safe lease cleanup.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building Agentic RAG Applications</category></item><item><title>Bound scripted retrieval runs</title><link>https://aiml.sh/courses/agentic-rag/limit-retrieval-agent-runs/</link><guid isPermaLink="false">aiml.sh:limit-retrieval-agent-runs</guid><description>Bound a scripted retrieval run with action and source-byte admission checks, retain denied and failed attempts, and separate limits from task completion.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building Agentic RAG Applications</category></item><item><title>Load developer documentation</title><link>https://aiml.sh/courses/agentic-rag/load-developer-documentation/</link><guid isPermaLink="false">aiml.sh:load-developer-documentation</guid><description>Load a pinned local UTF-8 documentation snapshot into records that keep the source identity, version, URL and text together.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building Agentic RAG Applications</category></item><item><title>Provision Terraform infrastructure and deploy with agents-cli</title><link>https://aiml.sh/courses/agents-cli/provision-terraform-and-deploy-with-agents-cli/</link><guid isPermaLink="false">aiml.sh:provision-terraform-and-deploy-with-agents-cli</guid><description>Separate Terraform infrastructure from code rollouts, validate Agent Runtime and Cloud Run rollouts with agents-cli deploy --dry-run, and inspect metadata.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building, Evaluating, and Deploying Agents with Google Agents CLI</category></item><item><title>Publish to Gemini and configure agent observability</title><link>https://aiml.sh/courses/agents-cli/publish-to-gemini-and-configure-agent-observability/</link><guid isPermaLink="false">aiml.sh:publish-to-gemini-and-configure-agent-observability</guid><description>Register a deployed agent with Gemini Enterprise in ADK or A2A mode using agents-cli publish gemini, and query two-tier GCS and BigQuery telemetry.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building, Evaluating, and Deploying Agents with Google Agents CLI</category></item><item><title>Record a RAG baseline</title><link>https://aiml.sh/courses/agentic-rag/record-a-rag-baseline/</link><guid isPermaLink="false">aiml.sh:record-a-rag-baseline</guid><description>Record a fixed RAG pipeline on eight versioned questions, separate retrieval from answer checks, and preserve missing answers without retries.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building Agentic RAG Applications</category></item><item><title>Refine queries with a scripted policy</title><link>https://aiml.sh/courses/agentic-rag/refine-queries-and-search-again/</link><guid isPermaLink="false">aiml.sh:refine-queries-and-search-again</guid><description>Run a scripted retrieval controller that observes source passages, revises a query under an explicit rule, and retains its attempts and stopping reasons.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building Agentic RAG Applications</category></item><item><title>Release the RAG application</title><link>https://aiml.sh/courses/agentic-rag/release-the-rag-application/</link><guid isPermaLink="false">aiml.sh:release-the-rag-application</guid><description>Stage the existing retrieval service locally, bind its files to a retained release identity, block failed task checks, and test artifact-pointer rollback.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building Agentic RAG Applications</category></item><item><title>Rerank retrieved passages</title><link>https://aiml.sh/courses/agentic-rag/rerank-retrieved-passages/</link><guid isPermaLink="false">aiml.sh:rerank-retrieved-passages</guid><description>Compare coverage, Gemini relevance and a pinned cross-encoder on frozen candidates, preserving passage identity and honest ranking limits.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building Agentic RAG Applications</category></item><item><title>Resume document ingestion</title><link>https://aiml.sh/courses/agentic-rag/resume-document-ingestion/</link><guid isPermaLink="false">aiml.sh:resume-document-ingestion</guid><description>Resume a pinned SQLite ingestion job after an injected interruption, checking committed sources, chunk rows and atomic completion checkpoints.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building Agentic RAG Applications</category></item><item><title>Retrieve surrounding context</title><link>https://aiml.sh/courses/agentic-rag/retrieve-surrounding-context/</link><guid isPermaLink="false">aiml.sh:retrieve-surrounding-context</guid><description>Expand explicit seed chunks into bounded source-local context windows, merge overlaps, and preserve section, revision and seed provenance before assembly.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building Agentic RAG Applications</category></item><item><title>Run RAG evals on an updated corpus</title><link>https://aiml.sh/courses/agentic-rag/run-rag-evals-on-an-updated-corpus/</link><guid isPermaLink="false">aiml.sh:run-rag-evals-on-an-updated-corpus</guid><description>Compare fixed development retrieval cases across a synthetic corpus update, refuse stale target hashes, and retain deleted targets outside paired means.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building Agentic RAG Applications</category></item><item><title>Serve the RAG application with FastAPI</title><link>https://aiml.sh/courses/agentic-rag/serve-the-rag-application-with-fastapi/</link><guid isPermaLink="false">aiml.sh:serve-the-rag-application-with-fastapi</guid><description>Serve the existing retrieval core through FastAPI, validate bounded requests, preserve source metadata and response hashes, and inspect local HTTP failures.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building Agentic RAG Applications</category></item><item><title>Stream RAG answers</title><link>https://aiml.sh/courses/agentic-rag/stream-rag-answers/</link><guid isPermaLink="false">aiml.sh:stream-rag-answers</guid><description>Compare preserved answer replay with actual Gemini SSE events, keep partial output provisional, and validate completion and context-bound source IDs.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building Agentic RAG Applications</category></item><item><title>Synthesize user simulations and compare evaluation runs</title><link>https://aiml.sh/courses/agents-cli/synthesize-user-simulations-and-compare-eval-runs/</link><guid isPermaLink="false">aiml.sh:synthesize-user-simulations-and-compare-eval-runs</guid><description>Generate multi-turn user-simulated traces with agents-cli eval dataset synthesize, cluster losses with eval analyze, and diff runs with eval compare.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building, Evaluating, and Deploying Agents with Google Agents CLI</category></item><item><title>Trace RAG requests</title><link>https://aiml.sh/courses/agentic-rag/trace-rag-requests/</link><guid isPermaLink="false">aiml.sh:trace-rag-requests</guid><description>Trace actual local retrieval executions with isolated context IDs, fixed-field redacted spans, bounded retention and reproducible failure diagnostics.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building Agentic RAG Applications</category></item><item><title>Track passage sources</title><link>https://aiml.sh/courses/agentic-rag/track-passage-sources/</link><guid isPermaLink="false">aiml.sh:track-passage-sources</guid><description>Bind an exact passage to its source path, byte hash and line span, then reject stale or altered records before displaying the text.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building Agentic RAG Applications</category></item><item><title>Update and delete indexed content</title><link>https://aiml.sh/courses/agentic-rag/update-and-delete-indexed-content/</link><guid isPermaLink="false">aiml.sh:update-and-delete-indexed-content</guid><description>Update or delete source and chunk rows with a SQLite FTS5 index in one transaction, then check actual search results and rollback behavior.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building Agentic RAG Applications</category></item><item><title>Enhance, upgrade, and extend an Agents CLI project</title><link>https://aiml.sh/courses/agents-cli/upgrade-and-extend-an-agents-cli-project/</link><guid isPermaLink="false">aiml.sh:upgrade-and-extend-an-agents-cli-project</guid><description>Add Cloud Run and CI/CD scaffolding in place with scaffold enhance, run 3-way template merges with scaffold upgrade, and wire agents-cli-extension.yaml.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building, Evaluating, and Deploying Agents with Google Agents CLI</category></item><item><title>Version documents and chunks</title><link>https://aiml.sh/courses/agentic-rag/version-documents-and-chunks/</link><guid isPermaLink="false">aiml.sh:version-documents-and-chunks</guid><description>Create source and chunk revisions from pinned documentation, compare text and metadata changes, and reject inconsistent saved snapshots.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>Building Agentic RAG Applications</category></item><item><title>Build a RAG pipeline with citations</title><link>https://aiml.sh/courses/rag/build-a-rag-pipeline-with-citations/</link><guid isPermaLink="false">aiml.sh:build-a-rag-pipeline-with-citations</guid><description>Retrieve internal developer documentation with PGVectorStore, ask Gemini for source IDs and quotes, and reject citations outside the supplied chunks.</description><pubDate>Thu, 22 Oct 2026 00:00:00 GMT</pubDate><category>Retrieval-Augmented Generation (RAG)</category></item><item><title>Bind an eval run to a release manifest</title><link>https://aiml.sh/courses/llm-evaluation/build-a-release-manifest-for-application-model-tokenizer-prompt-data-and-index-versions/</link><guid isPermaLink="false">aiml.sh:build-a-release-manifest-for-application-model-tokenizer-prompt-data-and-index-versions</guid><description>Hash a tracker docs-assistant bundle, compare its settings with a recorded eval run, and reject changed files or missing evaluated cases.</description><pubDate>Thu, 22 Oct 2026 00:00:00 GMT</pubDate><category>LLM Evals</category></item><item><title>Add a long-term memory store</title><link>https://aiml.sh/courses/langgraph/add-a-long-term-memory-store/</link><guid isPermaLink="false">aiml.sh:add-a-long-term-memory-store</guid><description>Give a LangGraph code-review agent memory across threads with a store keyed by repository and topic, and see the stale-rule and namespace-prefix failures.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Building Agents with LangGraph</category></item><item><title>Add human-in-the-loop interrupts</title><link>https://aiml.sh/courses/langgraph/add-human-in-the-loop-interrupts/</link><guid isPermaLink="false">aiml.sh:add-human-in-the-loop-interrupts</guid><description>Pause a LangGraph code-review agent with interrupt() before it posts a comment, then resume it with Command(resume=...) to approve, edit or reject.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Building Agents with LangGraph</category></item><item><title>Apply safety and security guardrails to agent tools</title><link>https://aiml.sh/courses/google-adk-production/apply-safety-and-security-guardrails-to-agent-tools/</link><guid isPermaLink="false">aiml.sh:apply-safety-and-security-guardrails-to-agent-tools</guid><description>Guard docs-assistant write tools with role checks, confirmation and path validation, then test refused calls and a followed prompt injection.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Running and Deploying Agents with Google ADK 2.0</category></item><item><title>Build a custom WebSocket server for a live agent</title><link>https://aiml.sh/courses/google-adk-live/build-a-custom-websocket-server-for-a-live-agent/</link><guid isPermaLink="false">aiml.sh:build-a-custom-websocket-server-for-a-live-agent</guid><description>Bridge a WebSocket client to an ADK live agent with binary audio, JSON events, bounded concurrent sessions and cleanup when either direction stops.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Building Live and Voice Agents with Google ADK 2.0</category></item><item><title>Build a graph agent with tools</title><link>https://aiml.sh/courses/langgraph/build-a-graph-agent-with-tools/</link><guid isPermaLink="false">aiml.sh:build-a-graph-agent-with-tools</guid><description>Build a code-review agent as a LangGraph StateGraph with a ToolNode and tools_condition, run it on Gemini, and handle tool errors and the step limit.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Building Agents with LangGraph</category></item><item><title>Build a graph workflow from nodes and edges</title><link>https://aiml.sh/courses/google-adk/build-a-graph-workflow-from-nodes-and-edges/</link><guid isPermaLink="false">aiml.sh:build-a-graph-workflow-from-nodes-and-edges</guid><description>Build a release-notes workflow with function nodes, a typed agent node and a deterministic check that every commit reaches the output.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Building Agents with Google ADK 2.0</category></item><item><title>Configure an ADK Agent with YAML</title><link>https://aiml.sh/courses/google-adk-production/build-an-agent-as-yaml-config-and-in-visual-builder/</link><guid isPermaLink="false">aiml.sh:build-an-agent-as-yaml-config-and-in-visual-builder</guid><description>Define a Google ADK 2.0 agent in root_agent.yaml, load it with from_config, and test which YAML the loader and the Visual Builder save endpoint refuse.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Running and Deploying Agents with Google ADK 2.0</category></item><item><title>Build your first ADK agent with Gemini</title><link>https://aiml.sh/courses/google-adk/build-an-llm-agent/</link><guid isPermaLink="false">aiml.sh:build-an-llm-agent</guid><description>Build a documentation assistant with Google ADK, understand its model and instructions, and run it from the terminal or development Web UI.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Building Agents with Google ADK 2.0</category></item><item><title>Call a REST API from an OpenAPI spec, with authentication</title><link>https://aiml.sh/courses/google-adk-production/call-a-rest-api-from-an-openapi-spec-with-authentication/</link><guid isPermaLink="false">aiml.sh:call-a-rest-api-from-an-openapi-spec-with-authentication</guid><description>Turn a release API&apos;s OpenAPI spec into ADK tools, send its API key outside the prompt, keep the agent read-only, and debug wrong keys.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Running and Deploying Agents with Google ADK 2.0</category></item><item><title>Call tools during a live conversation</title><link>https://aiml.sh/courses/google-adk-live/call-tools-during-a-live-conversation/</link><guid isPermaLink="false">aiml.sh:call-tools-during-a-live-conversation</guid><description>Run docs lookup and background tools in an ADK live conversation, inspect function responses, and reproduce tool errors and model-specific limits.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Building Live and Voice Agents with Google ADK 2.0</category></item><item><title>Choose an ADK workflow pattern</title><link>https://aiml.sh/courses/google-adk/choose-an-adk-workflow-pattern/</link><guid isPermaLink="false">aiml.sh:choose-an-adk-workflow-pattern</guid><description>Compare ADK workflow patterns by dependencies, control and failure policy, then inspect the real lesson graphs without calling a model.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Building Agents with Google ADK 2.0</category></item><item><title>Connect an agent to MCP servers with McpToolset</title><link>https://aiml.sh/courses/google-adk/connect-an-agent-to-mcp-servers-with-mcptoolset/</link><guid isPermaLink="false">aiml.sh:connect-an-agent-to-mcp-servers-with-mcptoolset</guid><description>Attach a typed MCP server to a Google ADK 2.0 agent with McpToolset, expose only the tools it needs, read what reaches the model and catch a failed start.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Building Agents with Google ADK 2.0</category></item><item><title>Delegate to sub-agents through a coordinator</title><link>https://aiml.sh/courses/google-adk/delegate-to-sub-agents-in-a-collaborative-workflow/</link><guid isPermaLink="false">aiml.sh:delegate-to-sub-agents-in-a-collaborative-workflow</guid><description>Build a documentation review team with a coordinator, two typed specialists and an event check that both delegations ran.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Building Agents with Google ADK 2.0</category></item><item><title>Deploy an ADK agent to Agent Runtime</title><link>https://aiml.sh/courses/google-adk-production/deploy-an-adk-agent-to-agent-runtime/</link><guid isPermaLink="false">aiml.sh:deploy-an-adk-agent-to-agent-runtime</guid><description>Deploy an ADK agent with the native CLI, call Agent Runtime session and streaming methods, and distinguish endpoint mistakes from user-session errors.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Running and Deploying Agents with Google ADK 2.0</category></item><item><title>Deploy an ADK agent to Cloud Run</title><link>https://aiml.sh/courses/google-adk-production/deploy-an-adk-agent-to-cloud-run/</link><guid isPermaLink="false">aiml.sh:deploy-an-adk-agent-to-cloud-run</guid><description>Serve an ADK agent on private Cloud Run, separate caller and runtime permissions, and inspect what happens to local sessions across a revision change.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Running and Deploying Agents with Google ADK 2.0</category></item><item><title>Evaluate an agent&apos;s tool trajectory and response</title><link>https://aiml.sh/courses/google-adk/evaluate-an-agents-tool-trajectory-and-response/</link><guid isPermaLink="false">aiml.sh:evaluate-an-agents-tool-trajectory-and-response</guid><description>Write evaluation cases for tool use and complete answers, run ADK AgentEvaluator and understand the limits of trajectory, ROUGE and judge scores.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Building Agents with Google ADK 2.0</category></item><item><title>Expose the docs assistant over A2A and consume it</title><link>https://aiml.sh/courses/google-adk-integrations/expose-an-agent-over-a2a-and-consume-it/</link><guid isPermaLink="false">aiml.sh:expose-an-agent-over-a2a-and-consume-it</guid><description>Serve an ADK agent over A2A with to_a2a, call it from another agent with RemoteA2aAgent, and debug card, connection and timeout failures.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Connecting Agents to Tools and Services with Google ADK 2.0</category></item><item><title>Expose the docs assistant as an MCP server</title><link>https://aiml.sh/courses/google-adk-production/expose-the-docs-assistant-as-an-mcp-server/</link><guid isPermaLink="false">aiml.sh:expose-the-docs-assistant-as-an-mcp-server</guid><description>Serve the docs assistant as one MCP tool with to_mcp_server, call it from the MCP SDK and another ADK agent, and fix key and timeout failures.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Running and Deploying Agents with Google ADK 2.0</category></item><item><title>Generate and review</title><link>https://aiml.sh/courses/google-adk/generate-and-review/</link><guid isPermaLink="false">aiml.sh:generate-and-review</guid><description>Build an ADK writer and reviewer that compare a release announcement with changelog facts, then enforce the typed verdict in code.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Building Agents with Google ADK 2.0</category></item><item><title>Give an agent skills from a folder with SkillToolset</title><link>https://aiml.sh/courses/google-adk-integrations/give-an-agent-skills-from-a-folder/</link><guid isPermaLink="false">aiml.sh:give-an-agent-skills-from-a-folder</guid><description>Load a folder of Agent Skills into an ADK agent with SkillToolset, run skill scripts, and catch the failures that silently skip a skill&apos;s steps.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Connecting Agents to Tools and Services with Google ADK 2.0</category></item><item><title>Guard and evaluate a voice agent</title><link>https://aiml.sh/courses/google-adk-live/guard-and-evaluate-a-voice-agent/</link><guid isPermaLink="false">aiml.sh:guard-and-evaluate-a-voice-agent</guid><description>Test ADK live input, output and tool callbacks, inspect audio delivered before a block, and check what a recorded speech evaluation really scored.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Building Live and Voice Agents with Google ADK 2.0</category></item><item><title>Guard model and tool calls with callbacks and plugins</title><link>https://aiml.sh/courses/google-adk/guard-model-and-tool-calls-with-callbacks-and-plugins/</link><guid isPermaLink="false">aiml.sh:guard-model-and-tool-calls-with-callbacks-and-plugins</guid><description>Guard a Google ADK 2.0 agent with a plugin that strips AWS key IDs before Gemini sees them and a callback that keeps a file tool inside its workspace.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Building Agents with Google ADK 2.0</category></item><item><title>Hierarchical task decomposition</title><link>https://aiml.sh/courses/google-adk/hierarchical-task-decomposition/</link><guid isPermaLink="false">aiml.sh:hierarchical-task-decomposition</guid><description>Build a depth-limited ADK AgentTool tree for an upgrade guide, check its source paths and share a model-call budget across nested runs.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Building Agents with Google ADK 2.0</category></item><item><title>Implement an MCP server with typed tool contracts</title><link>https://aiml.sh/courses/mcp/implement-an-mcp-server-with-typed-tool-contracts/</link><guid isPermaLink="false">aiml.sh:implement-an-mcp-server-with-typed-tool-contracts</guid><description>Implement a task-tracker server with the MCP Python SDK whose typed tool schemas reject bad arguments and keep tool errors apart from protocol errors.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Model Context Protocol (MCP)</category></item><item><title>Inject tool failures with environment simulation</title><link>https://aiml.sh/courses/google-adk-production/inject-tool-failures-with-environment-simulation/</link><guid isPermaLink="false">aiml.sh:inject-tool-failures-with-environment-simulation</guid><description>Inject docs-service failures with ADK environment simulation, replay the recorded responses, and test the limits of retry guidance and error rules.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Running and Deploying Agents with Google ADK 2.0</category></item><item><title>Integrate MCP tools into ADK and LangGraph agents</title><link>https://aiml.sh/courses/mcp/integrate-mcp-tools-into-adk-and-langgraph-agents/</link><guid isPermaLink="false">aiml.sh:integrate-mcp-tools-into-adk-and-langgraph-agents</guid><description>Connect one MCP server to a Google ADK agent with McpToolset and a LangGraph agent with langchain-mcp-adapters, and compare how each handles tool failures.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Model Context Protocol (MCP)</category></item><item><title>Iterative refinement</title><link>https://aiml.sh/courses/google-adk/iterative-refinement/</link><guid isPermaLink="false">aiml.sh:iterative-refinement</guid><description>Refine a changelog line in an ADK 2.0 graph loop: a lint checks each draft, a back-edge sends problems to a reviser, and a state counter stops the loop.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Building Agents with Google ADK 2.0</category></item><item><title>Keep long sessions in budget with compaction and context caching</title><link>https://aiml.sh/courses/google-adk-production/keep-long-sessions-in-budget-with-compaction-and-context-caching/</link><guid isPermaLink="false">aiml.sh:keep-long-sessions-in-budget-with-compaction-and-context-caching</guid><description>Cache the docs assistant&apos;s manual with ContextCacheConfig, summarize old turns with EventsCompactionConfig, and measure both in Gemini usage metadata.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Running and Deploying Agents with Google ADK 2.0</category></item><item><title>Make tools parallel-ready</title><link>https://aiml.sh/courses/google-adk-production/make-tools-parallel-ready/</link><guid isPermaLink="false">aiml.sh:make-tools-parallel-ready</guid><description>Measure how ADK runs several function calls from one Gemini response, and make them overlap with async tools or a tool thread pool.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Running and Deploying Agents with Google ADK 2.0</category></item><item><title>Parallel fan-out and gather</title><link>https://aiml.sh/courses/google-adk/parallel-fan-out-and-gather/</link><guid isPermaLink="false">aiml.sh:parallel-fan-out-and-gather</guid><description>Run ADK 2.0 workflow branches in parallel and merge them with a JoinNode, then see one failed branch fail the graph and a dynamic parent keep the rest.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Building Agents with Google ADK 2.0</category></item><item><title>Pause a workflow for human approval</title><link>https://aiml.sh/courses/google-adk/pause-a-workflow-for-human-approval/</link><guid isPermaLink="false">aiml.sh:pause-a-workflow-for-human-approval</guid><description>Pause a migration workflow with the SQL attached, validate a reviewer decision and resume the same session to apply or reject the change.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Building Agents with Google ADK 2.0</category></item><item><title>Persist session state and long-term memory</title><link>https://aiml.sh/courses/google-adk/persist-session-state-and-long-term-memory/</link><guid isPermaLink="false">aiml.sh:persist-session-state-and-long-term-memory</guid><description>Persist Google ADK 2.0 sessions in SQLite with DatabaseSessionService, keep user state across restarts and recall earlier conversations with load_memory.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Building Agents with Google ADK 2.0</category></item><item><title>Query BigQuery with BigQueryToolset</title><link>https://aiml.sh/courses/google-adk-integrations/query-bigquery-with-bigquerytoolset/</link><guid isPermaLink="false">aiml.sh:query-bigquery-with-bigquerytoolset</guid><description>Query docs analytics through ADK BigQueryToolset with SELECT-only execution, a per-query bytes cap, and offline tests for refused jobs.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Connecting Agents to Tools and Services with Google ADK 2.0</category></item><item><title>Query PostgreSQL through MCP Toolbox for Databases</title><link>https://aiml.sh/courses/google-adk-integrations/query-postgresql-through-mcp-toolbox-for-databases/</link><guid isPermaLink="false">aiml.sh:query-postgresql-through-mcp-toolbox-for-databases</guid><description>Connect an ADK agent to PostgreSQL through MCP Toolbox with fixed SQL tools and a read-only role, and catch toolsets that fail to load.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Connecting Agents to Tools and Services with Google ADK 2.0</category></item><item><title>Read live events and manage live sessions</title><link>https://aiml.sh/courses/google-adk-live/read-live-events-and-manage-live-sessions/</link><guid isPermaLink="false">aiml.sh:read-live-events-and-manage-live-sessions</guid><description>Fold ADK live events into captions, handle interruptions, inspect saved session history, and test reconnect behavior with and without a handle.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Building Live and Voice Agents with Google ADK 2.0</category></item><item><title>Resume an interrupted agent run</title><link>https://aiml.sh/courses/google-adk-production/resume-an-interrupted-agent-run/</link><guid isPermaLink="false">aiml.sh:resume-an-interrupted-agent-run</guid><description>Make a Google ADK 2.0 app resumable, finish a run whose process died inside a tool, and keep the retried tool from filing a duplicate issue.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Running and Deploying Agents with Google ADK 2.0</category></item><item><title>Rewind a session and migrate its database</title><link>https://aiml.sh/courses/google-adk-production/rewind-a-session-and-migrate-its-database/</link><guid isPermaLink="false">aiml.sh:rewind-a-session-and-migrate-its-database</guid><description>Undo turns in a Google ADK 2.0 session with rewind_async, see what it restores, and migrate a legacy pickle session database with adk migrate session.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Running and Deploying Agents with Google ADK 2.0</category></item><item><title>Route a workflow with conditional edges</title><link>https://aiml.sh/courses/google-adk/route-a-workflow-with-conditional-edges/</link><guid isPermaLink="false">aiml.sh:route-a-workflow-with-conditional-edges</guid><description>Route documentation build logs with Python, use a default edge for incomplete runs and ask an agent for link suggestions only when needed.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Building Agents with Google ADK 2.0</category></item><item><title>Run an agent from event triggers</title><link>https://aiml.sh/courses/google-adk-production/run-an-agent-from-event-triggers/</link><guid isPermaLink="false">aiml.sh:run-an-agent-from-event-triggers</guid><description>Start an ADK agent from Pub/Sub and Eventarc request bodies, authenticate local trigger calls, and deduplicate the review tool’s writes.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Running and Deploying Agents with Google ADK 2.0</category></item><item><title>Run an agent and read its event stream</title><link>https://aiml.sh/courses/google-adk/run-an-agent-from-python-and-read-its-event-stream/</link><guid isPermaLink="false">aiml.sh:run-an-agent-from-python-and-read-its-event-stream</guid><description>Use Python Runner to manage an ADK conversation, inspect model and tool events, select the final answer and handle streaming and model-call limits.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Building Agents with Google ADK 2.0</category></item><item><title>Run live agents inside a workflow</title><link>https://aiml.sh/courses/google-adk-live/run-live-agents-inside-a-workflow/</link><guid isPermaLink="false">aiml.sh:run-live-agents-inside-a-workflow</guid><description>Sequence a voice intake and docs-answer agent with ADK Workflow, inspect the typed handoff, and test live modes and incomplete transcripts.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Building Live and Voice Agents with Google ADK 2.0</category></item><item><title>Save and load files with Artifacts</title><link>https://aiml.sh/courses/google-adk-production/save-and-load-files-with-artifacts/</link><guid isPermaLink="false">aiml.sh:save-and-load-files-with-artifacts</guid><description>Store an uploaded ship.toml and versioned reviews as ADK artifacts on disk, load files only when needed, and see which survive a restart.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Running and Deploying Agents with Google ADK 2.0</category></item><item><title>Scaffold and deploy an agent with the Agents CLI</title><link>https://aiml.sh/courses/google-adk-production/scaffold-and-deploy-an-agent-with-the-agents-cli/</link><guid isPermaLink="false">aiml.sh:scaffold-and-deploy-an-agent-with-the-agents-cli</guid><description>Use an Agents CLI project for an existing ADK agent, inspect deployment defaults, set explicit resource limits, and resume a recorded remote session.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Running and Deploying Agents with Google ADK 2.0</category></item><item><title>Search private data stores with Agent Search</title><link>https://aiml.sh/courses/google-adk-integrations/search-private-data-stores-with-agent-search/</link><guid isPermaLink="false">aiml.sh:search-private-data-stores-with-agent-search</guid><description>Search engineering documents with ADK VertexAiSearchTool, validate a team filter from application state, and inspect recorded grounding metadata.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Connecting Agents to Tools and Services with Google ADK 2.0</category></item><item><title>Send audio, images and video, and configure voice</title><link>https://aiml.sh/courses/google-adk-live/send-audio-images-and-video-and-configure-voice/</link><guid isPermaLink="false">aiml.sh:send-audio-images-and-video-and-configure-voice</guid><description>Send PCM audio and JPEG frames to an ADK live agent, choose its voice, use push-to-talk signals, and diagnose format and configuration failures.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Building Live and Voice Agents with Google ADK 2.0</category></item><item><title>Serve an agent over HTTP and drive it from the CLI</title><link>https://aiml.sh/courses/google-adk-production/serve-an-agent-over-http-and-drive-it-from-the-cli/</link><guid isPermaLink="false">aiml.sh:serve-an-agent-over-http-and-drive-it-from-the-cli</guid><description>Serve a Google ADK 2.0 agent with adk api_server, call /run and /run_sse from a Python client, and script adk run with replay files and JSONL output.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Running and Deploying Agents with Google ADK 2.0</category></item><item><title>Serve MCP over stdio and Streamable HTTP, and test the contracts</title><link>https://aiml.sh/courses/mcp/serve-mcp-over-stdio-and-streamable-http-and-test-the-contracts/</link><guid isPermaLink="false">aiml.sh:serve-mcp-over-stdio-and-streamable-http-and-test-the-contracts</guid><description>Serve one MCP Python SDK server over stdio and Streamable HTTP, read the JSON-RPC requests the client sends, and pin its tool contracts with pytest.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Model Context Protocol (MCP)</category></item><item><title>Stream a voice conversation with run_live</title><link>https://aiml.sh/courses/google-adk-live/stream-a-voice-conversation-with-run-live/</link><guid isPermaLink="false">aiml.sh:stream-a-voice-conversation-with-run-live</guid><description>Open an ADK live connection, send text and microphone audio, inspect transcripts and audio events, and compare saved answers with and without the docs page.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Building Live and Voice Agents with Google ADK 2.0</category></item><item><title>Test an agent against simulated users</title><link>https://aiml.sh/courses/google-adk-production/test-an-agent-against-simulated-users/</link><guid isPermaLink="false">aiml.sh:test-an-agent-against-simulated-users</guid><description>Evaluate a docs assistant with simulated novice and expert users, inspect multi-turn scores, and diagnose turn caps and unsupported metrics.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Running and Deploying Agents with Google ADK 2.0</category></item><item><title>Trace and measure agent runs with OpenTelemetry</title><link>https://aiml.sh/courses/google-adk-production/trace-and-measure-agent-runs-with-opentelemetry/</link><guid isPermaLink="false">aiml.sh:trace-and-measure-agent-runs-with-opentelemetry</guid><description>Record ADK spans and GenAI metrics with OpenTelemetry, inspect one docs-assistant run, and control prompt and tool content in exported spans.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Running and Deploying Agents with Google ADK 2.0</category></item><item><title>Tune a run with RunConfig and read the event loop</title><link>https://aiml.sh/courses/google-adk-production/tune-a-run-with-runconfig-and-read-the-event-loop/</link><guid isPermaLink="false">aiml.sh:tune-a-run-with-runconfig-and-read-the-event-loop</guid><description>Set Google ADK 2.0 RunConfig per run to tag events, cap model calls and history, and time out the model, then trace when the Runner commits state.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Running and Deploying Agents with Google ADK 2.0</category></item><item><title>Use Agent Platform models, sessions and Memory Bank</title><link>https://aiml.sh/courses/google-adk-production/use-agent-platform-models-sessions-and-memory-bank/</link><guid isPermaLink="false">aiml.sh:use-agent-platform-models-sessions-and-memory-bank</guid><description>Connect a local ADK runner to managed sessions and Memory Bank, separate model and storage locations, and inspect one cross-session recall run.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Running and Deploying Agents with Google ADK 2.0</category></item><item><title>Use Gemini built-in tools: Google Search grounding and code execution</title><link>https://aiml.sh/courses/google-adk-integrations/use-gemini-built-in-tools-google-search-and-code-execution/</link><guid isPermaLink="false">aiml.sh:use-gemini-built-in-tools-google-search-and-code-execution</guid><description>Add Gemini&apos;s Google Search and code execution to an ADK agent beside a function tool, cite answers from grounding metadata, and handle request errors.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Connecting Agents to Tools and Services with Google ADK 2.0</category></item><item><title>Write a custom eval metric and optimize the instruction</title><link>https://aiml.sh/courses/google-adk-production/write-a-custom-eval-metric-and-optimize-the-instruction/</link><guid isPermaLink="false">aiml.sh:write-a-custom-eval-metric-and-optimize-the-instruction</guid><description>Score citations against completed docs reads, optimize an ADK instruction with GEPA, and inspect copied facts and limits of the validation set.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Running and Deploying Agents with Google ADK 2.0</category></item><item><title>Build dynamic workflows in Python</title><link>https://aiml.sh/courses/google-adk/write-dynamic-workflows-in-python-code/</link><guid isPermaLink="false">aiml.sh:write-dynamic-workflows-in-python-code</guid><description>Review changed documentation pages with dynamic child nodes, deterministic lint checks and a bounded agent fix loop with retries and timeouts.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>Building Agents with Google ADK 2.0</category></item><item><title>Add branches and stop conditions to a LangGraph agent</title><link>https://aiml.sh/courses/langgraph/add-branches-and-stop-conditions/</link><guid isPermaLink="false">aiml.sh:build-a-bounded-agent-state-machine-with-branches-and-stop-conditions</guid><description>Replace tools_condition with a custom LangGraph router that stops repeated tool calls and runs near recursion_limit, and test every branch without a model.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>Building Agents with LangGraph</category></item><item><title>Give an agent typed function tools</title><link>https://aiml.sh/courses/google-adk/add-typed-function-tools/</link><guid isPermaLink="false">aiml.sh:build-a-function-calling-router-with-typed-tool-contracts</guid><description>Give a Google ADK 2.0 agent typed function tools, validate every call with Pydantic before it runs, and require human approval for the tool that writes.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>Building Agents with Google ADK 2.0</category></item><item><title>Plan, execute and verify a multi-step task in LangGraph</title><link>https://aiml.sh/courses/langgraph/plan-execute-and-verify-a-task/</link><guid isPermaLink="false">aiml.sh:build-a-multi-step-task-runner-with-independent-outcome-verification</guid><description>Build a LangGraph plan, execute and verify graph that applies a review fix with a create_agent executor and grades it by running the project&apos;s tests.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>Building Agents with LangGraph</category></item><item><title>Secure a remote MCP server with OAuth 2.1 and scoped tokens</title><link>https://aiml.sh/courses/mcp/build-a-remote-mcp-service-with-authentication-and-authorization/</link><guid isPermaLink="false">aiml.sh:build-a-remote-mcp-service-with-authentication-and-authorization</guid><description>Serve an MCP server over Streamable HTTP that accepts only tokens issued for it, publishes Protected Resource Metadata and returns 403 for a missing scope.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>Model Context Protocol (MCP)</category></item><item><title>Build a read-only database MCP server with scoped roles</title><link>https://aiml.sh/courses/mcp/build-a-scoped-postgresql-mcp-tool-with-read-only-roles-and-query-limits/</link><guid isPermaLink="false">aiml.sh:build-a-scoped-postgresql-mcp-tool-with-read-only-roles-and-query-limits</guid><description>Let a model run SQL through an MCP tool on PostgreSQL 17 with a read-only role, a statement timeout and row and byte limits, and test what each layer stops.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>Model Context Protocol (MCP)</category></item><item><title>Compare exact, HNSW and IVFFlat search in pgvector</title><link>https://aiml.sh/courses/rag/build-a-vector-search-comparison-exact-ann-pgvector/</link><guid isPermaLink="false">aiml.sh:build-a-vector-search-comparison-exact-ann-pgvector</guid><description>Compare pgvector exact, HNSW and IVFFlat results through PGVectorStore, check the query plan, and measure overlap on saved developer questions.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>Retrieval-Augmented Generation (RAG)</category></item><item><title>Build a PostgreSQL vector store with LangChain</title><link>https://aiml.sh/courses/rag/build-a-vector-store/</link><guid isPermaLink="false">aiml.sh:build-a-vector-store</guid><description>Use PGVectorStore to insert, replace, filter and delete internal documentation chunks, then test retries and a partially written batch.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>Retrieval-Augmented Generation (RAG)</category></item><item><title>Build an eval harness with pytest</title><link>https://aiml.sh/courses/llm-evaluation/build-an-eval-harness/</link><guid isPermaLink="false">aiml.sh:build-a-versioned-evaluation-harness-with-deterministic-checks</guid><description>Build a versioned pytest eval harness for an LLM triage function with structured-output checks, a calibrated DeepEval G-Eval judge, pass^k and offline replay.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>LLM Evals</category></item><item><title>Checkpoint a LangGraph workflow and resume it after a crash</title><link>https://aiml.sh/courses/langgraph/checkpoint-and-resume-a-workflow/</link><guid isPermaLink="false">aiml.sh:build-a-workflow-with-checkpoints-and-resumable-steps</guid><description>Checkpoint a LangGraph workflow to SQLite with SqliteSaver, kill the process mid-run, resume without calling Gemini again and see which steps repeat.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>Building Agents with LangGraph</category></item><item><title>Build an embedding pipeline with LangChain</title><link>https://aiml.sh/courses/rag/build-an-embedding-pipeline/</link><guid isPermaLink="false">aiml.sh:build-an-embedding-pipeline</guid><description>Split internal developer documentation with LangChain, embed chunks through Ollama, and keep the model and chunk settings beside the vectors.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>Retrieval-Augmented Generation (RAG)</category></item><item><title>Build an MCP client with discovery, calls and tracing</title><link>https://aiml.sh/courses/mcp/build-an-mcp-client/</link><guid isPermaLink="false">aiml.sh:build-an-mcp-client-with-discovery-and-execution-tracing</guid><description>Build an MCP client that acts on discovery, refuses bad calls before sending them, classifies every outcome and traces each call with OpenTelemetry.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>Model Context Protocol (MCP)</category></item><item><title>Expose resources and prompts from an MCP server</title><link>https://aiml.sh/courses/mcp/build-an-mcp-server-with-tools-resources-and-prompts/</link><guid isPermaLink="false">aiml.sh:build-an-mcp-server-with-tools-resources-and-prompts</guid><description>Build a docs server with the MCP Python SDK that offers a search tool, pages as resources and a review prompt, and returns the specified error codes.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>Model Context Protocol (MCP)</category></item><item><title>Inspect cosine distance under the hood</title><link>https://aiml.sh/courses/rag/build-exact-vector-search/</link><guid isPermaLink="false">aiml.sh:build-exact-vector-search</guid><description>Use NumPy and saved real embeddings to inspect cosine distance, reject invalid vector shapes, and see why metadata filters still matter.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>Retrieval-Augmented Generation (RAG)</category></item><item><title>Check evaluation datasets for leakage</title><link>https://aiml.sh/courses/llm-evaluation/build-held-out-dataset-and-leakage-checks/</link><guid isPermaLink="false">aiml.sh:build-held-out-dataset-and-leakage-checks</guid><description>Keep related tracker issues in one split, review word overlap and copied prompt text, and detect changes after a held-out dataset is frozen.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>LLM Evals</category></item><item><title>Make LangGraph retries idempotent</title><link>https://aiml.sh/courses/langgraph/make-retries-idempotent/</link><guid isPermaLink="false">aiml.sh:build-idempotent-retries-for-workflows</guid><description>Retry a ticket-filing write with a LangGraph RetryPolicy, see a retry file a duplicate, and stop duplicates across retries and resumes with an idempotency key.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>Building Agents with LangGraph</category></item><item><title>Build multimodal RAG with chart source references</title><link>https://aiml.sh/courses/rag/build-multimodal-rag-with-verifiable-source-references/</link><guid isPermaLink="false">aiml.sh:build-multimodal-rag-with-verifiable-source-references</guid><description>Retrieve chart descriptions with PGVectorStore, send selected PNGs to Gemini, and check image identity separately from quoted source text.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>Retrieval-Augmented Generation (RAG)</category></item><item><title>Gate releases on eval regressions in CI</title><link>https://aiml.sh/courses/llm-evaluation/gate-releases-on-eval-regressions/</link><guid isPermaLink="false">aiml.sh:build-regression-gates-for-prompts-models-data-and-indexes</guid><description>Gate prompt, model and dataset changes by comparing a pytest eval run with the main baseline, block new failures and run it in GitHub Actions without a model.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>LLM Evals</category></item><item><title>Measure RAG and tool-call quality</title><link>https://aiml.sh/courses/llm-evaluation/measure-rag-and-tool-call-quality/</link><guid isPermaLink="false">aiml.sh:build-retrieval-generation-and-tool-execution-evaluation-reports</guid><description>Evaluate a LangChain docs agent stage by stage with DeepEval, score its tool calls, retrieval and answer faithfulness, and report the first stage that fails.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>LLM Evals</category></item><item><title>Write robustness tests for an LLM app</title><link>https://aiml.sh/courses/llm-evaluation/build-robustness-tests-for-an-llm-app/</link><guid isPermaLink="false">aiml.sh:build-robustness-tests-for-an-llm-app</guid><description>Extend a pytest eval suite with meaning-preserving perturbations and prompt-injection cases, run it on Gemini and Gemma, and read per-perturbation pass counts.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>LLM Evals</category></item><item><title>Add timeouts and token budgets to a LangGraph agent</title><link>https://aiml.sh/courses/langgraph/add-timeouts-and-token-budgets/</link><guid isPermaLink="false">aiml.sh:build-tool-timeouts-and-budgets-for-agents</guid><description>Bound a LangGraph agent with tool and model timeouts and a soft token budget, then inspect a genuine tool proposal followed by a native local timeout.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>Building Agents with LangGraph</category></item><item><title>Defend a tool-using assistant against prompt injection</title><link>https://aiml.sh/courses/ai-fundamentals/human-control/</link><guid isPermaLink="false">aiml.sh:human-control</guid><description>Test whether document text can trigger an unauthorized tool call, and compare prompt warnings with application permission checks.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>AI Fundamentals</category></item><item><title>Validate a model-proposed tool call</title><link>https://aiml.sh/courses/ai-fundamentals/tools-and-permissions/</link><guid isPermaLink="false">aiml.sh:tools-and-permissions</guid><description>Send a read tool schema to a local model, inspect one proposed call, and reject unknown names or invalid page arguments before the tool function runs.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>AI Fundamentals</category></item><item><title>Rank documents with embeddings</title><link>https://aiml.sh/courses/ai-fundamentals/vectors-and-similarity/</link><guid isPermaLink="false">aiml.sh:vectors-and-similarity</guid><description>Embed the docuctl docs pages and questions with a local model, rank pages by cosine similarity, and see the two ways similarity search misleads.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>AI Fundamentals</category></item><item><title>Write your first eval for an LLM app</title><link>https://aiml.sh/courses/ai-fundamentals/what-is-an-evaluation/</link><guid isPermaLink="false">aiml.sh:what-is-an-evaluation</guid><description>Write fixed cases for the docuctl docs assistant, grade every answer in code, run three trials per case, and use the results to judge two attempted fixes.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>AI Fundamentals</category></item><item><title>Control sampling, output limits and streaming</title><link>https://aiml.sh/courses/ai-fundamentals/generation-controls/</link><guid isPermaLink="false">aiml.sh:generation-controls</guid><description>Set temperature and seed, cap the output with num_predict, stream the reply and time its first chunk, and handle a reply that was cut off or timed out.</description><pubDate>Sun, 18 Oct 2026 00:00:00 GMT</pubDate><category>AI Fundamentals</category></item><item><title>Get structured output and validate it with Pydantic</title><link>https://aiml.sh/courses/ai-fundamentals/json-and-files/</link><guid isPermaLink="false">aiml.sh:json-and-files</guid><description>Make the docuctl docs assistant return a typed answer: send a Pydantic JSON schema as the output format, validate every reply, and see its limits.</description><pubDate>Sun, 18 Oct 2026 00:00:00 GMT</pubDate><category>AI Fundamentals</category></item><item><title>Call a local model and a hosted API</title><link>https://aiml.sh/courses/ai-fundamentals/local-models-and-hosted-apis/</link><guid isPermaLink="false">aiml.sh:local-models-and-hosted-apis</guid><description>Send one docuctl docs question to Gemma through Ollama and to Gemini through its API, compare latency and token usage, and handle each failure.</description><pubDate>Sun, 18 Oct 2026 00:00:00 GMT</pubDate><category>AI Fundamentals</category></item><item><title>Send chat messages within the context window</title><link>https://aiml.sh/courses/ai-fundamentals/messages-and-context/</link><guid isPermaLink="false">aiml.sh:messages-and-context</guid><description>Build a multi-turn chat request for the docuctl docs assistant, resend the history Ollama needs, and detect when the configured context window loses input.</description><pubDate>Sun, 18 Oct 2026 00:00:00 GMT</pubDate><category>AI Fundamentals</category></item><item><title>Trace next-token generation</title><link>https://aiml.sh/courses/ai-fundamentals/next-token-prediction/</link><guid isPermaLink="false">aiml.sh:next-token-prediction</guid><description>Run a language model one token at a time, record the top candidates it scores at each step, and see how the docs in the context change every choice.</description><pubDate>Sun, 18 Oct 2026 00:00:00 GMT</pubDate><category>AI Fundamentals</category></item><item><title>Count tokens with the model&apos;s tokenizer</title><link>https://aiml.sh/courses/ai-fundamentals/tokens-and-tokenizers/</link><guid isPermaLink="false">aiml.sh:tokens-and-tokenizers</guid><description>Tokenize docuctl docs, commands and IDs with Gemma&apos;s own tokenizer, then compare your counts with what Ollama actually processed, chat template included.</description><pubDate>Sun, 18 Oct 2026 00:00:00 GMT</pubDate><category>AI Fundamentals</category></item><item><title>Run inference with a local LLM</title><link>https://aiml.sh/courses/ai-fundamentals/what-is-inference/</link><guid isPermaLink="false">aiml.sh:what-is-inference</guid><description>Run a language model with and without supplied documentation, and explain how request context differs from trained model weights.</description><pubDate>Sun, 18 Oct 2026 00:00:00 GMT</pubDate><category>AI Fundamentals</category></item><item><title>Trim conversation history to a token budget in LangGraph</title><link>https://aiml.sh/courses/langgraph/trim-history-to-a-token-budget/</link><guid isPermaLink="false">aiml.sh:build-a-context-budget-manager</guid><description>Trim a LangGraph code-review thread with trim_messages, pin key decisions, and compare the token estimate with Gemini’s reported input usage.</description><pubDate>Sat, 17 Oct 2026 00:00:00 GMT</pubDate><category>Building Agents with LangGraph</category></item></channel></rss>