Labs

Every lab below is a module of this repository's reference application, run unmodified. The Python is fetched from the repository at publication time, not copied here, and it executes in your own browser: no account, no install, and no API key. The transport is the repository's mock transport, so a lab that asks for a live one fails with a message saying why.

12 of 13 labs run in the browser. The rest show their source and say what the browser runtime cannot supply.

The runtime is about 6 MiB and is downloaded the first time you press Run on a lab page — never before, and never on any other page.

LabConceptDomainIn the browser
contextcontext editing and compactionDomain 1: Agents and WorkflowsRuns
loopthe bounded tool-use agent loopDomain 1: Agents and WorkflowsRuns
batchthe batch pathDomain 2: Applications and IntegrationRuns
cachingprompt cachingDomain 2: Applications and IntegrationRuns
configpinned model versionsDomain 2: Applications and IntegrationRuns
ingestuntrusted-input isolationDomain 2: Applications and IntegrationRuns
transportadaptive thinkingDomain 2: Applications and IntegrationRuns
evalsthe eval harnessDomain 4: Eval, Testing, and DebuggingRuns
routertool use and dispatchDomain 5: Model Selection and OptimizationRuns
outputstructured outputDomain 6: Prompt and Context EngineeringRuns
secretsenvironment-only credential handlingDomain 7: Security and SafetyRuns
securityguardrailsDomain 7: Security and SafetyRuns
mcp-serverthe MCP serverDomain 8: Tools and MCPsSource only

Add a lab or a practice item

A lab is a module in lab/; whether it runs here is decided by probing its imports against the vendored runtime, so nothing has to be added to a roster. Practice items live indrills/bank/ and must be original and validated.

Read how to contribute a practice item on GitHub.

Type to search notes, guides, study plans, cheatsheets, and the blueprint.