agentic-ai-engineering/site/.vitepress/dist/modules/tool-reference.html

102 lines
68 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>Agent CLI Reference: 5-Tool Comparison | Agentic Engineering the Hard Way</title>
<meta name="description" content="Build every component from scratch. 65 lessons, 13 labs, 20 skill kits. No black boxes.">
<meta name="generator" content="VitePress v1.6.4">
<link rel="preload stylesheet" href="/assets/style.BTFcg4Zk.css" as="style">
<link rel="preload stylesheet" href="/vp-icons.css" as="style">
<script type="module" src="/assets/app.kY7nrzK6.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.BIfQbfNX.js">
<link rel="modulepreload" href="/assets/chunks/framework.BPKcPtvA.js">
<link rel="modulepreload" href="/assets/modules_tool-reference.md.B40mlgZJ.lean.js">
<link rel="icon" href="/favicon.svg">
<meta name="theme-color" content="#0f0f0f">
<meta property="og:title" content="Agentic Engineering the Hard Way">
<meta property="og:description" content="65 lessons, 13 labs, 20 skill kits. Build production-grade AI agent systems from scratch. No black boxes.">
<meta property="og:image" content="/og-image.svg">
<meta name="twitter:card" content="summary_large_image">
<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")||"auto",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="fdsa-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 active" href="/modules/m1-foundations" tabindex="0" data-v-afb2845e data-v-815115f5><!--[--><span data-v-815115f5>Course</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" 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="false" 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="http://185.239.209.216:3001/artale/agentic-engineering-course" 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="false" 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="http://185.239.209.216:3001/artale/agentic-engineering-course" 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 collapsible collapsed is-link" data-v-51288d80 data-v-0009425e><div class="item" tabindex="0" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/modules/m1-foundations" data-v-0009425e><!--[--><h2 class="text" data-v-0009425e>Module 1: Foundations</h2><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-0009425e><span class="vpi-chevron-right caret-icon" data-v-0009425e></span></div></div><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="/modules/m1-foundations#lesson-11-what-makes-an-agent" data-v-0009425e><!--[--><p class="text" data-v-0009425e>1.1 What Makes an 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="/modules/m1-foundations#lesson-12-the-harness-vs-the-model" data-v-0009425e><!--[--><p class="text" data-v-0009425e>1.2 Harness vs The Model</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="/modules/m1-foundations#lesson-13-decision-framework" data-v-0009425e><!--[--><p class="text" data-v-0009425e>1.3 Decision Framework</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="/modules/m1-foundations#lesson-13a-the-repository-is-the-spec" data-v-0009425e><!--[--><p class="text" data-v-0009425e>1.4 Repository IS the Spec</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="/modules/m1-foundations#lesson-14-the-agent-loop" data-v-0009425e><!--[--><p class="text" data-v-0009425e>1.5 The Agent Loop</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="/modules/m1-foundations#lesson-15-tool-calling-deep-dive" data-v-0009425e><!--[--><p class="text" data-v-0009425e>1.6 Tool Calling</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="/modules/m1-foundations#lesson-16-vibe-coding-vs-agentic-engineering" data-v-0009425e><!--[--><p class="text" data-v-0009425e>1.7 Vibe Coding vs Engineering</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="/modules/m1-foundations#lesson-17-do-you-trust-your-agents" data-v-0009425e><!--[--><p class="text" data-v-0009425e>1.8 Do You Trust Your Agents?</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>Lab 1.9: First Agent</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-51288d80><section class="VPSidebarItem level-0 collapsible collapsed is-link" data-v-51288d80 data-v-0009425e><div class="item" tabindex="0" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/modules/m2-architecture" data-v-0009425e><!--[--><h2 class="text" data-v-0009425e>Module 2: Architecture</h2><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-0009425e><span class="vpi-chevron-right caret-icon" data-v-0009425e></span></div></div><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="/modules/m2-architecture#lesson-21-the-four-pillars" data-v-0009425e><!--[--><p class="text" data-v-0009425e>2.1-2.3 Core Architecture</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="/modules/m2-architecture#lesson-23b-skills-system-deep-dive" data-v-0009425e><!--[--><p class="text" data-v-0009425e>2.4-2.6 Skills & Workspace</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="/modules/m2-architecture#lesson-24-context-window-management" data-v-0009425e><!--[--><p class="text" data-v-0009425e>2.7-2.9 Advanced Patterns</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>Labs 2.10-2.11</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-51288d80><section class="VPSidebarItem level-0 collapsible collapsed is-link" data-v-51288d80 data-v-0009425e><div class="item" tabindex="0" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/modules/m3-safety" data-v-0009425e><!--[--><h2 class="text" data-v-0009425e>Module 3: Safety & Security</h2><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-0009425e><span class="vpi-chevron-right caret-icon" data-v-0009425e></span></div></div><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="/modules/m3-safety#lesson-31-why-bash-is-the-single-point-of-failure" data-v-0009425e><!--[--><p class="text" data-v-0009425e>3.1-3.2 Bash & Ladder</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="/modules/m3-safety#lesson-33-the-l3-marque-break" data-v-0009425e><!--[--><p class="text" data-v-0009425e>3.3-3.5 Hooks & Control</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="/modules/m3-safety#lesson-36-the-verifier-pattern" data-v-0009425e><!--[--><p class="text" data-v-0009425e>3.6-3.7 Verifier & Stacking</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>Labs 3.8-3.9</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-51288d80><section class="VPSidebarItem level-0 collapsible collapsed is-link" data-v-51288d80 data-v-0009425e><div class="item" tabindex="0" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/modules/m4-orchestration" data-v-0009425e><!--[--><h2 class="text" data-v-0009425e>Module 4: Orchestration</h2><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-0009425e><span class="vpi-chevron-right caret-icon" data-v-0009425e></span></div></div><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="/modules/m4-orchestration#lesson-41-why-one-agent-is-not-enough" data-v-0009425e><!--[--><p class="text" data-v-0009425e>4.1-4.4 Patterns</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="/modules/m4-orchestration#lesson-43-depth-2-delegation" data-v-0009425e><!--[--><p class="text" data-v-0009425e>4.5-4.9 Teams & Comms</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="/modules/m4-orchestration#lesson-410-the-ceo-board-system" data-v-0009425e><!--[--><p class="text" data-v-0009425e>4.10-4.11 Case Studies</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>Labs 4.12-4.13</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-51288d80><section class="VPSidebarItem level-0 collapsible collapsed is-link" data-v-51288d80 data-v-0009425e><div class="item" tabindex="0" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/modules/m5-production" data-v-0009425e><!--[--><h2 class="text" data-v-0009425e>Module 5: Production</h2><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-0009425e><span class="vpi-chevron-right caret-icon" data-v-0009425e></span></div></div><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="/modules/m5-production#lesson-51-what-production-means-for-agents" data-v-0009425e><!--[--><p class="text" data-v-0009425e>5.1-5.4 CI/CD & Stack</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="/modules/m5-production#lesson-53-shadow-deployments" data-v-0009425e><!--[--><p class="text" data-v-0009425e>5.5-5.8 Deploy & Monitor</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>Labs 5.9-5.10</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-51288d80><section class="VPSidebarItem level-0 collapsible collapsed is-link" data-v-51288d80 data-v-0009425e><div class="item" tabindex="0" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/modules/m6-economics" data-v-0009425e><!--[--><h2 class="text" data-v-0009425e>Module 6: Economics</h2><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-0009425e><span class="vpi-chevron-right caret-icon" data-v-0009425e></span></div></div><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="/modules/m6-economics#lesson-60-the-compute-advantage-equation" data-v-0009425e><!--[--><p class="text" data-v-0009425e>6.0-6.2 Pricing</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="/modules/m6-economics#lesson-63-cost-per-session-math" data-v-0009425e><!--[--><p class="text" data-v-0009425e>6.3-6.5 Eval Metrics</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="/modules/m6-economics#lesson-66-ab-testing-agents" data-v-0009425e><!--[--><p class="text" data-v-0009425e>6.6-6.7 Testing</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>Labs 6.8-6.9</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-51288d80><section class="VPSidebarItem level-0 collapsible collapsed is-link" data-v-51288d80 data-v-0009425e><div class="item" tabindex="0" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/modules/m7-advanced" data-v-0009425e><!--[--><h2 class="text" data-v-0009425e>Module 7: Advanced</h2><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-0009425e><span class="vpi-chevron-right caret-icon" data-v-0009425e></span></div></div><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="/modules/m7-advanced#lesson-71-autoresearch" data-v-0009425e><!--[--><p class="text" data-v-0009425e>7.1-7.3 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="/modules/m7-advanced#lesson-73-meta-agents" data-v-0009425e><!--[--><p class="text" data-v-0009425e>7.4-7.6 Meta & Beyond</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>Labs 7.7-7.8</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-51288d80><section class="VPSidebarItem level-0 collapsible collapsed is-link" data-v-51288d80 data-v-0009425e><div class="item" tabindex="0" data-v-0009425e><div class="indicator" data-v-0009425e></div><a class="VPLink link link" href="/modules/m8-capstone" data-v-0009425e><!--[--><h2 class="text" data-v-0009425e>Module 8: Capstone</h2><!--]--></a><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-0009425e><span class="vpi-chevron-right caret-icon" data-v-0009425e></span></div></div><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="/modules/m8-capstone#project-options" data-v-0009425e><!--[--><p class="text" data-v-0009425e>Project Options</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="/modules/m8-capstone#capstone-phases" data-v-0009425e><!--[--><p class="text" data-v-0009425e>Phases</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="/modules/m8-capstone#grading-rubric" data-v-0009425e><!--[--><p class="text" data-v-0009425e>Rubric</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 _modules_tool-reference" data-v-e6f2a212><div><h1 id="agent-cli-reference-5-tool-comparison" tabindex="-1">Agent CLI Reference: 5-Tool Comparison <a class="header-anchor" href="#agent-cli-reference-5-tool-comparison" aria-label="Permalink to &quot;Agent CLI Reference: 5-Tool Comparison&quot;"></a></h1><p>A side-by-side reference for Claude Code, Pi Coding Agent, OpenCode, Hermes Agent, and OpenClaw.</p><hr><h2 id="_1-claude-code-anthropic" tabindex="-1">1. Claude Code (Anthropic) <a class="header-anchor" href="#_1-claude-code-anthropic" aria-label="Permalink to &quot;1. Claude Code (Anthropic)&quot;"></a></h2><p><strong>Role</strong>: Primary generalist coding agent. Best all-around tool.<br><strong>License</strong>: Proprietary (free tier + Pro subscription)<br><strong>Runtime</strong>: Node.js<br><strong>Config</strong>: <code>CLAUDE.md</code> in project root</p><h3 id="key-capabilities" tabindex="-1">Key Capabilities <a class="header-anchor" href="#key-capabilities" aria-label="Permalink to &quot;Key Capabilities&quot;"></a></h3><table tabindex="0"><thead><tr><th>Feature</th><th>How To</th><th>Course Reference</th></tr></thead><tbody><tr><td>Multi-agent teams</td><td><code>claude --teammate-mode tmux</code></td><td>M4 — teammate-mode spawns agents in split panes</td></tr><tr><td>Headless execution</td><td><code>claude -p &quot;prompt&quot; --print</code></td><td>M5 CI/CD pipeline</td></tr><tr><td>Constrained tools</td><td><code>--allowedTools &quot;Read Write Edit&quot;</code></td><td>M3 security (L4 whitelist pattern)</td></tr><tr><td>Hooks system</td><td><code>.claude/hooks/*.py</code></td><td>M3 hook architecture (13 lifecycle events)</td></tr><tr><td>Subdirectory rules</td><td><code>frontend/CLAUDE.md</code>, <code>backend/CLAUDE.md</code></td><td>M2 skills deep dive</td></tr><tr><td>Stop hook self-improve</td><td>PostToolUse → headless claude session</td><td>M3, also ClaudeFAST pattern</td></tr></tbody></table><h3 id="boilerplate-setup" tabindex="-1">Boilerplate Setup <a class="header-anchor" href="#boilerplate-setup" aria-label="Permalink to &quot;Boilerplate Setup&quot;"></a></h3><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:#6A737D;--shiki-dark:#6A737D;"># Project initialization</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">claude</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --init</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Launch with teammate mode</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">claude</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --teammate-mode</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> tmux</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Headless CI mode</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">claude</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -p</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;Implement the feature described in spec.md&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --allowedTools</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;Read Write Edit Bash&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --print</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># With custom hooks directory</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">claude</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --hooks</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> .claude/hooks/</span></span></code></pre></div><h3 id="hook-lifecycle-13-events" tabindex="-1">Hook Lifecycle (13 events) <a class="header-anchor" href="#hook-lifecycle-13-events" aria-label="Permalink to &quot;Hook Lifecycle (13 events)&quot;"></a></h3><table tabindex="0"><thead><tr><th>Phase</th><th>Events</th></tr></thead><tbody><tr><td>Session</td><td>Setup, SessionStart, SessionEnd</td></tr><tr><td>Main Loop</td><td>UserPromptSubmit, PreToolUse, PermissionRequest, PostToolUse, PostToolUseFailure, Stop, Notification</td></tr><tr><td>Subagents</td><td>SubagentStart, SubagentStop</td></tr><tr><td>Maintenance</td><td>PreCompact</td></tr></tbody></table><hr><h2 id="_2-pi-coding-agent-pi-dev" tabindex="-1">2. Pi Coding Agent (pi.dev) <a class="header-anchor" href="#_2-pi-coding-agent-pi-dev" aria-label="Permalink to &quot;2. Pi Coding Agent (pi.dev)&quot;"></a></h2><p><strong>Role</strong>: Customizable agent harness. Full control over every aspect.<br><strong>License</strong>: Open source (MIT)<br><strong>Runtime</strong>: Node.js (TypeScript SDK)<br><strong>Config</strong>: <code>.pi/settings.json</code>, <code>.pi/agents/*.md</code></p><h3 id="key-capabilities-1" tabindex="-1">Key Capabilities <a class="header-anchor" href="#key-capabilities-1" aria-label="Permalink to &quot;Key Capabilities&quot;"></a></h3><table tabindex="0"><thead><tr><th>Feature</th><th>How To</th><th>Course Reference</th></tr></thead><tbody><tr><td>Extensions</td><td><code>pi -e extensions/&lt;name&gt;.ts</code></td><td>M3 — damage-control, tilldone</td></tr><tr><td>RPC mode</td><td><code>pi --mode rpc</code></td><td>M5 — programmatic control (26+ commands)</td></tr><tr><td>Agent teams</td><td><code>agent-team</code> extension + <code>teams.yaml</code></td><td>M4 dispatcher pattern</td></tr><tr><td>Agent chains</td><td><code>agent-chain</code> extension + <code>agent-chain.yaml</code></td><td>M4 pipeline pattern ($INPUT/$ORIGINAL)</td></tr><tr><td>P2P communication</td><td><code>coms</code> (Unix sockets) / <code>coms-net</code> (HTTP/SSE)</td><td>M4 flat P2P pattern</td></tr><tr><td>Mental models</td><td><code>.pi/multi-team/expertise/*.yaml</code></td><td>M4 agent memory, self-improve commands</td></tr><tr><td>Damage control</td><td><code>damage-control.ts</code> + <code>damage-control-rules.yaml</code></td><td>M3 three access levels</td></tr><tr><td>Skills system</td><td><code>.pi/skills/*/SKILL.md</code></td><td>M2 composable skills</td></tr></tbody></table><h3 id="boilerplate-setup-1" tabindex="-1">Boilerplate Setup <a class="header-anchor" href="#boilerplate-setup-1" aria-label="Permalink to &quot;Boilerplate Setup&quot;"></a></h3><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:#6A737D;--shiki-dark:#6A737D;"># Launch with extensions</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">pi</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -e</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> extensions/damage-control.ts</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -e</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> extensions/tilldone.ts</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -e</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> extensions/minimal.ts</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Launch with multiple extensions (stackable)</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">pi</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -e</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> extensions/purpose-gate.ts</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -e</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> extensions/tool-counter.ts</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># RPC mode (programmatic control from any language)</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">pi</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --mode</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> rpc</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Pi-to-Pi peer communication (same machine)</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">just</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> local-coms</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --name</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> planner</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --purpose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;Plans the work&quot;</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">just</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> local-coms</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --name</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> coder</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --purpose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;Writes the code&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Pi-to-Pi networked (across machines)</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">just</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> coms-net-server</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # hub</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">just</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> coms</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --name</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> dev</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # client 1</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">just</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> coms2</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --name</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> prod</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> # client 2</span></span></code></pre></div><h3 id="extension-catalog-16-total" tabindex="-1">Extension Catalog (16 total) <a class="header-anchor" href="#extension-catalog-16-total" aria-label="Permalink to &quot;Extension Catalog (16 total)&quot;"></a></h3><table tabindex="0"><thead><tr><th>Category</th><th>Extensions</th></tr></thead><tbody><tr><td><strong>UI</strong></td><td>pure-focus, minimal, theme-cycler, session-replay</td></tr><tr><td><strong>Monitoring</strong></td><td>tool-counter, tool-counter-widget</td></tr><tr><td><strong>Task</strong></td><td>tilldone, purpose-gate</td></tr><tr><td><strong>Multi-Agent</strong></td><td>subagent-widget, agent-team, agent-chain</td></tr><tr><td><strong>Safety</strong></td><td>damage-control, damage-control-continue</td></tr><tr><td><strong>P2P</strong></td><td>coms, coms-net</td></tr><tr><td><strong>Cross-Tool</strong></td><td>cross-agent, system-select</td></tr><tr><td><strong>Meta</strong></td><td>pi-pi</td></tr></tbody></table><h3 id="pi-agent-rust-port-jeff-emanuel-1-024★" tabindex="-1">Pi Agent Rust Port (Jeff Emanuel, 1,024★) <a class="header-anchor" href="#pi-agent-rust-port-jeff-emanuel-1-024★" aria-label="Permalink to &quot;Pi Agent Rust Port (Jeff Emanuel, 1,024★)&quot;"></a></h3><p>A Rust reimplementation of the Pi agent with zero unsafe code.</p><table tabindex="0"><thead><tr><th>Feature</th><th>Pi (TypeScript)</th><th>Pi Agent Rust</th></tr></thead><tbody><tr><td>Extensions</td><td>Full (16+)</td><td>Compatible</td></tr><tr><td>RPC mode</td><td>Yes</td><td>Yes</td></tr><tr><td>Performance</td><td>Baseline</td><td>~2x faster</td></tr><tr><td>Binary size</td><td>~35MB</td><td>~8MB</td></tr><tr><td>Memory safety</td><td>Node.js GC</td><td>Zero unsafe Rust</td></tr></tbody></table><h3 id="the-4-dimensions-of-control-pi-s-strength" tabindex="-1">The 4 Dimensions of Control (Pi&#39;s strength) <a class="header-anchor" href="#the-4-dimensions-of-control-pi-s-strength" aria-label="Permalink to &quot;The 4 Dimensions of Control (Pi&#39;s strength)&quot;"></a></h3><table tabindex="0"><thead><tr><th>Dimension</th><th>Pi&#39;s Advantage</th></tr></thead><tbody><tr><td><strong>Context</strong></td><td>Full control over what the agent sees via extensions</td></tr><tr><td><strong>Model</strong></td><td>Any provider, any model — pluggable</td></tr><tr><td><strong>Prompt</strong></td><td>Skills, system prompts, agent .md files — fully customizable</td></tr><tr><td><strong>Tools</strong></td><td>Extensions can add, remove, or override any tool</td></tr></tbody></table><hr><h2 id="_3-opencode-opencode-ai" tabindex="-1">3. OpenCode (opencode.ai) <a class="header-anchor" href="#_3-opencode-opencode-ai" aria-label="Permalink to &quot;3. OpenCode (opencode.ai)&quot;"></a></h2><p><strong>Role</strong>: Open-source Claude Code alternative. MIT license.<br><strong>License</strong>: MIT (open source)<br><strong>Runtime</strong>: Node.js (npm global package)<br><strong>Config</strong>: Shares <code>~/.grok/config.toml</code> with Claude Code</p><h3 id="key-capabilities-2" tabindex="-1">Key Capabilities <a class="header-anchor" href="#key-capabilities-2" aria-label="Permalink to &quot;Key Capabilities&quot;"></a></h3><table tabindex="0"><thead><tr><th>Feature</th><th>How To</th><th>Course Reference</th></tr></thead><tbody><tr><td>Headless commands</td><td><code>opencode run &quot;prompt&quot;</code></td><td>M5 CI/CD alternative to Claude Code CLI</td></tr><tr><td>Model selection</td><td><code>opencode --model opencode-go/deepseek-v4-flash</code></td><td>M6 cascade routing</td></tr><tr><td>Proxy support</td><td>Routes through <code>localhost:18901/v1</code></td><td>M6 cost optimization</td></tr><tr><td>Shared config</td><td>Uses same <code>~/.grok/config.toml</code></td><td>M5 production stack — dual tool setup</td></tr><tr><td>Go models</td><td>12 Go-optimized models available</td><td>M6 economics (Go models are cheaper per token)</td></tr></tbody></table><h3 id="available-go-models-through-proxy" tabindex="-1">Available Go Models (through proxy) <a class="header-anchor" href="#available-go-models-through-proxy" aria-label="Permalink to &quot;Available Go Models (through proxy)&quot;"></a></h3><table tabindex="0"><thead><tr><th>Model ID</th><th>Cost Tier</th><th>Best For</th></tr></thead><tbody><tr><td><code>opencode-go/deepseek-v4-flash</code></td><td>Budget</td><td>General agentic tasks ($10/mo flat)</td></tr><tr><td><code>opencode-go/deepseek-v4-pro</code></td><td>Mid</td><td>Complex reasoning</td></tr><tr><td><code>opencode-go/kimi-k2.6</code></td><td>Mid</td><td>Long context</td></tr><tr><td><code>opencode-go/qwen3.6-plus</code></td><td>Budget</td><td>Structured tasks</td></tr><tr><td><code>opencode-go/minimax-m2.7</code></td><td>Budget</td><td>Fast responses</td></tr></tbody></table><h3 id="boilerplate-setup-2" tabindex="-1">Boilerplate Setup <a class="header-anchor" href="#boilerplate-setup-2" aria-label="Permalink to &quot;Boilerplate Setup&quot;"></a></h3><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:#6A737D;--shiki-dark:#6A737D;"># Headless task execution</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">opencode</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> run</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;Refactor the auth module to use JWT tokens&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># With specific model</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">opencode</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --model</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> opencode-go/deepseek-v4-flash</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> run</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;Write unit tests for the API&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># With custom config</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">opencode</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --config</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ~/.grok/config.toml</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> run</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;Deploy to staging&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># List available models</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">opencode</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> models</span></span></code></pre></div><h3 id="when-to-use-opencode-instead-of-claude-code" tabindex="-1">When to Use OpenCode Instead of Claude Code <a class="header-anchor" href="#when-to-use-opencode-instead-of-claude-code" aria-label="Permalink to &quot;When to Use OpenCode Instead of Claude Code&quot;"></a></h3><table tabindex="0"><thead><tr><th>Scenario</th><th>Choose</th></tr></thead><tbody><tr><td>Need open-source license</td><td>OpenCode</td></tr><tr><td>Budget-constrained</td><td>OpenCode (Go models at $10/mo flat)</td></tr><tr><td>CI/CD pipelines</td><td>OpenCode <code>run</code> command</td></tr><tr><td>Primary development</td><td>Claude Code (better tool calling)</td></tr><tr><td>Need hooks system</td><td>Claude Code (13 events vs OpenCode&#39;s limited hooks)</td></tr><tr><td>Heterogeneous stack</td><td>Both (OpenCode as backup/alternative model)</td></tr></tbody></table><hr><h2 id="_4-hermes-agent-some-engineering-inc" tabindex="-1">4. Hermes Agent (Some Engineering Inc.) <a class="header-anchor" href="#_4-hermes-agent-some-engineering-inc" aria-label="Permalink to &quot;4. Hermes Agent (Some Engineering Inc.)&quot;"></a></h2><p><strong>Role</strong>: TypeScript-native, MCP-first agent for structured workflows.<br><strong>License</strong>: Open source<br><strong>Runtime</strong>: Node.js (TypeScript)<br><strong>Design philosophy</strong>: MCP-native architecture, structured output first</p><h3 id="key-capabilities-3" tabindex="-1">Key Capabilities <a class="header-anchor" href="#key-capabilities-3" aria-label="Permalink to &quot;Key Capabilities&quot;"></a></h3><table tabindex="0"><thead><tr><th>Feature</th><th>How To</th><th>Course Reference</th></tr></thead><tbody><tr><td>MCP-native tools</td><td>Built-in MCP client</td><td>M2 Beyond MCP channels</td></tr><tr><td>Structured output</td><td>TypeScript types enforced</td><td>M2 context management</td></tr><tr><td>Tool-use workflows</td><td>Designed for function-calling chains</td><td>M2 agent loop variants</td></tr><tr><td>OpenClaw ecosystem</td><td>Integrates with OpenClaw agents</td><td>M4 multi-agent orchestration</td></tr></tbody></table><h3 id="boilerplate-setup-3" tabindex="-1">Boilerplate Setup <a class="header-anchor" href="#boilerplate-setup-3" aria-label="Permalink to &quot;Boilerplate Setup&quot;"></a></h3><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:#6A737D;--shiki-dark:#6A737D;"># Run with MCP server</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">hermes</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --mcp-servers</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ./mcp-config.json</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Execute workflow</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">hermes</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> run</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> workflow.ts</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># With custom tools</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">hermes</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --tools-dir</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ./tools/</span></span></code></pre></div><h3 id="when-to-use-hermes" tabindex="-1">When to Use Hermes <a class="header-anchor" href="#when-to-use-hermes" aria-label="Permalink to &quot;When to Use Hermes&quot;"></a></h3><ul><li>Building TypeScript-native agent pipelines</li><li>MCP-first architecture (tools as MCP servers)</li><li>Tight integration with OpenClaw ecosystem</li><li>Structured output enforcement (TypeScript types)</li></ul><hr><h2 id="_5-openclaw" tabindex="-1">5. OpenClaw <a class="header-anchor" href="#_5-openclaw" aria-label="Permalink to &quot;5. OpenClaw&quot;"></a></h2><p><strong>Role</strong>: Always-on agent employee. Heartbeat-driven, autonomous execution.<br><strong>License</strong>: Open source<br><strong>Runtime</strong>: Node.js daemon<br><strong>Design philosophy</strong>: &quot;If it can receive a heartbeat, it&#39;s hired.&quot;</p><h3 id="key-capabilities-4" tabindex="-1">Key Capabilities <a class="header-anchor" href="#key-capabilities-4" aria-label="Permalink to &quot;Key Capabilities&quot;"></a></h3><table tabindex="0"><thead><tr><th>Feature</th><th>How To</th><th>Course Reference</th></tr></thead><tbody><tr><td>Heartbeat model</td><td>Wakes on schedule, works, sleeps</td><td>M7 always-on agents</td></tr><tr><td>One-shot execution</td><td><code>claw do &quot;task&quot;</code></td><td>M5 production task dispatch</td></tr><tr><td>Device-key pairing</td><td>Auth via device key + invite</td><td>M5 deployment modes</td></tr><tr><td>Paperclip-native</td><td>Primary agent for Paperclip orchestration</td><td>M7 framework comparison</td></tr><tr><td>tmux integration</td><td>Can run inside tmux sessions</td><td>M5 production stack</td></tr></tbody></table><h3 id="boilerplate-setup-4" tabindex="-1">Boilerplate Setup <a class="header-anchor" href="#boilerplate-setup-4" aria-label="Permalink to &quot;Boilerplate Setup&quot;"></a></h3><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:#6A737D;--shiki-dark:#6A737D;"># Start as daemon (always-on employee)</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">claw</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> start</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --daemon</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># One-shot task</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">claw</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> do</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;Review the latest PR and leave comments&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Schedule recurring task</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">claw</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> schedule</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --cron</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;0 6 * * 1&quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --task</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;Generate weekly report&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Check status</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">claw</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> status</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Stop daemon</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">claw</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> stop</span></span></code></pre></div><h3 id="heartbeat-execution-model" tabindex="-1">Heartbeat Execution Model <a class="header-anchor" href="#heartbeat-execution-model" aria-label="Permalink to &quot;Heartbeat Execution Model&quot;"></a></h3><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>Timer fires → Check for queued work → Wake agent → Execute → Report results → Sleep</span></span></code></pre></div><p>No continuous running. The agent wakes, works, and goes back to sleep. This is the most cost-effective model for scheduled/recurring work.</p><hr><h2 id="comparison-matrix" tabindex="-1">Comparison Matrix <a class="header-anchor" href="#comparison-matrix" aria-label="Permalink to &quot;Comparison Matrix&quot;"></a></h2><table tabindex="0"><thead><tr><th>Feature</th><th style="text-align:center;">Claude Code</th><th style="text-align:center;">Pi Agent</th><th style="text-align:center;">OpenCode</th><th style="text-align:center;">Hermes</th><th style="text-align:center;">OpenClaw</th></tr></thead><tbody><tr><td><strong>License</strong></td><td style="text-align:center;">Proprietary</td><td style="text-align:center;">MIT</td><td style="text-align:center;">MIT</td><td style="text-align:center;">Open</td><td style="text-align:center;">Open</td></tr><tr><td><strong>Cost</strong></td><td style="text-align:center;">Pro sub</td><td style="text-align:center;">Free</td><td style="text-align:center;">Free</td><td style="text-align:center;">Free</td><td style="text-align:center;">Free</td></tr><tr><td><strong>Hooks</strong></td><td style="text-align:center;">13 events</td><td style="text-align:center;">Extension events</td><td style="text-align:center;">Limited</td><td style="text-align:center;">MCP events</td><td style="text-align:center;">None</td></tr><tr><td><strong>Multi-agent</strong></td><td style="text-align:center;">teammate-mode</td><td style="text-align:center;">Extensions</td><td style="text-align:center;">No</td><td style="text-align:center;">Chains</td><td style="text-align:center;">Heartbeats</td></tr><tr><td><strong>P2P coms</strong></td><td style="text-align:center;">No</td><td style="text-align:center;">coms/coms-net</td><td style="text-align:center;">No</td><td style="text-align:center;">No</td><td style="text-align:center;">No</td></tr><tr><td><strong>Headless mode</strong></td><td style="text-align:center;"><code>--print</code></td><td style="text-align:center;">RPC mode</td><td style="text-align:center;"><code>run</code></td><td style="text-align:center;">Yes</td><td style="text-align:center;">daemon</td></tr><tr><td><strong>MCP support</strong></td><td style="text-align:center;">Built-in</td><td style="text-align:center;">Via extensions</td><td style="text-align:center;">Via proxy</td><td style="text-align:center;">Native</td><td style="text-align:center;">Via Paperclip</td></tr><tr><td><strong>Best for</strong></td><td style="text-align:center;">Generalist coding</td><td style="text-align:center;">Custom harness</td><td style="text-align:center;">OSS alternative</td><td style="text-align:center;">TS pipelines</td><td style="text-align:center;">Always-on tasks</td></tr><tr><td><strong>Course module</strong></td><td style="text-align:center;">M3, M4, M5</td><td style="text-align:center;">M3, M4, M5</td><td style="text-align:center;">M5, M6</td><td style="text-align:center;">M5</td><td style="text-align:center;">M5, M7</td></tr></tbody></table><hr><h2 id="quick-selection-guide" tabindex="-1">Quick Selection Guide <a class="header-anchor" href="#quick-selection-guide" aria-label="Permalink to &quot;Quick Selection Guide&quot;"></a></h2><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>What are you building?</span></span>
<span class="line"><span>├── A feature? → Claude Code</span></span>
<span class="line"><span>├── A custom workflow? → Pi Agent</span></span>
<span class="line"><span>├── An open-source project? → OpenCode</span></span>
<span class="line"><span>├── A TypeScript pipeline? → Hermes</span></span>
<span class="line"><span>└── A recurring task? → OpenClaw</span></span>
<span class="line"><span></span></span>
<span class="line"><span>Need multiple?</span></span>
<span class="line"><span>├── Production system → All 5 (see REFERENCE-STACK.md)</span></span>
<span class="line"><span>├── Budget constrained → OpenCode + Go models</span></span>
<span class="line"><span>├── Maximum control → Pi Agent + extensions</span></span>
<span class="line"><span>└── Enterprise rollout → Claude Code + Agent Manager</span></span></code></pre></div></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><!----></div><div class="pager" data-v-1bcd8184><a class="VPLink link pager-link next" href="/modules/m1-foundations" data-v-1bcd8184><!--[--><span class="desc" data-v-1bcd8184>Next page</span><span class="title" data-v-1bcd8184>Module 1: Foundations</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></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\":\"qEifz7WE\",\"certificate.md\":\"CqjbFJYQ\",\"checkout.md\":\"Ccj6L__h\",\"checkout_cancel.md\":\"DwL5mulX\",\"checkout_success.md\":\"CYTg6xhL\",\"downloads.md\":\"CEHJXSp0\",\"free-preview.md\":\"C5BtRucn\",\"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\":\"DVowtmf9\",\"modules_m3-safety.md\":\"RiQQ_HWX\",\"modules_m4-orchestration.md\":\"DFLcAKBv\",\"modules_m5-production.md\":\"DTkLIrwQ\",\"modules_m6-economics.md\":\"HihVEOPb\",\"modules_m7-advanced.md\":\"B_jVHqsw\",\"modules_m8-capstone.md\":\"CqV39Gzl\",\"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\":\"Agentic Engineering the Hard Way\",\"description\":\"Build every component from scratch. 65 lessons, 13 labs, 20 skill kits. No black boxes.\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"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\":\"http://185.239.209.216:3001/artale/agentic-engineering-course\"}],\"footer\":{\"message\":\"FDSA Agency — Agentic Engineering Course. Part of the fdsa.ai orchestration platform.\",\"copyright\":\"Copyright 2026\"},\"search\":{\"provider\":\"local\"},\"locales\":{\"root\":{\"label\":\"English\",\"lang\":\"en-US\",\"title\":\"Agentic Engineering the Hard Way\",\"description\":\"Build every component from scratch. 65 lessons, 13 labs, 20 skill kits. No black boxes, no magic SDKs.\"},\"es\":{\"label\":\"Español\",\"lang\":\"es-ES\",\"title\":\"Agentic Engineering the Hard Way\",\"description\":\"Construye cada componente desde cero. 65 lecciones, 13 laboratorios, 20 kits de habilidades.\",\"link\":\"/es/\"},\"pt\":{\"label\":\"Português\",\"lang\":\"pt-BR\",\"title\":\"Agentic Engineering the Hard Way\",\"description\":\"Construa cada componente do zero. 65 lições, 13 laboratórios, 20 kits de habilidades.\",\"link\":\"/pt/\"},\"it\":{\"label\":\"Italiano\",\"lang\":\"it-IT\",\"title\":\"Agentic Engineering the Hard Way\",\"description\":\"Costruisci ogni componente da zero. 65 lezioni, 13 laboratori, 20 kit di abilità.\",\"link\":\"/it/\"},\"ar\":{\"label\":\"العربية\",\"lang\":\"ar-SA\",\"title\":\"هندسة الوكلاء بالطريقة الصعبة\",\"description\":\"بناء كل مكون من الصفر. 65 درسًا، 13 مختبرًا، 20 مجموعة مهارات.\",\"link\":\"/ar/\",\"dir\":\"rtl\"}}},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":true}");</script>
</body>
</html>