agentic-ai-engineering/site/.vitepress/dist/labs/l6-cost-optimization.html

34 lines
27 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en-US" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>L6b: Cost Optimization | FDSA</title>
<meta name="description" content="Agentic Engineering Course — build, deploy, and maintain production-grade AI agent systems.">
<meta name="generator" content="VitePress v1.6.4">
<link rel="preload stylesheet" href="/assets/style.XKnw1pgl.css" as="style">
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
<script type="module" src="/assets/app.DQEzoUiz.js"></script>
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="modulepreload" href="/assets/chunks/theme.BQD37h-V.js">
<link rel="modulepreload" href="/assets/chunks/framework.BPKcPtvA.js">
<link rel="modulepreload" href="/assets/labs_l6-cost-optimization.md.CabFK4GB.lean.js">
<link rel="icon" href="/favicon.svg">
<meta name="theme-color" content="#0f0f0f">
<meta property="og:title" content="FDSA — Agentic Engineering Course">
<meta property="og:description" content="65 lessons, 13 labs, 20 skill kits. Build production-grade AI agent systems.">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="">
<link href="https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,700;9..40,800&amp;family=DM+Mono:wght@400;500&amp;display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0,0" rel="stylesheet">
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"dark",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
</head>
<body>
<div id="app"><div class="Layout" data-v-d8b57b2d><!--[--><!--]--><!--[--><span tabindex="-1" data-v-fcbfc0e0></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-fcbfc0e0>Skip to content</a><!--]--><!----><header class="VPNav" data-v-d8b57b2d data-v-7ad780c2><div class="VPNavBar" data-v-7ad780c2 data-v-9fd4d1dd><div class="wrapper" data-v-9fd4d1dd><div class="container" data-v-9fd4d1dd><div class="title" data-v-9fd4d1dd><div class="VPNavBarTitle has-sidebar" data-v-9fd4d1dd data-v-9f43907a><a class="title" href="/" data-v-9f43907a><!--[--><!--]--><!----><span data-v-9f43907a>FDSA</span><!--[--><!--]--></a></div></div><div class="content" data-v-9fd4d1dd><div class="content-body" data-v-9fd4d1dd><!--[--><!--]--><div class="VPNavBarSearch search" data-v-9fd4d1dd><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-9fd4d1dd data-v-afb2845e><span id="main-nav-aria-label" class="visually-hidden" data-v-afb2845e> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/modules/m1-foundations" tabindex="0" data-v-afb2845e data-v-815115f5><!--[--><span data-v-815115f5>Course</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink active" href="/labs/l1-first-agent" tabindex="0" data-v-afb2845e data-v-815115f5><!--[--><span data-v-815115f5>Labs</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/skills" tabindex="0" data-v-afb2845e data-v-815115f5><!--[--><span data-v-815115f5>Skills</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/blog" tabindex="0" data-v-afb2845e data-v-815115f5><!--[--><span data-v-815115f5>Blog</span><!--]--></a><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-afb2845e data-v-bfe7971f><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-bfe7971f><span class="text" data-v-bfe7971f><!----><span data-v-bfe7971f>More</span><span class="vpi-chevron-down text-icon" data-v-bfe7971f></span></span></button><div class="menu" data-v-bfe7971f><div class="VPMenu" data-v-bfe7971f data-v-20ed86d6><div class="items" data-v-20ed86d6><!--[--><!--[--><div class="VPMenuLink" data-v-20ed86d6 data-v-7eeeb2dc><a class="VPLink link" href="/modules/curriculum" data-v-7eeeb2dc><!--[--><span data-v-7eeeb2dc>Curriculum</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-20ed86d6 data-v-7eeeb2dc><a class="VPLink link" href="/modules/debate" data-v-7eeeb2dc><!--[--><span data-v-7eeeb2dc>Debate</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-20ed86d6 data-v-7eeeb2dc><a class="VPLink link" href="/troubleshooting" data-v-7eeeb2dc><!--[--><span data-v-7eeeb2dc>FAQ</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-20ed86d6 data-v-7eeeb2dc><a class="VPLink link" href="/certificate" data-v-7eeeb2dc><!--[--><span data-v-7eeeb2dc>Certificate</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-20ed86d6 data-v-7eeeb2dc><a class="VPLink link" href="/buy" data-v-7eeeb2dc><!--[--><span data-v-7eeeb2dc>Buy</span><!--]--></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-9fd4d1dd data-v-3f90c1a5><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="true" data-v-3f90c1a5 data-v-be9742d9 data-v-b4ccac88><span class="check" data-v-b4ccac88><span class="icon" data-v-b4ccac88><!--[--><span class="vpi-sun sun" data-v-be9742d9></span><span class="vpi-moon moon" data-v-be9742d9></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-9fd4d1dd data-v-ef6192dc data-v-e71e869c><!--[--><a class="VPSocialLink no-icon" href="https://github.com/Artale/agentic-engineering" aria-label="github" target="_blank" rel="noopener" data-v-e71e869c data-v-60a9a2d3><span class="vpi-social-github"></span></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-9fd4d1dd data-v-f953d92f data-v-bfe7971f><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-bfe7971f><span class="vpi-more-horizontal icon" data-v-bfe7971f></span></button><div class="menu" data-v-bfe7971f><div class="VPMenu" data-v-bfe7971f data-v-20ed86d6><!----><!--[--><!--[--><!----><div class="group" data-v-f953d92f><div class="item appearance" data-v-f953d92f><p class="label" data-v-f953d92f>Appearance</p><div class="appearance-action" data-v-f953d92f><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="true" data-v-f953d92f data-v-be9742d9 data-v-b4ccac88><span class="check" data-v-b4ccac88><span class="icon" data-v-b4ccac88><!--[--><span class="vpi-sun sun" data-v-be9742d9></span><span class="vpi-moon moon" data-v-be9742d9></span><!--]--></span></span></button></div></div></div><div class="group" data-v-f953d92f><div class="item social-links" data-v-f953d92f><div class="VPSocialLinks social-links-list" data-v-f953d92f data-v-e71e869c><!--[--><a class="VPSocialLink no-icon" href="https://github.com/Artale/agentic-engineering" aria-label="github" target="_blank" rel="noopener" data-v-e71e869c data-v-60a9a2d3><span class="vpi-social-github"></span></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-9fd4d1dd data-v-6bee1efd><span class="container" data-v-6bee1efd><span class="top" data-v-6bee1efd></span><span class="middle" data-v-6bee1efd></span><span class="bottom" data-v-6bee1efd></span></span></button></div></div></div></div><div class="divider" data-v-9fd4d1dd><div class="divider-line" data-v-9fd4d1dd></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-d8b57b2d data-v-2488c25a><div class="container" data-v-2488c25a><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-2488c25a><span class="vpi-align-left menu-icon" data-v-2488c25a></span><span class="menu-text" data-v-2488c25a>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-2488c25a data-v-6b867909><button data-v-6b867909>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-d8b57b2d data-v-42c4c606><div class="curtain" data-v-42c4c606></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-42c4c606><span class="visually-hidden" id="sidebar-aria-label" data-v-42c4c606> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-51288d80><section class="VPSidebarItem level-0 has-active" data-v-51288d80 data-v-0009425e><!----><div class="items" data-v-0009425e><!--[--><div class="VPSidebarItem level-1 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/labs/l1-first-agent" data-v-0009425e><!--[--><p class="text" data-v-0009425e>All Labs</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/labs/l1-first-agent" data-v-0009425e><!--[--><p class="text" data-v-0009425e>L1: First Agent</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/labs/l2-multi-tool" data-v-0009425e><!--[--><p class="text" data-v-0009425e>L2a: Multi-Tool Agent</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/labs/l2-context" data-v-0009425e><!--[--><p class="text" data-v-0009425e>L2b: Context-Aware Agent</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/labs/l3-whitelist-hook" data-v-0009425e><!--[--><p class="text" data-v-0009425e>L3a: Whitelist Hook</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/labs/l3-verifier" data-v-0009425e><!--[--><p class="text" data-v-0009425e>L3b: Verifier Agent</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/labs/l4-agent-chain" data-v-0009425e><!--[--><p class="text" data-v-0009425e>L4a: Agent Chain</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/labs/l4-multi-team" data-v-0009425e><!--[--><p class="text" data-v-0009425e>L4b: Multi-Team Config</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/labs/l5-observability" data-v-0009425e><!--[--><p class="text" data-v-0009425e>L5a: Observability</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/labs/l5-cicd" data-v-0009425e><!--[--><p class="text" data-v-0009425e>L5b: CI/CD Pipeline</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/labs/l6-eval-harness" data-v-0009425e><!--[--><p class="text" data-v-0009425e>L6a: Eval Harness</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/labs/l6-cost-optimization" data-v-0009425e><!--[--><p class="text" data-v-0009425e>L6b: Cost Optimization</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/labs/l7-autoresearch" data-v-0009425e><!--[--><p class="text" data-v-0009425e>L7a: Autoresearch</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-0009425e data-v-0009425e><div class="item" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/labs/l7-meta-agent" data-v-0009425e><!--[--><p class="text" data-v-0009425e>L7b: Meta-Agent</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-d8b57b2d data-v-9a6c75ad><div class="VPDoc has-sidebar has-aside" data-v-9a6c75ad data-v-e6f2a212><!--[--><!--]--><div class="container" data-v-e6f2a212><div class="aside" data-v-e6f2a212><div class="aside-curtain" data-v-e6f2a212></div><div class="aside-container" data-v-e6f2a212><div class="aside-content" data-v-e6f2a212><div class="VPDocAside" data-v-e6f2a212 data-v-cb998dce><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-cb998dce data-v-f610f197><div class="content" data-v-f610f197><div class="outline-marker" data-v-f610f197></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-f610f197>On this page</div><ul class="VPDocOutlineItem root" data-v-f610f197 data-v-53c99d69><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-cb998dce></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-e6f2a212><div class="content-container" data-v-e6f2a212><!--[--><!--]--><main class="main" data-v-e6f2a212><div style="position:relative;" class="vp-doc _labs_l6-cost-optimization" data-v-e6f2a212><div><h1 id="l6b-cost-optimization" tabindex="-1">L6b: Cost Optimization <a class="header-anchor" href="#l6b-cost-optimization" aria-label="Permalink to &quot;L6b: Cost Optimization&quot;"></a></h1><p><strong>Module</strong>: M6 Economics<br><strong>Files</strong>: starter.py, solution.py</p><h2 id="objective" tabindex="-1">Objective <a class="header-anchor" href="#objective" aria-label="Permalink to &quot;Objective&quot;"></a></h2><p>Profile a session, find savings, implement cascade routing.</p><h2 id="concepts" tabindex="-1">Concepts <a class="header-anchor" href="#concepts" aria-label="Permalink to &quot;Concepts&quot;"></a></h2><p>Refer to the corresponding module for full concept explanations.</p><h2 id="starter" tabindex="-1">Starter <a class="header-anchor" href="#starter" aria-label="Permalink to &quot;Starter&quot;"></a></h2><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">cd</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> course/labs/l6-cost-optimization/</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Open starter file and fill in the TODOs</span></span></code></pre></div><h2 id="checkpoints" tabindex="-1">Checkpoints <a class="header-anchor" href="#checkpoints" aria-label="Permalink to &quot;Checkpoints&quot;"></a></h2><ol><li>Define model cost profiles (input/output $/M tokens)</li><li>Calculate all-Opus session cost</li><li>Implement cascade routing map (Flash/Sonnet/Opus by task)</li><li>Calculate savings percentage</li></ol><h2 id="solution" tabindex="-1">Solution <a class="header-anchor" href="#solution" aria-label="Permalink to &quot;Solution&quot;"></a></h2><p>Compare against the solution file after attempting the starter.</p></div></div></main><footer class="VPDocFooter" data-v-e6f2a212 data-v-1bcd8184><!--[--><!--]--><div class="edit-info" data-v-1bcd8184><!----><div class="last-updated" data-v-1bcd8184><p class="VPLastUpdated" data-v-1bcd8184 data-v-1bb0c8a8>Last updated: <time datetime="2026-06-03T12:04:06.000Z" data-v-1bb0c8a8></time></p></div></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-1bcd8184><span class="visually-hidden" id="doc-footer-aria-label" data-v-1bcd8184>Pager</span><div class="pager" data-v-1bcd8184><a class="VPLink link pager-link prev" href="/labs/l6-eval-harness" data-v-1bcd8184><!--[--><span class="desc" data-v-1bcd8184>Previous page</span><span class="title" data-v-1bcd8184>L6a: Eval Harness</span><!--]--></a></div><div class="pager" data-v-1bcd8184><a class="VPLink link pager-link next" href="/labs/l7-autoresearch" data-v-1bcd8184><!--[--><span class="desc" data-v-1bcd8184>Next page</span><span class="title" data-v-1bcd8184>L7a: Autoresearch</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-d8b57b2d data-v-566314d4><div class="container" data-v-566314d4><p class="message" data-v-566314d4>FDSA Agency — Agentic Engineering Course. Part of the fdsa.ai orchestration platform.</p><p class="copyright" data-v-566314d4>Copyright 2026</p></div></footer><!--[--><!--]--></div></div>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"404.md\":\"BiCvjdaY\",\"api-keys.md\":\"D2Kyj8T3\",\"blog_index.md\":\"B5nL9faf\",\"blog_posts_cascade-routing.md\":\"DvBM3TSf\",\"blog_posts_choosing-security-level.md\":\"BYXRZEDN\",\"blog_posts_mental-models.md\":\"BRY80gtq\",\"blog_posts_repo-is-spec.md\":\"BxY1cXc_\",\"blog_posts_security-ladder.md\":\"DQaqn6Yt\",\"blog_posts_three-x-rule.md\":\"BHO6bhvz\",\"blog_posts_verifier-pattern.md\":\"Gha_L_u5\",\"blog_posts_vibe-vs-agentic.md\":\"7mduPfz1\",\"blog_posts_what-is-an-agent.md\":\"BU2wUq_Y\",\"blog_posts_why-multi-agent.md\":\"BVRIN2vH\",\"buy.md\":\"CbIpCW5Y\",\"certificate.md\":\"0V0n-TLl\",\"getting-started.md\":\"Boo_V9xC\",\"index.md\":\"BNS2TR1g\",\"labs_index.md\":\"sAzXzfkI\",\"labs_l1-first-agent.md\":\"BwU9yf-G\",\"labs_l2-context.md\":\"BexGm8_s\",\"labs_l2-multi-tool.md\":\"Bj3Mb-oj\",\"labs_l3-verifier.md\":\"xilrGGap\",\"labs_l3-whitelist-hook.md\":\"DJtbL66Y\",\"labs_l4-agent-chain.md\":\"D89P8dwJ\",\"labs_l4-multi-team.md\":\"DmSK8e2P\",\"labs_l5-cicd.md\":\"Dz1Jl78z\",\"labs_l5-observability.md\":\"BDpqVYjT\",\"labs_l6-cost-optimization.md\":\"CabFK4GB\",\"labs_l6-eval-harness.md\":\"CBwH6xOR\",\"labs_l7-autoresearch.md\":\"BYlzPLYo\",\"labs_l7-meta-agent.md\":\"iTswbOPg\",\"modules_competitive-analysis.md\":\"BHMHacei\",\"modules_curriculum.md\":\"D7UeKRfo\",\"modules_debate.md\":\"DWctKMlA\",\"modules_feynman.md\":\"DBw5sPBP\",\"modules_field-manual.md\":\"hmt_NLf1\",\"modules_m1-foundations.md\":\"DHFyTzWj\",\"modules_m2-architecture.md\":\"Dp39xggp\",\"modules_m3-safety.md\":\"CkKCTJdi\",\"modules_m4-orchestration.md\":\"DFLcAKBv\",\"modules_m5-production.md\":\"DTkLIrwQ\",\"modules_m6-economics.md\":\"B6XI2-r7\",\"modules_m7-advanced.md\":\"Cr3-rEV4\",\"modules_m8-capstone.md\":\"D1AXKCqv\",\"modules_non-technical.md\":\"BnvuUCRo\",\"modules_reference-stack.md\":\"D9FXitvn\",\"modules_software-factory.md\":\"C5Yf8Zwe\",\"modules_tool-reference.md\":\"B40mlgZJ\",\"public_certificate_template.md\":\"Cg1kPB1b\",\"resources.md\":\"DcUu1NrK\",\"skills.md\":\"BX3RBeCK\",\"troubleshooting.md\":\"B6difx2I\",\"verify.md\":\"Cl5ZMWNd\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"FDSA\",\"description\":\"Agentic Engineering Course — build, deploy, and maintain production-grade AI agent systems.\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":\"dark\",\"themeConfig\":{\"logo\":false,\"siteTitle\":\"FDSA\",\"nav\":[{\"text\":\"Course\",\"link\":\"/modules/m1-foundations\",\"activeMatch\":\"/modules/\"},{\"text\":\"Labs\",\"link\":\"/labs/l1-first-agent\",\"activeMatch\":\"/labs/\"},{\"text\":\"Skills\",\"link\":\"/skills\"},{\"text\":\"Blog\",\"link\":\"/blog\",\"activeMatch\":\"/blog/\"},{\"text\":\"More\",\"items\":[{\"text\":\"Curriculum\",\"link\":\"/modules/curriculum\"},{\"text\":\"Debate\",\"link\":\"/modules/debate\"},{\"text\":\"FAQ\",\"link\":\"/troubleshooting\"},{\"text\":\"Certificate\",\"link\":\"/certificate\"},{\"text\":\"Buy\",\"link\":\"/buy\"}]}],\"sidebar\":{\"/modules/\":[{\"text\":\"Module 1: Foundations\",\"link\":\"/modules/m1-foundations\",\"collapsed\":true,\"items\":[{\"text\":\"1.1 What Makes an Agent?\",\"link\":\"/modules/m1-foundations#lesson-11-what-makes-an-agent\"},{\"text\":\"1.2 Harness vs The Model\",\"link\":\"/modules/m1-foundations#lesson-12-the-harness-vs-the-model\"},{\"text\":\"1.3 Decision Framework\",\"link\":\"/modules/m1-foundations#lesson-13-decision-framework\"},{\"text\":\"1.4 Repository IS the Spec\",\"link\":\"/modules/m1-foundations#lesson-13a-the-repository-is-the-spec\"},{\"text\":\"1.5 The Agent Loop\",\"link\":\"/modules/m1-foundations#lesson-14-the-agent-loop\"},{\"text\":\"1.6 Tool Calling\",\"link\":\"/modules/m1-foundations#lesson-15-tool-calling-deep-dive\"},{\"text\":\"1.7 Vibe Coding vs Engineering\",\"link\":\"/modules/m1-foundations#lesson-16-vibe-coding-vs-agentic-engineering\"},{\"text\":\"1.8 Do You Trust Your Agents?\",\"link\":\"/modules/m1-foundations#lesson-17-do-you-trust-your-agents\"},{\"text\":\"Lab 1.9: First Agent\",\"link\":\"/labs/l1-first-agent\"}]},{\"text\":\"Module 2: Architecture\",\"link\":\"/modules/m2-architecture\",\"collapsed\":true,\"items\":[{\"text\":\"2.1-2.3 Core Architecture\",\"link\":\"/modules/m2-architecture#lesson-21-the-four-pillars\"},{\"text\":\"2.4-2.6 Skills & Workspace\",\"link\":\"/modules/m2-architecture#lesson-23b-skills-system-deep-dive\"},{\"text\":\"2.7-2.9 Advanced Patterns\",\"link\":\"/modules/m2-architecture#lesson-24-context-window-management\"},{\"text\":\"Labs 2.10-2.11\",\"link\":\"/labs/l2-multi-tool\"}]},{\"text\":\"Module 3: Safety & Security\",\"link\":\"/modules/m3-safety\",\"collapsed\":true,\"items\":[{\"text\":\"3.1-3.2 Bash & Ladder\",\"link\":\"/modules/m3-safety#lesson-31-why-bash-is-the-single-point-of-failure\"},{\"text\":\"3.3-3.5 Hooks & Control\",\"link\":\"/modules/m3-safety#lesson-33-the-l3-marque-break\"},{\"text\":\"3.6-3.7 Verifier & Stacking\",\"link\":\"/modules/m3-safety#lesson-36-the-verifier-pattern\"},{\"text\":\"Labs 3.8-3.9\",\"link\":\"/labs/l3-whitelist-hook\"}]},{\"text\":\"Module 4: Orchestration\",\"link\":\"/modules/m4-orchestration\",\"collapsed\":true,\"items\":[{\"text\":\"4.1-4.4 Patterns\",\"link\":\"/modules/m4-orchestration#lesson-41-why-one-agent-is-not-enough\"},{\"text\":\"4.5-4.9 Teams & Comms\",\"link\":\"/modules/m4-orchestration#lesson-43-depth-2-delegation\"},{\"text\":\"4.10-4.11 Case Studies\",\"link\":\"/modules/m4-orchestration#lesson-410-the-ceo-board-system\"},{\"text\":\"Labs 4.12-4.13\",\"link\":\"/labs/l4-agent-chain\"}]},{\"text\":\"Module 5: Production\",\"link\":\"/modules/m5-production\",\"collapsed\":true,\"items\":[{\"text\":\"5.1-5.4 CI/CD & Stack\",\"link\":\"/modules/m5-production#lesson-51-what-production-means-for-agents\"},{\"text\":\"5.5-5.8 Deploy & Monitor\",\"link\":\"/modules/m5-production#lesson-53-shadow-deployments\"},{\"text\":\"Labs 5.9-5.10\",\"link\":\"/labs/l5-observability\"}]},{\"text\":\"Module 6: Economics\",\"link\":\"/modules/m6-economics\",\"collapsed\":true,\"items\":[{\"text\":\"6.0-6.2 Pricing\",\"link\":\"/modules/m6-economics#lesson-60-the-compute-advantage-equation\"},{\"text\":\"6.3-6.5 Eval Metrics\",\"link\":\"/modules/m6-economics#lesson-63-cost-per-session-math\"},{\"text\":\"6.6-6.7 Testing\",\"link\":\"/modules/m6-economics#lesson-66-ab-testing-agents\"},{\"text\":\"Labs 6.8-6.9\",\"link\":\"/labs/l6-eval-harness\"}]},{\"text\":\"Module 7: Advanced\",\"link\":\"/modules/m7-advanced\",\"collapsed\":true,\"items\":[{\"text\":\"7.1-7.3 Autoresearch\",\"link\":\"/modules/m7-advanced#lesson-71-autoresearch\"},{\"text\":\"7.4-7.6 Meta & Beyond\",\"link\":\"/modules/m7-advanced#lesson-73-meta-agents\"},{\"text\":\"Labs 7.7-7.8\",\"link\":\"/labs/l7-autoresearch\"}]},{\"text\":\"Module 8: Capstone\",\"link\":\"/modules/m8-capstone\",\"collapsed\":true,\"items\":[{\"text\":\"Project Options\",\"link\":\"/modules/m8-capstone#project-options\"},{\"text\":\"Phases\",\"link\":\"/modules/m8-capstone#capstone-phases\"},{\"text\":\"Rubric\",\"link\":\"/modules/m8-capstone#grading-rubric\"}]}],\"/labs/\":[{\"text\":\"All Labs\",\"link\":\"/labs/l1-first-agent\"},{\"text\":\"L1: First Agent\",\"link\":\"/labs/l1-first-agent\"},{\"text\":\"L2a: Multi-Tool Agent\",\"link\":\"/labs/l2-multi-tool\"},{\"text\":\"L2b: Context-Aware Agent\",\"link\":\"/labs/l2-context\"},{\"text\":\"L3a: Whitelist Hook\",\"link\":\"/labs/l3-whitelist-hook\"},{\"text\":\"L3b: Verifier Agent\",\"link\":\"/labs/l3-verifier\"},{\"text\":\"L4a: Agent Chain\",\"link\":\"/labs/l4-agent-chain\"},{\"text\":\"L4b: Multi-Team Config\",\"link\":\"/labs/l4-multi-team\"},{\"text\":\"L5a: Observability\",\"link\":\"/labs/l5-observability\"},{\"text\":\"L5b: CI/CD Pipeline\",\"link\":\"/labs/l5-cicd\"},{\"text\":\"L6a: Eval Harness\",\"link\":\"/labs/l6-eval-harness\"},{\"text\":\"L6b: Cost Optimization\",\"link\":\"/labs/l6-cost-optimization\"},{\"text\":\"L7a: Autoresearch\",\"link\":\"/labs/l7-autoresearch\"},{\"text\":\"L7b: Meta-Agent\",\"link\":\"/labs/l7-meta-agent\"}]},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/Artale/agentic-engineering\"}],\"footer\":{\"message\":\"FDSA Agency — Agentic Engineering Course. Part of the fdsa.ai orchestration platform.\",\"copyright\":\"Copyright 2026\"},\"search\":{\"provider\":\"local\"}},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":true}");</script>
</body>
</html>