<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[AgentsWorkshop]]></title><description><![CDATA[Practical guides on how to build useful AI agents & curate your personal AI stack]]></description><link>https://www.agentsworkshop.ai</link><image><url>https://substackcdn.com/image/fetch/$s_!CKX1!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffbbd53ef-b421-44cc-8bda-03fc552ec88d_850x850.png</url><title>AgentsWorkshop</title><link>https://www.agentsworkshop.ai</link></image><generator>Substack</generator><lastBuildDate>Tue, 12 May 2026 09:56:51 GMT</lastBuildDate><atom:link href="https://www.agentsworkshop.ai/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Andrew]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[agentsworkshop@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[agentsworkshop@substack.com]]></itunes:email><itunes:name><![CDATA[Andrew Altshuler]]></itunes:name></itunes:owner><itunes:author><![CDATA[Andrew Altshuler]]></itunes:author><googleplay:owner><![CDATA[agentsworkshop@substack.com]]></googleplay:owner><googleplay:email><![CDATA[agentsworkshop@substack.com]]></googleplay:email><googleplay:author><![CDATA[Andrew Altshuler]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[nanograph: on-device graphDB for agents [and humans]]]></title><description><![CDATA[The case for local-first, schema-enforced graphs in agentic workflows]]></description><link>https://www.agentsworkshop.ai/p/nanograph-on-device-graphdb-for-agents</link><guid isPermaLink="false">https://www.agentsworkshop.ai/p/nanograph-on-device-graphdb-for-agents</guid><dc:creator><![CDATA[Andrew Altshuler]]></dc:creator><pubDate>Sun, 01 Mar 2026 17:32:09 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/b3fc36cc-7fb4-4caa-82c5-af92a63dede4_1200x630.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I built my own graph database.</p><p><strong>Here is why:</strong></p><p>I love graphs and I use them A LOT!</p><ul><li><p>for agent memory</p></li><li><p>for structuring project context</p></li><li><p>for building compounding knowledge bases</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Ug6q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04a6aa93-6a36-4582-8a9d-56833166a97a_3200x2140.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ug6q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04a6aa93-6a36-4582-8a9d-56833166a97a_3200x2140.png 424w, https://substackcdn.com/image/fetch/$s_!Ug6q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04a6aa93-6a36-4582-8a9d-56833166a97a_3200x2140.png 848w, https://substackcdn.com/image/fetch/$s_!Ug6q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04a6aa93-6a36-4582-8a9d-56833166a97a_3200x2140.png 1272w, https://substackcdn.com/image/fetch/$s_!Ug6q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04a6aa93-6a36-4582-8a9d-56833166a97a_3200x2140.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ug6q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04a6aa93-6a36-4582-8a9d-56833166a97a_3200x2140.png" width="1456" height="974" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/04a6aa93-6a36-4582-8a9d-56833166a97a_3200x2140.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:974,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:455172,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.agentsworkshop.ai/i/189555444?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04a6aa93-6a36-4582-8a9d-56833166a97a_3200x2140.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Ug6q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04a6aa93-6a36-4582-8a9d-56833166a97a_3200x2140.png 424w, https://substackcdn.com/image/fetch/$s_!Ug6q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04a6aa93-6a36-4582-8a9d-56833166a97a_3200x2140.png 848w, https://substackcdn.com/image/fetch/$s_!Ug6q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04a6aa93-6a36-4582-8a9d-56833166a97a_3200x2140.png 1272w, https://substackcdn.com/image/fetch/$s_!Ug6q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04a6aa93-6a36-4582-8a9d-56833166a97a_3200x2140.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Yet old-school graph databases are too heavy for agentic workflows.</strong><br>They are cloud-first monoliths built for enterprise infrastructure:<br>Servers, Docker, slow MCPs, and schema maintenance hell.</p><p><strong><a href="http://nanograph.io/">nanograph</a></strong> started as a question:</p><blockquote><p>What if graphs felt like SQLite/DuckDB - <strong>open, query, done</strong> - but with <strong>types</strong>, <strong>migrations</strong>, and ergonomics built for <strong>agents</strong>?</p></blockquote><p>Quick to tear down and rebuild, safe enough to trust, and simple enough to keep in the repo.</p><p>I could not find a graph database aligned with this vision.<br><strong>So I built it.</strong></p><p><strong>An on-device, embedded, schema-as-code graphDB.</strong></p><p>Now let's unpack this:</p><ul><li><p>Why graph?</p></li><li><p>Why on-device?</p></li><li><p>Why schema-as-code?</p></li></ul><h2>Why graphs?</h2><p><strong>Graphs help agents reason through data.</strong></p><p>Agents are informed walkers.<br>When an agent investigates an issue, it traverses a context graph.<br>Graphs give the agent reasoning structures.</p><p>Now add decision traces to the equation: the explicit HOWs and WHY - workflows, exceptions, reasoning.</p><p>Agent now can:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;fafc0028-cfb3-40a8-972c-02a7a59cd736&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">Solve a problem &#8594; walk the graph &#8594; write a new trace &#8594; graph compounds</code></pre></div><p>New reasoning paths are created - agent becomes even smarter.</p><p>BTW the graph doesn't need to be standalone.<br>It can sit as a semantic layer on top of your data:<br>SQL/NoSQL or a collection of MD files.</p><h2>Why on-device?</h2><p>Coding agents pull us back to fundamentals:<br><strong>Filesystem, CLIs, Markdown, SQLite/DuckDB.</strong></p><p>In PKM, Obsidian is winning, and tools like <strong><a href="https://github.com/tobi/qmd">qmd</a></strong> are getting real traction.</p><p>If everything is on-device, everything is simple.<br>Totally private by architecture, not by policy.<br>And you can use your own tooling even inside heavily regulated enterprise environments.</p><p>Agents want direct, fast, deterministic access to data.<br>They don't want MCP auth or deal with connection errors.</p><h2>Why schema-as-code?</h2><p>Non-enforced schema means garbage accumulation.</p><p><strong>Agents are incredibly creative!</strong><br>Give them a schemaless graph and they will roam free.<br>They'll invent edges like <code>knows</code>, <code>met</code>, <code>connected_to,</code> <code>spoke_with</code> - all meaning the same thing.<br>That creates precedent poisoning.<br>Semantic drift propagates through the reasoning layer.<br>Your graph becomes noisy, retrieval becomes unreliable.</p><p>An established schema prevents it.<br>And schema-as-code is the best way to enforce it and track changes.</p><p>Additional benefit: it captures the evolution of your contract with the agent.<br>That contract changes as your modeling changes.<br>Track schema history and the agent can see how your model evolved.<br>It becomes another super-useful reasoning trail.</p><h1>So what is nanograph?</h1><p><a href="http://nanograph.io/">nanograph</a> is an <strong>on-device graph database</strong> packaged as a CLI + a folder.</p><p>Engineered around five pillars:</p><ul><li><p><strong>On-device</strong> - the graph is a folder, not a service. No Docker, no cloud, no open ports. Super-fast local queries vs slow cloud roundtrips - compounded across hundreds of agent calls per session.</p></li><li><p><strong>Zero setup</strong> - nanograph init creates a database from a schema, nanograph load ingests data. Delete the folder and recreate in seconds. No migrations server, no connection strings.</p></li><li><p><strong>Schema-as-code</strong> - <code>.pg</code> schema files live in your repo, version-controlled right in your repo. Types are enforced at load time and query compile time.</p></li><li><p><strong>Time machine</strong> - built-in CDC and event sourcing. Every mutation is a ledger entry. Full audit trail without external dependencies.</p></li><li><p><strong>Power search</strong> - full-text, semantic, fuzzy, BM25, and hybrid search with graph-constrained reranking. Traverse edges to narrow the candidate set, then rank within it. Search inside context, not across the whole database.</p></li></ul><p>A nanograph database is a build artifact, not a running service.<br>It is a folder: <code>&lt;name&gt;.nano/</code> that contains all your graph data: copy it, git it, zip it, encrypt it.</p><p><strong>Building DB on this paradigm way was quite challenging.</strong></p><p>Claude Code and Codex are incredible at writing Rust code.<br>But when working on specs, architecture and ergonomics - LLMs gravitate towards default thinking and generic components.</p><p>Because I wanted to build nanograph as a frontier graphDB,<br>I dug beneath the surface: researching state-of-the-art open source components.</p><p>I was able to figure out a clever interplay between Apache Arrow for memory model and Lance format for storage.<br>Then I spent a lot of time designing the query language: nanoQL<br>trying to merge Datalog semantics with GraphQL-shaped syntax.</p><p><strong>By this point I had a working prototype, which felt just right!</strong></p><p>After having a proof of concept, I dug one layer down and started to work on nuances.<br>I thought I knew a lot about databases - I've worked with them all my life.<br>But here I realized that everything is waaay more nuanced and complicated than I imagined it to be.</p><p><strong>I went deep into first principles:</strong> indexes, compaction, WAL, CDC, caching, ordering, lexical retrieval, hybrid search.</p><p><a href="https://www.amazon.com/Database-Internals-Deep-Distributed-Systems/dp/1492040347/">This book </a>was incredibly helpful in figuring out first principles.</p><p>After getting the fundamentals right, I started working on specs for each feature super-smart models (GPT-5.2 PRO and Gemini 3 Deep Thinking).</p><p>Operating on the edge of my own engineering and math competences,<br>I was able to optimize all key processes and make nanograph really fast and stable.</p><p><strong>nanograph is the most elegant piece of engineering I've ever done.</strong></p><p>I really encourage you to try it out!</p><h2>Quick start</h2><p>You can just give your agent a link to the repo and it will do the full setup for you:</p><p><code>https://github.com/aaltshuler/nanograph<br><br>Or set it up manually:</code></p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;shell&quot;,&quot;nodeId&quot;:&quot;beab7f72-e97d-4da9-95bc-a2da099c2f07&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-shell">brew install protobuf
cargo install nanograph-cli</code></pre></div><p>The repo ships two ready-to-run example graphs.</p><h3>Star Wars graph</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-UDY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00121824-08cd-4de2-a105-ba1464e779f8_2688x1792.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-UDY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00121824-08cd-4de2-a105-ba1464e779f8_2688x1792.png 424w, https://substackcdn.com/image/fetch/$s_!-UDY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00121824-08cd-4de2-a105-ba1464e779f8_2688x1792.png 848w, https://substackcdn.com/image/fetch/$s_!-UDY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00121824-08cd-4de2-a105-ba1464e779f8_2688x1792.png 1272w, https://substackcdn.com/image/fetch/$s_!-UDY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00121824-08cd-4de2-a105-ba1464e779f8_2688x1792.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-UDY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00121824-08cd-4de2-a105-ba1464e779f8_2688x1792.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/00121824-08cd-4de2-a105-ba1464e779f8_2688x1792.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:6073550,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.agentsworkshop.ai/i/189555444?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00121824-08cd-4de2-a105-ba1464e779f8_2688x1792.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-UDY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00121824-08cd-4de2-a105-ba1464e779f8_2688x1792.png 424w, https://substackcdn.com/image/fetch/$s_!-UDY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00121824-08cd-4de2-a105-ba1464e779f8_2688x1792.png 848w, https://substackcdn.com/image/fetch/$s_!-UDY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00121824-08cd-4de2-a105-ba1464e779f8_2688x1792.png 1272w, https://substackcdn.com/image/fetch/$s_!-UDY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00121824-08cd-4de2-a105-ba1464e779f8_2688x1792.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>A knowledge graph of characters, films, factions, and mentor relationships - 9 node types, 25 edge types, 66 nodes. Great for exploring schema basics, graph traversals, and the full search stack (text, semantic, hybrid). </p><p>The schema defines typed nodes with enums and <code>@key </code>identity:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;graphql&quot;,&quot;nodeId&quot;:&quot;92ddc83e-342b-47ee-82cc-f0bfce194404&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-graphql">node Character {
    slug: String @key
    name: String
    species: String
    alignment: enum(hero, villain, neutral)
}

edge HasMentor: Character - Character
edge DebutsIn: Character - Film</code></pre></div><p>Init, load, and query:</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;shell&quot;,&quot;nodeId&quot;:&quot;b81af55d-c5a3-4bfd-bd3a-489401c889f6&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-shell">nanograph init sw.nano --schema examples/starwars/starwars.pg
nanograph load sw.nano --data examples/starwars/starwars.jsonl --mode overwrite

nanograph run --db sw.nano --query examples/starwars/starwars.gq --name jedi
nanograph run --db sw.nano --query examples/starwars/starwars.gq --name students_of --param name="Yoda"</code></pre></div><p>Queries are typechecked against the schema - wrong property names, type mismatches, and invalid traversals are caught before execution.</p><h3>RevOps context graph</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wJyF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaf60280-0adb-4805-a9cd-0688af30727d_3200x1500.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wJyF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaf60280-0adb-4805-a9cd-0688af30727d_3200x1500.png 424w, https://substackcdn.com/image/fetch/$s_!wJyF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaf60280-0adb-4805-a9cd-0688af30727d_3200x1500.png 848w, https://substackcdn.com/image/fetch/$s_!wJyF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaf60280-0adb-4805-a9cd-0688af30727d_3200x1500.png 1272w, https://substackcdn.com/image/fetch/$s_!wJyF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaf60280-0adb-4805-a9cd-0688af30727d_3200x1500.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wJyF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaf60280-0adb-4805-a9cd-0688af30727d_3200x1500.png" width="1456" height="682" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/baf60280-0adb-4805-a9cd-0688af30727d_3200x1500.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:682,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:221699,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.agentsworkshop.ai/i/189555444?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaf60280-0adb-4805-a9cd-0688af30727d_3200x1500.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wJyF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaf60280-0adb-4805-a9cd-0688af30727d_3200x1500.png 424w, https://substackcdn.com/image/fetch/$s_!wJyF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaf60280-0adb-4805-a9cd-0688af30727d_3200x1500.png 848w, https://substackcdn.com/image/fetch/$s_!wJyF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaf60280-0adb-4805-a9cd-0688af30727d_3200x1500.png 1272w, https://substackcdn.com/image/fetch/$s_!wJyF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaf60280-0adb-4805-a9cd-0688af30727d_3200x1500.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>A RevOps context graph: <br>intelligence capture &#8594; enrichment &#8594; screening &#8594; decision &#8594; delivery. </p><p>10 node types<br>21 edge types</p><p>This is where nanograph's design really shines: decision traces, policy versioning via Supersedes edges, and multi-hop traversals from signals to outcomes.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;shell&quot;,&quot;nodeId&quot;:&quot;57d865e1-0b02-4c95-9369-85525cf81cb3&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-shell">nanograph init omni.nano --schema examples/revops/revops.pg
nanograph load omni.nano --data examples/revops/revops.jsonl --mode overwrite

# trace why a decision was made
nanograph run --db omni.nano --query examples/revops/revops.gq \
  --name decision_trace --param opp=opp-stripe-migration

# close the loop: signal &#8594; decision &#8594; action &#8594; outcome
nanograph run --db omni.nano --query examples/revops/revops.gq \
  --name full_trace --param sig=sig-hates-vendor</code></pre></div><p>The decision trace query walks from an opportunity back through who decided and what signal drove it - the kind of "why did this happen?" question that agents need to answer.</p><h2>What nanograph is best for</h2><ul><li><p><strong>Context graphs</strong> (decision traces, causal chains, structured context)</p></li><li><p><strong>Agentic memory</strong> (typed on-device memory for coding agents)</p></li><li><p><strong>Personal knowledge</strong> (bookmarks, notes, connections; local-first, schema-enforced, versioned)</p></li><li><p><strong>Dependency graphs</strong> (services, packages, lineage tracking)</p></li></ul><h2>What nanograph is <em>not</em> for</h2><p><strong>nanograph</strong> is intentionally not trying to be everything.</p><ul><li><p>not a multi-tenant distributed cloud graph</p></li><li><p>not an everything-store without schema discipline</p></li><li><p>not a transactional system-of-record or ledger</p></li></ul><p>The point is the opposite:<br><strong>Keep your nanographs compact, isolated, typed, and focused.</strong></p><p>Have as many of them as you need.<br>Init is seconds, delete is seconds. <br>Spin up per-project, per-agent, per-experiment.</p><p><strong>nanograph</strong> is open source and free to use.<br>Your agent will download it and set it up for you,<br>then help you create your schema and ingest your data.</p><p><strong>If you like it - please give it a star on <a href="https://github.com/aaltshuler/nanograph">GitHub</a>&#11088;</strong></p>]]></content:encoded></item><item><title><![CDATA[MCP FOR EXPERTISE DISTRIBUTION]]></title><description><![CDATA[Complete Breakdown: How I Built an MCP Server So Agents Can Operate My Method]]></description><link>https://www.agentsworkshop.ai/p/building-mcp-for-expertise-distribution</link><guid isPermaLink="false">https://www.agentsworkshop.ai/p/building-mcp-for-expertise-distribution</guid><dc:creator><![CDATA[Andrew Altshuler]]></dc:creator><pubDate>Sun, 09 Nov 2025 21:42:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!URH6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b937e01-1676-475b-a0ec-cb8f28512bc0_2516x1453.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!URH6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b937e01-1676-475b-a0ec-cb8f28512bc0_2516x1453.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!URH6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b937e01-1676-475b-a0ec-cb8f28512bc0_2516x1453.png 424w, https://substackcdn.com/image/fetch/$s_!URH6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b937e01-1676-475b-a0ec-cb8f28512bc0_2516x1453.png 848w, https://substackcdn.com/image/fetch/$s_!URH6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b937e01-1676-475b-a0ec-cb8f28512bc0_2516x1453.png 1272w, https://substackcdn.com/image/fetch/$s_!URH6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b937e01-1676-475b-a0ec-cb8f28512bc0_2516x1453.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!URH6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b937e01-1676-475b-a0ec-cb8f28512bc0_2516x1453.png" width="1456" height="841" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7b937e01-1676-475b-a0ec-cb8f28512bc0_2516x1453.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:841,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:81412,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.agentsworkshop.ai/i/178436428?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b937e01-1676-475b-a0ec-cb8f28512bc0_2516x1453.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!URH6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b937e01-1676-475b-a0ec-cb8f28512bc0_2516x1453.png 424w, https://substackcdn.com/image/fetch/$s_!URH6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b937e01-1676-475b-a0ec-cb8f28512bc0_2516x1453.png 848w, https://substackcdn.com/image/fetch/$s_!URH6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b937e01-1676-475b-a0ec-cb8f28512bc0_2516x1453.png 1272w, https://substackcdn.com/image/fetch/$s_!URH6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b937e01-1676-475b-a0ec-cb8f28512bc0_2516x1453.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In this guide I&#8217;ll show you step-by-step how I built MCP Server for <strong>Advanced Knowledge Systems.</strong></p><p>Using stack:</p><ul><li><p>&#9650; <strong>Vercel</strong> [ecosystem]</p></li><li><p><strong>NEXT.js App Router</strong> [backend]</p></li><li><p><strong>Vercel MCP&#8209;handler</strong> [MCP wiring]</p></li><li><p><strong>MongoDB</strong> [database + vector index]</p></li><li><p><strong>MUX</strong> [video storage &amp; transcripts]</p></li><li><p><strong>OpenAI embeddings&#8209;3&#8209;small</strong> [vector embeddings]</p></li><li><p><strong>Claude API</strong> [transcript enhancement]</p></li><li><p><strong>LangChain text splitters</strong> [chunking]</p></li><li><p><strong>Clerk</strong> [auth]</p></li></ul><p>First let me give you some context.</p><h2><strong>BACKGROUND</strong></h2><p>2 years ago I created the course: <strong>Advanced Knowledge Systems.</strong></p><p>The essence of the course is summarized in the DIKW framework. <br>I teach people how to build a personal knowledge system that:</p><ul><li><p>Process DATA</p></li><li><p>Organize INFORMATION</p></li><li><p>Extract &amp; codify KNOWLEDGE</p></li><li><p>Facilitate WISDOM</p></li></ul><p>In just a few days I&#8217;ll be running the 14th cohort. <br>And with each new cohort, this paradigm shift became more and more evident:</p><p><strong>FROM: we build the system ourselves</strong> <br><strong>TO: we use agents to build the system for us</strong></p><p>This is huge!</p><p>It influenced not just how we BUILD but also how I share my know-hows &amp; expertise with cohort participants.</p><p><strong>We&#8217;re entering a new era of expertise sharing.</strong></p><p>It forced me to rethink the ideas of knowledge sharing and expertise from first principles.</p><p>Think about it: Until now, knowledge moved primarily from person &#8594; person (or person &#8594; group). <br><strong>Now there&#8217;s a new stakeholder: AI agent.</strong></p><p>Agents like Claude Code, Codex, Cursor, Warp... they changed everything.</p><p>I would argue that they are the smartest and most capable tools we ever had<br>[Like ever&#8230; as collective humanity&#8230; in any domain]</p><p><strong>They are brilliant!</strong></p><p>They don&#8217;t just write code; they <strong>set up environments</strong>, manage <strong>terminals</strong>, connect <strong> tools</strong>, observe <strong>other apps</strong> and DO so much more!</p><p>This is the crucial part: <br>For them to be most efficient, they need context: <strong>domain-specific knowledge.</strong></p><p>And not in the form of static docs &amp; fixed guidelines. <br>They clutter the context and get outdated very fast.</p><p><strong>But knowledge in the form of live, updatable, granular, queryable &amp; searchable knowledge bases with versioning &amp; attribution.</strong></p><h3><strong>MCPs</strong></h3><p>This is where MCPs come into play.</p><pre><code><strong>What Is an MCP? (Quick Primer)</strong>

MCP = Model Context Protocol

Think of it as a smart API for agents:

It&#8217;s a standardized server interface that exposes:

Knowledge (facts &amp; frameworks)
Tools (functions &amp; procedures)
Instructions (how to make those useful)

<strong>MCP = Toolkit for agents + Guidelines for using it</strong></code></pre><p>MCP turns expert methods into interactive toolkit. <br>Using this toolkit agents can learn, plan, and act through actively engaging with specific know-hows.</p><blockquote><p><strong>Knowledge is a kind of information that&#8217;s true and useful</strong><br><em>&#8212; David Deutsch</em></p></blockquote><p><strong>MCPs make knowledge operational!</strong></p><p>The perfect example here:</p><h3>Context7</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AHIw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8b09325-4640-408c-9d97-4f72c56b217e_886x1056.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AHIw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8b09325-4640-408c-9d97-4f72c56b217e_886x1056.png 424w, https://substackcdn.com/image/fetch/$s_!AHIw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8b09325-4640-408c-9d97-4f72c56b217e_886x1056.png 848w, https://substackcdn.com/image/fetch/$s_!AHIw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8b09325-4640-408c-9d97-4f72c56b217e_886x1056.png 1272w, https://substackcdn.com/image/fetch/$s_!AHIw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8b09325-4640-408c-9d97-4f72c56b217e_886x1056.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AHIw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8b09325-4640-408c-9d97-4f72c56b217e_886x1056.png" width="886" height="1056" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e8b09325-4640-408c-9d97-4f72c56b217e_886x1056.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1056,&quot;width&quot;:886,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:388848,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.agentsworkshop.ai/i/178436428?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8b09325-4640-408c-9d97-4f72c56b217e_886x1056.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!AHIw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8b09325-4640-408c-9d97-4f72c56b217e_886x1056.png 424w, https://substackcdn.com/image/fetch/$s_!AHIw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8b09325-4640-408c-9d97-4f72c56b217e_886x1056.png 848w, https://substackcdn.com/image/fetch/$s_!AHIw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8b09325-4640-408c-9d97-4f72c56b217e_886x1056.png 1272w, https://substackcdn.com/image/fetch/$s_!AHIw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8b09325-4640-408c-9d97-4f72c56b217e_886x1056.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><a href="https://context7.com/">Context7</a> MCP integrates up-to-date documentation for hundreds of libraries.</p><p>Agents can pull fresh knowledge instantly. It&#8217;s always up to date and useful.</p><p>With Context7 agents don&#8217;t rely on stale knowledge from the model weights. <br><strong>And you do not have to worry that they import outdated libraries or build for non-existent APIs.</strong></p><p>Inspired by Context7 <strong>[I use it ALL THE TIME]</strong> I decided to build my own MCP server following the same paradigm.</p><p>An MCP server that acts as a gateway to my methodology, frameworks, and know-hows.</p><p><strong>FOR PEOPLE:</strong> it provides the way to interact, search, and learn.<br><strong>FOR AGENTS:</strong> it gives the instructions &amp; tools to build working systems.</p><p>Now let me show you how I did it.</p><h2><strong>BREAKDOWN</strong></h2><h3><strong>MVP</strong></h3><p>Of course I had a grand vision for the project, but I wanted to build the prototype fast.</p><p>So now my MCP server exposes <strong>2 core capabilities</strong>:</p><p><strong>Semantic Search</strong><br>Fast vector search on course content: lectures, resources, frameworks.</p><p><strong>Graph Search</strong><br>Multi-hop exploration through connected entities: concepts, highlights, resources &amp; tools.</p><pre><code>Multi-hop means: when semantic search finds a specific chunk &#8594; it can hop to the unit from which this fragment came from [hop 1] &#8594; and from the unit to connected resources/highlights/tools [hop 2]</code></pre><p>Cohort participants can connect the MCP to any agent and get a <strong>companion</strong> to the course.</p><h3><strong>Stack</strong></h3><p>I started with what I already had:</p><ul><li><p>Course platform built on NEXT.js</p></li><li><p>MongoDB with modules, units, resources, projects</p></li><li><p>Clerk auth</p></li></ul><p>For maximum reusability I wanted to build the MCP on top of my existing platform infrastructure: Same backend. Same auth. Same data. Minimal duplication.</p><p>Here is the architecture I came up with:</p><h3><strong>Architecture</strong></h3><pre><code><code>AGENT
&#8595;&#8593;
MCP Server
&#8595;&#8593;
NEXT.js (App Router) | &#9650; Vercel 
&#8595;&#8593;
Search Libraries [based on Mongo best practices]
&#8595;&#8593;
MongoDB Atlas
  &#9500;&#9472; units/resources/highlights/tools [traditional collections]
  &#9492;&#9472; embeddings [collection with vector index]
            &#8593;
PIPELINE: chunking &#8592; enhancement &#8592; transcripts 
                                      &#8593;
                                     MUX (video)
</code></code></pre><p>Let&#8217;s explore all components and logic behind each.</p><h3><strong>Database</strong></h3><p>I already use Mongo as the main database for the course platform. <br>And I wanted to keep all course data in one place:</p><ul><li><p>One system for units, resources, projects, and embeddings</p></li><li><p>Vector index for semantic search</p></li><li><p>Native lookups and graph&#8209;style hops</p></li></ul><p>Before this project I knew Mongo&#8217;s RAG capabilities were quite good, but I discovered that it can do way more!</p><p>In Mongo you can implement:</p><ul><li><p>Vector search for semantic retrieval</p></li><li><p>Graph multi-hop traversal for better reasoning</p></li></ul><p>They enable both traditional RAG and GraphRAG [without federating data across multiple databases].</p><p>Storing vector embeddings in Mongo is super easy: <br>You just need to create a <a href="https://www.mongodb.com/docs/compass/indexes/create-vector-search-index/">vector index</a>.</p><p><em>Your coding agent can easily do it for you</em>&#128521;</p><p><strong>Graph is a bit more complicated:</strong> Mongo is not a graph database. <br>It&#8217;s a document database.</p><p>That means I had to implement graph traversal on top of this paradigm.</p><p>Fortunately, they have <a href="https://github.com/mongodb-developer/GenAI-Showcase">this amazing repo</a> for developers with all the examples.</p><p>First I copied their Graph RAG approach. <br>Then I quickly scaffold a simpler dataset for tests &amp; evals <strong>&#8594; it worked flawlessly!</strong></p><p>Now my DB is optimized for both Web App (platform) and RAG:</p><ul><li><p>Traditional document storage</p></li><li><p>Vector storage + vector index</p></li><li><p>Schema aligned with multi-hop graph retrieval pattern</p></li></ul><p>Next step: content pipeline to make my course videos accessible for LLMs:<br><strong>video &#8594; transcripts &#8594; enhancement &#8594; chunking &#8594; embeddings &#8594; ingestion</strong></p><h3><strong>Pipeline</strong></h3><p>I&#8217;m using <a href="https://www.mux.com/">MUX</a> as my video platform. It&#8217;s pretty amazing! <br>Essentially, it&#8217;s developer-first video hosting. <br>It allows you to access all video assets (including transcripts) programmatically.</p><p>So I quickly built a <strong>content pipeline</strong>:</p><pre><code>&#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;
&#9474;   MUX Video &#9474;
&#9474;  (platform) &#9474;
&#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9516;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;
       &#9474;
       V
&#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;
&#9474; Fetch Transcript    &#9474;
&#9474; (programmatically)  &#9474;
&#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9516;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;
       &#9474;
       V
&#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;
&#9474; Enhance with LLM    &#9474;
&#9474; Claude API          &#9474;
&#9474; [clean, denoise,    &#9474;
&#9474;  normalize]         &#9474;
&#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9516;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;
       &#9474;
       V
&#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;
&#9474; Chunk Text          &#9474;
&#9474; LangChain splitters &#9474;
&#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9516;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;
       &#9474;
       V
&#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;
&#9474; Generate Embeddings &#9474;
&#9474; OpenAI embed-3-small&#9474;
&#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9516;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;
       &#9474;
       V
&#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;
&#9474; Upsert to MongoDB               &#9474;
&#9474;  &#9500;&#9472; embeddings collection       &#9474;
&#9474;  &#9474;  [with vector index]         &#9474;
&#9474;  &#9492;&#9472; link with units + metadata  &#9474;
&#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;</code></pre><p>I was able to vectorize and ingest all the course content in just an hour!</p><p>Units were already connected to resources, tools, and highlights. So now everything lives in Mongo: clean, queryable, and fast.</p><p>With all the data in Mongo, time to move to APIs.</p><h3><strong>NEXT.js (API for Platform and MCP)</strong></h3><p>NEXT is not just a React framework [this common misconception still exists]</p><p><strong>It&#8217;s the backbone of the entire system!</strong></p><p>NEXT provides a super neat architecture: <br>your business logic, API routes, and UI all live in the same codebase.</p><p>No need to jump between separate backend and frontend repos.</p><p>Since I wanted to have all MCP capabilities on the platform too, I&#8217;ve started there: <br>I integrated the search tools directly into the course platform app (NEXT.js, App Router) so people could use them to navigate the cohort.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!19L7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1714a827-2de7-4cae-a2c8-47ee4ac40dc0_3856x2552.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!19L7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1714a827-2de7-4cae-a2c8-47ee4ac40dc0_3856x2552.png 424w, https://substackcdn.com/image/fetch/$s_!19L7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1714a827-2de7-4cae-a2c8-47ee4ac40dc0_3856x2552.png 848w, https://substackcdn.com/image/fetch/$s_!19L7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1714a827-2de7-4cae-a2c8-47ee4ac40dc0_3856x2552.png 1272w, https://substackcdn.com/image/fetch/$s_!19L7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1714a827-2de7-4cae-a2c8-47ee4ac40dc0_3856x2552.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!19L7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1714a827-2de7-4cae-a2c8-47ee4ac40dc0_3856x2552.png" width="1456" height="964" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1714a827-2de7-4cae-a2c8-47ee4ac40dc0_3856x2552.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:964,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:788420,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.agentsworkshop.ai/i/178436428?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1714a827-2de7-4cae-a2c8-47ee4ac40dc0_3856x2552.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!19L7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1714a827-2de7-4cae-a2c8-47ee4ac40dc0_3856x2552.png 424w, https://substackcdn.com/image/fetch/$s_!19L7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1714a827-2de7-4cae-a2c8-47ee4ac40dc0_3856x2552.png 848w, https://substackcdn.com/image/fetch/$s_!19L7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1714a827-2de7-4cae-a2c8-47ee4ac40dc0_3856x2552.png 1272w, https://substackcdn.com/image/fetch/$s_!19L7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1714a827-2de7-4cae-a2c8-47ee4ac40dc0_3856x2552.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Graph + Semantic Search on AKS Platform</figcaption></figure></div><p>Then I extracted the logic into clean libraries and a simple pattern:</p><ul><li><p><strong>Library + interface + API endpoint</strong></p></li></ul><p>So the course platform and MCP server could share:</p><ul><li><p>Same DB connections</p></li><li><p>Same auth (Clerk)</p></li><li><p>Same business logic (search libraries)</p></li><li><p>Same API infrastructure (App Router)</p></li></ul><p>This way one backend can power both:</p><ul><li><p>The web platform (for students)</p></li><li><p>The MCP server (for agents)</p></li></ul><p>Both are enabled to:</p><ul><li><p>Access all course content via semantic search</p></li><li><p>Hop across related units/resources/tools</p></li><li><p>Pull supporting materials (examples, checklists, frameworks)</p></li><li><p>Get structured context in JSON</p></li></ul><p>Reusability is the huge win here! Full-stack TypeScript application using App Router. Auth is also unified: same permissions model everywhere.</p><p>So now we have everything ready! It&#8217;s time to add the MCP layer.</p><h3><strong>MCP-handler</strong></h3><p>Okay, I know I praise Vercel A LOT!</p><p>But here&#8217;s where Vercel&#8217;s ecosystem <strong>REALLY</strong> shines: <br><strong>REUSABILITY &amp; INTEGRATION</strong></p><p>Vercel provides its own <a href="https://vercel.com/docs/mcp/deploy-mcp-servers-to-vercel">MCP-handler</a>. </p><p>So I just wrapped two API endpoints as MCP tools and exposed them via <code>mcp&#8209;handler</code>.</p><p>Like this (example from Vercel site):</p><pre><code>import { z } from &#8216;zod&#8217;;
import { createMcpHandler } from &#8216;mcp-handler&#8217;;
 
const handler = createMcpHandler(
  (server) =&gt; {
    server.tool(
      &#8216;roll_dice&#8217;,
      &#8216;Rolls an N-sided die&#8217;,
      { sides: z.number().int().min(2) },
      async ({ sides }) =&gt; {
        const value = 1 + Math.floor(Math.random() * sides);
        return {
          content: [{ type: &#8216;text&#8217;, text: `&#127922; You rolled a ${value}!` }],
        };
      },
    );
  },
  {},
  { basePath: &#8216;/api&#8217; },
);
 
export { handler as GET, handler as POST, handler as DELETE };</code></pre><p>That&#8217;s it. The <code>mcp-handler</code> handles all the MCP logic and primitives.</p><p><strong>Now we have:</strong></p><ul><li><p>Same backend, same auth, same data [I know, I know, I&#8217;ve already said this 100 times&#128513;]</p></li><li><p>Now callable from Claude Desktop, ChatGPT, Claude Code, Cursor, Warp&#8230;</p></li><li><p>[and others] it is compatible with pretty much any MCP client</p></li><li><p>Tools return clean, structured outputs for agents to act on</p></li></ul><p><strong>And here we are!</strong></p><p>Let me show you it in action:</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;64d53471-f39c-49d1-9cdd-3c7c9993f3df&quot;,&quot;duration&quot;:null}"></div><p>Warp agent built a framework for selecting optimal Knowledge Hub [fully aligned with with AKS approach]<br><em><strong>Of course it will help you to apply this framework next.</strong></em></p><div><hr></div><p><strong>IF YOU WANT TO GET ACCESS TO THIS MCP</strong> <br>there is a last chance to jump into <a href="http://aks.systems/">AKS Cohort 14</a> [we have 2 spots left]</p><div><hr></div><h3><strong>What It Enables for Learners &amp; Builders</strong></h3><p>To summarize:</p><ul><li><p><strong>Learn&#8209;by&#8209;doing:</strong> run the exact procedure an expert would -&gt; install, connect, test, iterate</p></li><li><p><strong>Explainability:</strong> every step is documented and linked back to sources/graph nodes</p></li><li><p><strong>Operationalization:</strong> converts inputs &#8594; outputs, following know-hows non-linearly</p></li><li><p><strong>Acceleration:</strong> from <strong>idea</strong> to <strong>system prototype</strong> in just hours</p></li></ul><h2><strong>VISION</strong></h2><p><strong>Okay, why this is WAAAY BIGGER than just a course tool.</strong></p><p><strong>First I want to emphasize something:</strong></p><p>My goal was not just make course content searchable. <br>But to ENCODE my <strong>methodology</strong> into something <strong>agents could OPERATE WITH.</strong></p><p>Every search query returns not just facts &amp; opinions &#8594; but context, connections &amp; next steps. Every graph hop surfaces related frameworks &amp; implementation patterns.</p><p>This isn&#8217;t a documentation. <br>It&#8217;s <strong>CALLABLE EXPERTISE</strong>.</p><p><strong>And IT CHANGES everything:</strong></p><p><em><strong>If I can do this for knowledge management and system design, you can do this for your domain.</strong></em></p><p>The technical pattern here is universal:</p><ul><li><p>Take domain expertise</p></li><li><p>Structure it (relationships, context, provenance)</p></li><li><p>Make it queryable &amp; actionable</p></li><li><p>Expose it through MCPs</p></li><li><p>Let agents apply it at scale</p></li></ul><p>This isn&#8217;t about courses. <br>It&#8217;s about how expertise moves in an agent-first world. <br>Where <strong>MCP is becoming No 1 distribution mechanism</strong> for know-hows &amp; best practices.</p><h2><strong>BONUS: FOR EXPERTS</strong></h2><p>What this revolution means for experts who needs channels to distribute their know-hows and frameworks?</p><p>Well, instead of publishing static PDFs or videos, you can now publish <strong>executable methods</strong>.</p><p>Your knowledge is available as a set of <strong>callable services</strong>:</p><ul><li><p>Versioned and testable</p></li><li><p>Scalable to thousands of users</p></li><li><p>Applied systematically by agents</p></li></ul><p>And HERE IS THE THING very few people realized yet: you don&#8217;t need to publish CODE.</p><p>You publish:</p><ul><li><p>Approaches</p></li><li><p>Guidelines</p></li><li><p>Frameworks</p></li><li><p>Decision heuristics</p></li></ul><p>The agent will handle the implementation! following user context and relevant aspects of your method! [for now not flawlessly, but think 6 months from now, when new generation of models is here]</p><p>And this goes <strong>waaaaay beyond tech-heavy domains</strong>.</p><p>For example:</p><div><hr></div><h3><strong>For Nutrition Experts</strong></h3><p><strong>Your method can be embedded into personalized nutrition assistant</strong></p><p>Agent accesses [PRIVATELY]:</p><ul><li><p>Client&#8217;s health data from wearables (metrics, activity, sleep)</p></li><li><p>Food intake patterns and logs</p></li><li><p>Parsed and mapped food photos</p></li><li><p>IoT kitchen devices &amp; meal prep</p></li></ul><p>And with your expertise MCP, it can:</p><ul><li><p>Build personalized plans grounded in YOUR methodology</p></li><li><p>Deliver timely interventions based on YOUR protocols</p></li><li><p>Flag nutrient gaps and suggest substitutions from YOUR system</p></li><li><p>Adapt recommendations as data evolves</p></li></ul><div><hr></div><h3><strong>For Coaches</strong></h3><p><strong>Your framework can become a scalable coaching companion</strong></p><p>Agent accesses data [PRIVATELY]:</p><ul><li><p>Client&#8217;s session transcripts &amp; recordings</p></li><li><p>Journals &amp; reflections</p></li><li><p>Progress logs &amp; goal tracking</p></li><li><p>Assessment results (Clifton, BIG-5, ..)</p></li></ul><p>And with your expert MCP, it can:</p><ul><li><p>Apply YOUR coaching model to each client&#8217;s situation</p></li><li><p>Ask probing questions from YOUR methodology</p></li><li><p>Surface relevant frameworks and tools from YOUR playbook</p></li><li><p>Track growth patterns using YOUR checklists</p></li><li><p>Suggest next steps aligned with YOUR approach</p></li></ul><div><hr></div><h3><strong>For Analysts &amp; Strategists</strong></h3><p><strong>Your analytical frameworks become decision-support systems.</strong></p><p>Agent accesses data [PRIVATELY]:</p><ul><li><p>Client&#8217;s business metrics &amp; KPIs</p></li><li><p>Market research &amp; competitive intel</p></li><li><p>Strategic documents &amp; planning artifacts</p></li><li><p>Historical decisions &amp; outcomes</p></li></ul><p>And with your expert MCP, it can:</p><ul><li><p>Apply YOUR UNIQUE analytical lens to each situation</p></li><li><p>Generate scenarios using YOUR strategic frameworks</p></li><li><p>Validate reasoning against YOUR specific set of criteria</p></li><li><p>Run analyses using methods curated by YOU.</p></li><li><p>Produce reports in YOUR specific format and style</p></li></ul><div><hr></div><p><strong>NOT generic advice. <br>Your specific methodology.<br>Applied to Client&#8217;s context.<br>At scale.</strong></p><p><strong>The pattern is the same:</strong> <br>MCPs turn expertise into callable procedures. <br>Agents apply procedures to specific context and turn them into outcomes.</p><p>We&#8217;re entering a new era of expertise sharing. <br><strong>The next decade&#8217;s leverage comes from agents equipped with expert know-hows.</strong></p><p>If you want your ideas used: DON&#8217;T WRITE A BOOK &#8594; <strong>expose them through MCP</strong>!</p><p><strong>Okay, now it&#8217;s time to ship something&#128640;</strong></p><div><hr></div><p>If you want me to help you build the MCP system:<br>DM me here or enroll to Accelerated/Discovery track of <a href="https://www.aks.systems/">AKS</a></p>]]></content:encoded></item><item><title><![CDATA[MY PRODUCTION-READY AI AGENT STACK]]></title><description><![CDATA[100% TypeScript Stack for Building Production-Ready AI Agents]]></description><link>https://www.agentsworkshop.ai/p/my-production-ai-agent-stack</link><guid isPermaLink="false">https://www.agentsworkshop.ai/p/my-production-ai-agent-stack</guid><dc:creator><![CDATA[Andrew Altshuler]]></dc:creator><pubDate>Thu, 02 Oct 2025 14:08:39 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!sHwy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb546db9e-e313-4991-80bb-c1048d0746bb_6552x3884.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sHwy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb546db9e-e313-4991-80bb-c1048d0746bb_6552x3884.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sHwy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb546db9e-e313-4991-80bb-c1048d0746bb_6552x3884.png 424w, https://substackcdn.com/image/fetch/$s_!sHwy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb546db9e-e313-4991-80bb-c1048d0746bb_6552x3884.png 848w, https://substackcdn.com/image/fetch/$s_!sHwy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb546db9e-e313-4991-80bb-c1048d0746bb_6552x3884.png 1272w, https://substackcdn.com/image/fetch/$s_!sHwy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb546db9e-e313-4991-80bb-c1048d0746bb_6552x3884.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sHwy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb546db9e-e313-4991-80bb-c1048d0746bb_6552x3884.png" width="1456" height="863" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b546db9e-e313-4991-80bb-c1048d0746bb_6552x3884.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:863,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3792834,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.agentsworkshop.ai/i/174340922?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb546db9e-e313-4991-80bb-c1048d0746bb_6552x3884.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!sHwy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb546db9e-e313-4991-80bb-c1048d0746bb_6552x3884.png 424w, https://substackcdn.com/image/fetch/$s_!sHwy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb546db9e-e313-4991-80bb-c1048d0746bb_6552x3884.png 848w, https://substackcdn.com/image/fetch/$s_!sHwy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb546db9e-e313-4991-80bb-c1048d0746bb_6552x3884.png 1272w, https://substackcdn.com/image/fetch/$s_!sHwy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb546db9e-e313-4991-80bb-c1048d0746bb_6552x3884.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>After 16 months of building AI agents I finally have a production stack where everything just works together.</p><p>Here's what I'm using:</p><ul><li><p><strong>NEXT.js</strong> (runtime)</p></li><li><p><strong>Vercel AI SDK</strong> (LLM core logic)</p></li><li><p><strong>Mastra</strong> (agentic framework)</p></li><li><p><strong>AI Elements</strong> (UI components)</p></li><li><p><strong>Mem0</strong> (memory layer)</p></li><li><p><strong>OpenTelemetry &amp; SigNoz </strong>(traces)</p></li><li><p><strong>Vercel</strong> (deploy)</p></li></ul><p>It's perfect!</p><p>No duct tape. No clunky integrations. Deploys in seconds.<br>Full-stack TypeScript. One deployment.</p><p>Let&#8217;s unpack it and I show you why it's so good.</p><p><strong>But first, some background&#8230;</strong></p><h2><strong>Python vs TypeScript</strong></h2><p>When you're entering the AI agent dev space, your first big decision is Python vs TypeScript/JavaScript.</p><p>Historically Python dominated AI/ML. Most early agent frameworks (LangChain, CrewAI, AutoGen) built on Python.</p><p>Today there are quite a few amazing agentic frameworks in Python ecosystem. <br>My favorites: Google ADK, Agno. You can build powerful agents with those.</p><p>Yet Python has a problem: UI.</p><p>When you need a modern React-based web UI you're going to need to integrate two stacks: Python for the AI core + JavaScript for the frontend.</p><p>Two languages, two ecosystems, two deployments. Workable, not ideal.</p><p>But here's the good news:<strong> the TypeScript AI ecosystem really caught up!</strong></p><p>And with incredible &#9650; <strong>Vercel</strong> leadership it's starting to dominate in builders community.</p><p>You can think of it this way:</p><p><strong>Python &#8594;</strong> best for delivering models: data, training, inference, ML ops<br><strong>Typescript &#8594;</strong> ideal to ship products: UI/UX, business logic, orchestration, scaling</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ntS7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F221ac232-41dc-476f-b74b-5ed7a86f00b1_2688x1792.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ntS7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F221ac232-41dc-476f-b74b-5ed7a86f00b1_2688x1792.png 424w, https://substackcdn.com/image/fetch/$s_!ntS7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F221ac232-41dc-476f-b74b-5ed7a86f00b1_2688x1792.png 848w, https://substackcdn.com/image/fetch/$s_!ntS7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F221ac232-41dc-476f-b74b-5ed7a86f00b1_2688x1792.png 1272w, https://substackcdn.com/image/fetch/$s_!ntS7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F221ac232-41dc-476f-b74b-5ed7a86f00b1_2688x1792.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ntS7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F221ac232-41dc-476f-b74b-5ed7a86f00b1_2688x1792.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/221ac232-41dc-476f-b74b-5ed7a86f00b1_2688x1792.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4230401,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.agentsworkshop.ai/i/174340922?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F221ac232-41dc-476f-b74b-5ed7a86f00b1_2688x1792.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ntS7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F221ac232-41dc-476f-b74b-5ed7a86f00b1_2688x1792.png 424w, https://substackcdn.com/image/fetch/$s_!ntS7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F221ac232-41dc-476f-b74b-5ed7a86f00b1_2688x1792.png 848w, https://substackcdn.com/image/fetch/$s_!ntS7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F221ac232-41dc-476f-b74b-5ed7a86f00b1_2688x1792.png 1272w, https://substackcdn.com/image/fetch/$s_!ntS7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F221ac232-41dc-476f-b74b-5ed7a86f00b1_2688x1792.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Image inspired by Abhi Aiyer from Mastra</figcaption></figure></div><p>My entire stack runs on TypeScript and relies heavily on Vercel Ecosystem.</p><p>Let me walk you through every component of it.</p><h2><strong>The Breakdown</strong></h2><h3><strong>NEXT.js: Runtime</strong></h3><p>NEXT is not just a React framework [this common misconception still exists]</p><p><strong>It's the backbone of the entire app!</strong></p><p>It handles:</p><ul><li><p>Agent runtime</p></li><li><p>API routes (backend &lt;&gt; frontend)</p></li><li><p>Frontend logic &amp; rendering</p></li><li><p>UI/UX</p></li></ul><p><strong>NEXT.js</strong> provides a super neat architecture:<br>your AI logic, API routes, and UI all live in the same codebase.</p><p>No need to jump between separate backend and frontend repos.</p><h3><strong>Vercel AI SDK: LLM Scaffolding</strong></h3><p>A TypeScript SDK for LLM interaction &amp; logic.</p><p>It&#8217;s a layer of abstraction that provides: streaming, tool calls, structured outputs, UI hooks.</p><p><strong>Key benefits:</strong></p><ul><li><p><strong>Vercel native </strong>[yet works with other framework too]</p></li><li><p><strong>Type safety</strong>: 100% TypeScript support</p></li><li><p><strong>LLM agnostic</strong>: You can use OpenAI, Anthropic, Google, Groq and more</p></li><li><p><strong>Great developer experience</strong>: Super clean API + amazing documentation</p></li></ul><p>AI SDK is the foundation agentic frameworks build on.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!avVr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26b72fdd-87d0-49cc-914f-10f0a54fe8b7_2296x976.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!avVr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26b72fdd-87d0-49cc-914f-10f0a54fe8b7_2296x976.png 424w, https://substackcdn.com/image/fetch/$s_!avVr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26b72fdd-87d0-49cc-914f-10f0a54fe8b7_2296x976.png 848w, https://substackcdn.com/image/fetch/$s_!avVr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26b72fdd-87d0-49cc-914f-10f0a54fe8b7_2296x976.png 1272w, https://substackcdn.com/image/fetch/$s_!avVr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26b72fdd-87d0-49cc-914f-10f0a54fe8b7_2296x976.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!avVr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26b72fdd-87d0-49cc-914f-10f0a54fe8b7_2296x976.png" width="1456" height="619" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/26b72fdd-87d0-49cc-914f-10f0a54fe8b7_2296x976.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:619,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:115060,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.agentsworkshop.ai/i/174340922?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26b72fdd-87d0-49cc-914f-10f0a54fe8b7_2296x976.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!avVr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26b72fdd-87d0-49cc-914f-10f0a54fe8b7_2296x976.png 424w, https://substackcdn.com/image/fetch/$s_!avVr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26b72fdd-87d0-49cc-914f-10f0a54fe8b7_2296x976.png 848w, https://substackcdn.com/image/fetch/$s_!avVr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26b72fdd-87d0-49cc-914f-10f0a54fe8b7_2296x976.png 1272w, https://substackcdn.com/image/fetch/$s_!avVr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26b72fdd-87d0-49cc-914f-10f0a54fe8b7_2296x976.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>BTW AI SDK is evolving to include more agentic features itself.</em></p><h3><strong>Mastra: Orchestration</strong></h3><p>While AI SDK handles LLM logic beautifully, agents need orchestration.</p><p>Here's where <strong>Mastra</strong> comes in!</p><p>Mastra is an open-source agentic <strong>TypeScript framework</strong> built on top of AI SDK.</p><p>Think of it this way:</p><p><strong>AI SDK</strong> = scaffolding for LLMs<br><strong>Mastra</strong> = scaffolding for Agents</p><p>Mastra provides the core <strong>AGENT</strong> abstraction:</p><pre><code>export const simpleAgent = new Agent({
  name: &#8220;Simple Agent&#8221;,
  instructions: &#8220;You are a helpful assistant. You can use the simpleTool to do X ...&#8221;,
  model: openai(&#8221;gpt-5-nano&#8221;),
  memory: new Memory(),
  tools: {
    simpleTool,
  },
});</code></pre><p><strong>As you can see It handles:</strong></p><ul><li><p>System prompt</p></li><li><p>Model selection</p></li><li><p>Tool calling</p></li><li><p>Memory</p></li></ul><p>Using these, you can create really complex agentic behavior.</p><p><strong>And this is what many people are missing: <br>building agents is 50% tech and 50% behavior engineering.</strong> </p><p>Mastra gives you an amazing PRO toolkit to handle both.</p><p>It includes:</p><ul><li><p>Memory curation</p></li><li><p>Runtime control</p></li><li><p>Multi-agent wiring</p></li></ul><p>Using these, you can orchestrate multiple agents into a very sophisticated AI system.</p><p>And this system needs a UI, right?</p><h3><strong>AI Elements: UI</strong></h3><p>AI Elements gives you production-ready UI components out of the box.</p><p>Built with shadcn, Radix and Tailwind:</p><ul><li><p>Chat flow</p></li><li><p>Output renderer</p></li><li><p>Loaders / controls / selectors</p></li><li><p>Error handling</p></li></ul><p>You can build a ChatGPT-like interface in no time:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Pys7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf07e528-5dfa-4b59-a23c-d0c9971510ae_1612x1564.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Pys7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf07e528-5dfa-4b59-a23c-d0c9971510ae_1612x1564.png 424w, https://substackcdn.com/image/fetch/$s_!Pys7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf07e528-5dfa-4b59-a23c-d0c9971510ae_1612x1564.png 848w, https://substackcdn.com/image/fetch/$s_!Pys7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf07e528-5dfa-4b59-a23c-d0c9971510ae_1612x1564.png 1272w, https://substackcdn.com/image/fetch/$s_!Pys7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf07e528-5dfa-4b59-a23c-d0c9971510ae_1612x1564.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Pys7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf07e528-5dfa-4b59-a23c-d0c9971510ae_1612x1564.png" width="1456" height="1413" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/af07e528-5dfa-4b59-a23c-d0c9971510ae_1612x1564.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1413,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:265164,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.agentsworkshop.ai/i/174340922?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf07e528-5dfa-4b59-a23c-d0c9971510ae_1612x1564.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Pys7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf07e528-5dfa-4b59-a23c-d0c9971510ae_1612x1564.png 424w, https://substackcdn.com/image/fetch/$s_!Pys7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf07e528-5dfa-4b59-a23c-d0c9971510ae_1612x1564.png 848w, https://substackcdn.com/image/fetch/$s_!Pys7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf07e528-5dfa-4b59-a23c-d0c9971510ae_1612x1564.png 1272w, https://substackcdn.com/image/fetch/$s_!Pys7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf07e528-5dfa-4b59-a23c-d0c9971510ae_1612x1564.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>All fully customizable: you can skip frontend wiring &amp; UI nuances, and focus on your agent logic &amp; UX.</p><h3><strong>Mem0: Long-Term Memory</strong></h3><p>One more quick background snapshot:</p><p>The biggest shift happening in AI right now: <strong>STATELESS &#8594; STATEFUL</strong></p><p>We're used to stateless AI that:</p><ul><li><p>Forgets previous interactions</p></li><li><p>Starts from scratch every time</p></li><li><p>Feels inconsistent and robotic</p></li></ul><p>Sure, we've had RAG for a while, but <strong>retrieval &#8800; memory</strong>.</p><p>RAG-enabled agents still suffer from amnesia.</p><p>True memory changes everything:</p><ul><li><p>Quick recall from multiple interactions</p></li><li><p>Better reasoning through context awareness</p></li><li><p>Self-improvement over time</p></li><li><p>Personalization and trust</p></li></ul><p>And yes, Mastra already handles a lot of memory features (working memory, conversation memory, semantic recall).</p><p>But I like my agents to be truly personal and sharp!</p><p>I need them to be peaky: to remember <strong>specific facts</strong> across threads. <br>To hold all important user preferences and decisions.</p><p>This is where Mem0 comes in: it gives agents a persistent, searchable &amp; manageable memory layer.</p><p>And it gives you another orchestration and behavior engineering tool. </p><p>Mem0 works well with Mastra and can be integrated with just a few lines of code.</p><p>But of course with each additional library your agent is becoming more complex and error-prone&#8230;</p><h3><strong>OpenTelemetry + SigNoz: Traces</strong></h3><p>Complexity is inevitable in real-life agentic systems.</p><p>When your agent performs a sophisticated non-linear task, it might involve dozens of LLM calls and tool executions.</p><p>You need to see what's happening there:<br>track errors and find non-optimal flows.</p><p>OpenTelemetry enables your agent to produce traces.<br>In SigNoz you can query them and visualize.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HKPd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09ed62bb-81fd-43d3-9326-d85531edff43_2400x1194.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HKPd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09ed62bb-81fd-43d3-9326-d85531edff43_2400x1194.webp 424w, https://substackcdn.com/image/fetch/$s_!HKPd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09ed62bb-81fd-43d3-9326-d85531edff43_2400x1194.webp 848w, https://substackcdn.com/image/fetch/$s_!HKPd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09ed62bb-81fd-43d3-9326-d85531edff43_2400x1194.webp 1272w, https://substackcdn.com/image/fetch/$s_!HKPd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09ed62bb-81fd-43d3-9326-d85531edff43_2400x1194.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HKPd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09ed62bb-81fd-43d3-9326-d85531edff43_2400x1194.webp" width="1456" height="724" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/09ed62bb-81fd-43d3-9326-d85531edff43_2400x1194.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:724,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;SigNoz | The Open Source Datadog Alternative&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="SigNoz | The Open Source Datadog Alternative" title="SigNoz | The Open Source Datadog Alternative" srcset="https://substackcdn.com/image/fetch/$s_!HKPd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09ed62bb-81fd-43d3-9326-d85531edff43_2400x1194.webp 424w, https://substackcdn.com/image/fetch/$s_!HKPd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09ed62bb-81fd-43d3-9326-d85531edff43_2400x1194.webp 848w, https://substackcdn.com/image/fetch/$s_!HKPd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09ed62bb-81fd-43d3-9326-d85531edff43_2400x1194.webp 1272w, https://substackcdn.com/image/fetch/$s_!HKPd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09ed62bb-81fd-43d3-9326-d85531edff43_2400x1194.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">SigNoz traces visualisation</figcaption></figure></div><p>You can trace:</p><ul><li><p>Tool calls</p></li><li><p>Latency &amp; token usage</p></li><li><p>Bottlenecks &amp; failures</p></li></ul><p><strong>Mastra already has OpenTelemetry integrated! </strong>You just need to set up SigNoz routing.</p><p><strong>This is mandatory for production:</strong><br>when your agent goes off the rails at 3 AM, you need those traces.</p><h3><strong>Vercel: Deployment</strong></h3><p>NEXT.js &#8594; Vercel deployment is brilliant!</p><p>The entire app deploys with one command.<br>No separate Docker configs. No complex DevOps pipelines.</p><p>Just </p><pre><code>git push</code></pre><p>That's it!</p><p>Vercel handles:</p><ul><li><p>Minimal-config serverless deploy</p></li><li><p>Continuous integration</p></li><li><p>Automatic scaling</p></li></ul><p>And so much more!</p><h2><strong>Why This Stack Works</strong></h2><p>So after trying dozens of combinations, this stack is a clear winner for me.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QqYt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f492c3e-9531-4d66-a141-1e4233b40f03_5824x4262.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QqYt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f492c3e-9531-4d66-a141-1e4233b40f03_5824x4262.png 424w, https://substackcdn.com/image/fetch/$s_!QqYt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f492c3e-9531-4d66-a141-1e4233b40f03_5824x4262.png 848w, https://substackcdn.com/image/fetch/$s_!QqYt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f492c3e-9531-4d66-a141-1e4233b40f03_5824x4262.png 1272w, https://substackcdn.com/image/fetch/$s_!QqYt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f492c3e-9531-4d66-a141-1e4233b40f03_5824x4262.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QqYt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f492c3e-9531-4d66-a141-1e4233b40f03_5824x4262.png" width="1456" height="1066" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3f492c3e-9531-4d66-a141-1e4233b40f03_5824x4262.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1066,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2474369,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.agentsworkshop.ai/i/174340922?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f492c3e-9531-4d66-a141-1e4233b40f03_5824x4262.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!QqYt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f492c3e-9531-4d66-a141-1e4233b40f03_5824x4262.png 424w, https://substackcdn.com/image/fetch/$s_!QqYt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f492c3e-9531-4d66-a141-1e4233b40f03_5824x4262.png 848w, https://substackcdn.com/image/fetch/$s_!QqYt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f492c3e-9531-4d66-a141-1e4233b40f03_5824x4262.png 1272w, https://substackcdn.com/image/fetch/$s_!QqYt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f492c3e-9531-4d66-a141-1e4233b40f03_5824x4262.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Everything is TypeScript. Every component understands the others.</p><p>Mastra is built on AI SDK, has integrated OpenTelemetry and native support for Mem0.<br>NEXT.js, AI SDK, AI Elements are all parts of Vercel ecosystem.<br>They all click together like LEGO blocks.</p><p>No glue code. Great developer experience. Minimalistic API.<br>Full observability. One command deploy.</p><p>16 months of experiments, failed integrations &amp; all-night debugging sessions, but I finally found it: <strong>my perfect agent stack!</strong></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.agentsworkshop.ai/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">AgentsWorkshop is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[BUILDING AI BUSINESS ASSISTANT / Complete Guide]]></title><description><![CDATA[A step-by-step tutorial on building your AI business assistant: Claude + MCPs + MongoDB. With detailed guidelines, prompts, templates, and configs.]]></description><link>https://www.agentsworkshop.ai/p/building-ai-business-assistant-complete</link><guid isPermaLink="false">https://www.agentsworkshop.ai/p/building-ai-business-assistant-complete</guid><dc:creator><![CDATA[Andrew Altshuler]]></dc:creator><pubDate>Tue, 01 Jul 2025 18:05:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!IU-C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa321c413-e3ec-4150-9295-d1c827dd65cc_5062x3298.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IU-C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa321c413-e3ec-4150-9295-d1c827dd65cc_5062x3298.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IU-C!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa321c413-e3ec-4150-9295-d1c827dd65cc_5062x3298.png 424w, https://substackcdn.com/image/fetch/$s_!IU-C!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa321c413-e3ec-4150-9295-d1c827dd65cc_5062x3298.png 848w, https://substackcdn.com/image/fetch/$s_!IU-C!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa321c413-e3ec-4150-9295-d1c827dd65cc_5062x3298.png 1272w, https://substackcdn.com/image/fetch/$s_!IU-C!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa321c413-e3ec-4150-9295-d1c827dd65cc_5062x3298.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IU-C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa321c413-e3ec-4150-9295-d1c827dd65cc_5062x3298.png" width="1456" height="949" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a321c413-e3ec-4150-9295-d1c827dd65cc_5062x3298.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:949,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:9916094,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.agentsworkshop.ai/i/166962266?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa321c413-e3ec-4150-9295-d1c827dd65cc_5062x3298.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!IU-C!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa321c413-e3ec-4150-9295-d1c827dd65cc_5062x3298.png 424w, https://substackcdn.com/image/fetch/$s_!IU-C!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa321c413-e3ec-4150-9295-d1c827dd65cc_5062x3298.png 848w, https://substackcdn.com/image/fetch/$s_!IU-C!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa321c413-e3ec-4150-9295-d1c827dd65cc_5062x3298.png 1272w, https://substackcdn.com/image/fetch/$s_!IU-C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa321c413-e3ec-4150-9295-d1c827dd65cc_5062x3298.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In this guide I'll show you how to build an agentic business assistant that works for you 24/7, syncs your entire business context, and gets smarter over time.</p><h4>Stack</h4><ul><li><p>Claude Desktop </p></li><li><p>Claude 4 [Opus/Sonnet]</p></li><li><p>MongoDB + MCP</p></li><li><p>Filesystem MCP</p></li><li><p>GCal &amp; Gmail integrations</p></li><li><p>Obsidian / Zed [to view briefings]</p></li><li><p>Wispr Flow / superwhisper [voice input]</p></li><li><p>v0 + Vercel [dashboard &#8594; optional] </p></li></ul><h3>Why I Built This Assistant</h3><p>It&#8217;s time to admit it: <strong>traditional productivity software is broken.</strong></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.agentsworkshop.ai/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">AgentsWorkshop is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p><strong>It forces you to:</strong></p><ul><li><p>Copy-paste things between different apps</p></li><li><p>Work as a data entry clerk</p></li><li><p>Constantly keep in mind dependencies</p></li></ul><p>It&#8217;s just exhausting!</p><p>Automations and AI workflows helped a bit. <br>But the main problem remains: <strong>they hold only limited context.<br></strong>[not seeing the full picture of your business].</p><p>They can sync data, but they don't know <strong>WHAT matters &amp; WHY.</strong></p><p>So I built an agent that holds <strong>the FULL CONTEXT of my business:</strong> </p><ul><li><p>My goals and priorities</p></li><li><p>Tasks, projects, clients</p></li><li><p>Structure and dependencies</p></li><li><p>Current state of affairs</p></li></ul><p><strong>Now I can simply dictate:</strong> </p><p><em>&#8220;Meeting with Sam done - he approved the project, wants to start in July. Update proposal status. BTW add 2 new subscriptions to tracker, and prepare full briefing on tomorrow's priorities&#8221;</em></p><p>Assistant breaks it down, syncs everything, and gives me an updated briefing.</p><p><strong>I use it to:</strong> </p><ul><li><p>Stay on top of tasks &amp; projects</p></li><li><p>Track my CRM &amp; opportunities</p></li><li><p>Better manage my schedule</p></li><li><p>Automate my finances</p></li></ul><p><strong>Extensive knowledge helps it to be very smart, contextual and precise.</strong></p><p>The agent-first productivity is here!</p><p>If you're still alt-tabbing between 5 apps &amp; wasting time on data entry ... ngmi</p><p>But no worries you are not late to the party.<br>All this became a reality just a few months ago:<br>with new generation of models [o3, Gemini 2.5 PRO, Claude 4] &amp; updated MCP.</p><p>So let me show you how to build the assistant like that. <br>I broke the whole process into 7 steps.</p><h2>STEPS</h2><p>1&#65039;&#8419; Set up MongoDB free instance [10 minutes]<br>2&#65039;&#8419; Connect MCP servers to Claude Desktop [10 minutes]<br>3&#65039;&#8419; Create your data schema [20 minutes]<br>4&#65039;&#8419; Set up Claude project [30 minutes]<br>5&#65039;&#8419; Set up other integrations (GCal, Gmail) [5 minutes]<br>6&#65039;&#8419; Create daily briefings / dashboard [20 minutes]<br>7&#65039;&#8419; Give it a spin!</p><p>Let's go step by step. I'll provide you with detailed guidelines, prompts, templates, and configs.</p><h3>1&#65039;&#8419; Set up MongoDB free instance</h3><p>I use MongoDB as a memory for the agent and single source of truth for everything that is happening in my business.</p><h4>Why MongoDB?</h4><p><strong>Mongo is super flexible.</strong> Way more flexible than traditional SQL databases.<br>SQL forces everything into rigid tables with predefined columns. MongoDB stores "documents" &#8594; flexible containers that hold whatever information you need.</p><p>Need to add a new field? Just add it. No restructuring required.</p><p><strong>This flexibility is perfect for AI assistants.</strong> </p><p>Let&#8217;s set it up!</p><h4>STEPS</h4><p><strong>[1] Create Your Account</strong></p><ul><li><p>Go to <a href="https://www.mongodb.com/atlas">mongodb.com/atlas</a></p></li><li><p>Sign up with Google or email</p></li></ul><p><strong>[2] Create your free cluster</strong></p><ul><li><p>After signing in, click <strong>Create cluster</strong></p></li><li><p>Choose the FREE tier</p></li><li><p>Pick your cloud provider [AWS is fine]</p></li><li><p>Choose the region closest to you</p></li><li><p>Name your cluster something simple like "business-assistant"</p></li><li><p>Click <strong>Create Deployment</strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7cT1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f378abb-ace2-4519-9fd6-0c12067983ce_1127x639.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7cT1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f378abb-ace2-4519-9fd6-0c12067983ce_1127x639.png 424w, https://substackcdn.com/image/fetch/$s_!7cT1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f378abb-ace2-4519-9fd6-0c12067983ce_1127x639.png 848w, https://substackcdn.com/image/fetch/$s_!7cT1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f378abb-ace2-4519-9fd6-0c12067983ce_1127x639.png 1272w, https://substackcdn.com/image/fetch/$s_!7cT1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f378abb-ace2-4519-9fd6-0c12067983ce_1127x639.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7cT1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f378abb-ace2-4519-9fd6-0c12067983ce_1127x639.png" width="1127" height="639" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2f378abb-ace2-4519-9fd6-0c12067983ce_1127x639.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:639,&quot;width&quot;:1127,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:79229,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://agentsworkshop.substack.com/i/166962266?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f378abb-ace2-4519-9fd6-0c12067983ce_1127x639.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7cT1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f378abb-ace2-4519-9fd6-0c12067983ce_1127x639.png 424w, https://substackcdn.com/image/fetch/$s_!7cT1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f378abb-ace2-4519-9fd6-0c12067983ce_1127x639.png 848w, https://substackcdn.com/image/fetch/$s_!7cT1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f378abb-ace2-4519-9fd6-0c12067983ce_1127x639.png 1272w, https://substackcdn.com/image/fetch/$s_!7cT1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f378abb-ace2-4519-9fd6-0c12067983ce_1127x639.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>[3] Get your connection string</strong></p><p>After your cluster deploys (takes 1-3 minutes), MongoDB will provide a connection string. It&#8217;s gonna look something like this:</p><pre><code><code>mongodb+srv://claude-assistant:&lt;password&gt;@cluster0.xxxxx.mongodb.net/?retryWrites=true</code></code></pre><p><strong>This is the only thing you need to connect MongoDB to Claude via MCP.</strong> <br>Save it &#8594; we'll use it on the next step. </p><h3>2&#65039;&#8419; Connect MCP servers to Claude Desktop</h3><h4>What is MCP?</h4><p>Model Context Protocol (MCP) is an open protocol that standardizes how LLMs/Agents interact with apps / tools / data sources.</p><p>It's essentially a smart API that:</p><ul><li><p>Provides the connection protocol</p></li><li><p>Contains instructions for the agent on how to use this protocol</p></li></ul><p><strong>With MCP Claude can skilfully use many tools. <br></strong>To set up MCPs you need to install Claude Desktop. <br>And you need to have Pro or Max subscription.</p><div class="pullquote"><p><strong>Important constraint:</strong> MongoDB MCP doesn't work on mobile (MCP servers run on your local computer). That's going to change: the wave of cloud MCP is coming. Soon you will be able to access tools through MCP on mobile too.</p></div><h4>STEPS</h4><p><strong>[0] Set up your first MCP server</strong></p><p>If you've never used MCP &#8594; start with the <strong>Filesystem MCP</strong> [we'll need it later anyway]. This MCP allows Claude to read/write files on your local computer in specific folders.</p><p>Here is <strong><a href="https://modelcontextprotocol.io/quickstart/user">the official guide</a></strong> on how to set it up.</p><p>When you are done  &#8594; test it with a prompt: </p><pre><code>Create a text file with &#8220;Hello world&#8221; inside</code></pre><p>Check if the file was successfully created.</p><p><strong>Perfect &#9745;&#65039;</strong></p><p><strong>[1] Set up MongoDB MCP</strong></p><p>Now let's connect <a href="https://github.com/mongodb-js/mongodb-mcp-server">MongoDB MCP</a>.</p><p>Add this part to your Claude Desktop config:</p><pre><code>{
  "mcpServers": {
    "MongoDB": {
      "command": "npx",
      "args": [
        "-y",
        "mongodb-mcp-server",
        "--connectionString",
        "mongodb://localhost:27017/myDatabase"
      ]
    }
  }
}</code></pre><p><strong>Change connection string to the one we got on the first step.</strong><br>Your config will look like this:</p><pre><code><code>{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/username/Desktop",
        "/Users/username/Downloads"
      ]
    },
    "MongoDB": {
      "command": "npx",
      "args": [
        "-y",
        "mongodb-mcp-server",
        "--connectionString",
        "mongodb+srv://claude-assistant:&lt;password&gt;@cluster0.xxxxx.mongodb.net/"
      ]
    }
  }
}
</code></code></pre><p><strong>[2] DOUBLECHECK&#128064; </strong></p><p><strong>It should have:</strong></p><ul><li><p>Real <strong>username</strong> for filesystem</p></li><li><p>Your <strong>connection string</strong> for MongoDB</p></li><li><p>Config file formatted correctly (ask Claude or other LLM to verify it if you are not sure)</p></li></ul><p><strong>Now your Claude is connected to MongoDB MCP and ready to access your database &#9745;&#65039;</strong></p><p>Time to put some stuff in there!</p><h3>3&#65039;&#8419; Create your data schema</h3><p>In MongoDB data is stored in JSON-like format.</p><p>Claude will help you to create a collection for each data type. Most basic ones:</p><ul><li><p>tasks</p></li><li><p>projects  </p></li><li><p>people</p></li><li><p>opportunities</p></li><li><p>expenses</p></li></ul><p>Think of <strong>a collection</strong> as <strong>a table</strong> in traditional database.</p><h4>STEPS</h4><p><strong>[1] Define the basic data structure for each collection</strong></p><p>This is where MongoDB's power shines: you don't have to make it rigid and follow it for every item.<br><strong>New entries can miss fields or introduce new fields.</strong></p><p><strong>Example: projects collection</strong></p><pre><code>[
  {
    "_id": "wonka_consumer_research_2025",
    "name": "Wonka Consumer Research Project",
    "description": "Research for Wonka Industries new product line",
    "status": "active",
    "client": "Wonka Industries",
    "budget": 25000,
    "currency": "USD"
  },
  {
    "_id": "finance",
    "name": "Finance &amp; Administration",
    "description": "Expense reporting &amp; budget tracking",
    "status": "ongoing"
  }
]</code></pre><p>Notice how these two entries share some fields but not others. <br>But all of them have unique IDs (slugs). We will use them to make connections.<br>BTW you do not have to input them yourself &#8594; <strong>Claude will do it for you.</strong></p><p><strong>[2] Connect collections</strong></p><p>Now here's how you connect tasks with projects using <strong>ID</strong> (slug):</p><pre><code>[
  {
    "_id": "reply_client_email_sarah_timeline",
    "title": "Reply to Sarah's email about project timeline",
    "projectId": "wonka_consumer_research_2025",
    "priority": "MEDIUM",
    "deadline": "2025-06-28",
    "status": "todo"
  },
  {
    "_id": "submit_expense_report_may_2025",
    "title": "Submit May expense report",
    "projectId": "finance",
    "priority": "HIGH",
    "deadline": "2025-06-30",
    "notes": "Include receipts from client lunch and conference travel",
    "status": "done"
  }
]</code></pre><p>In <strong>tasks collection</strong> you need to have <strong>projectId</strong> field.</p><p><strong>[3] Customize structures</strong></p><p>Add relevant fields. Think about what fields might be unique to your business / your personal style.</p><p><strong>For example:</strong></p><p><code>invoiceTerms, dependencies, stakeholders, recurrence</code></p><p>Ask Claude to help you to design your schema.<br><strong>When satisfied &#8594; move to the next step</strong>.</p><p><strong>[4] Customize structures</strong></p><p>Make sure you have MongoDB MCP connected:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tXeK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51333a08-84fa-4771-9e27-06c05549ed95_1828x1068.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tXeK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51333a08-84fa-4771-9e27-06c05549ed95_1828x1068.png 424w, https://substackcdn.com/image/fetch/$s_!tXeK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51333a08-84fa-4771-9e27-06c05549ed95_1828x1068.png 848w, https://substackcdn.com/image/fetch/$s_!tXeK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51333a08-84fa-4771-9e27-06c05549ed95_1828x1068.png 1272w, https://substackcdn.com/image/fetch/$s_!tXeK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51333a08-84fa-4771-9e27-06c05549ed95_1828x1068.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tXeK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51333a08-84fa-4771-9e27-06c05549ed95_1828x1068.png" width="1456" height="851" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/51333a08-84fa-4771-9e27-06c05549ed95_1828x1068.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:851,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:73768,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://agentsworkshop.substack.com/i/166962266?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51333a08-84fa-4771-9e27-06c05549ed95_1828x1068.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!tXeK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51333a08-84fa-4771-9e27-06c05549ed95_1828x1068.png 424w, https://substackcdn.com/image/fetch/$s_!tXeK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51333a08-84fa-4771-9e27-06c05549ed95_1828x1068.png 848w, https://substackcdn.com/image/fetch/$s_!tXeK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51333a08-84fa-4771-9e27-06c05549ed95_1828x1068.png 1272w, https://substackcdn.com/image/fetch/$s_!tXeK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51333a08-84fa-4771-9e27-06c05549ed95_1828x1068.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Ask Claude to create the collections with your real data.</p><p><strong>Use these prompts:</strong></p><pre><code>Create MongoDB collection 'projects' and add data: 
&lt;paste your projects in structured format&gt;</code></pre><pre><code>Create collection 'tasks', connect to relevant projects via projectId. data:
&lt;paste your tasks in structured format&gt;</code></pre><div class="pullquote"><p><strong>Important:</strong> use Opus 4 / Sonnet 4 Models with Extended Thinking enabled.</p></div><p>Once you have real data in MongoDB, it's time to set up the agent.<br>We will use Claude Project for that.</p><h3>4&#65039;&#8419; Set up your Claude Project</h3><p>Claude is not just a chatbot. It has agentic abilities:<br>it can make decisions, use tools and take actions. </p><p>You can think of Claude Project as agent template. It allows you to define a consistent identity &amp; instructions with a system prompt. Plus add specific knowledge to your agent.</p><h4>Steps</h4><p><strong>[1] Create your project</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WZrr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b47dfa6-2e28-43f9-a5d2-bfb7f1c4f380_1810x1050.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WZrr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b47dfa6-2e28-43f9-a5d2-bfb7f1c4f380_1810x1050.png 424w, https://substackcdn.com/image/fetch/$s_!WZrr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b47dfa6-2e28-43f9-a5d2-bfb7f1c4f380_1810x1050.png 848w, https://substackcdn.com/image/fetch/$s_!WZrr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b47dfa6-2e28-43f9-a5d2-bfb7f1c4f380_1810x1050.png 1272w, https://substackcdn.com/image/fetch/$s_!WZrr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b47dfa6-2e28-43f9-a5d2-bfb7f1c4f380_1810x1050.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WZrr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b47dfa6-2e28-43f9-a5d2-bfb7f1c4f380_1810x1050.png" width="1456" height="845" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4b47dfa6-2e28-43f9-a5d2-bfb7f1c4f380_1810x1050.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:845,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:74650,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://agentsworkshop.substack.com/i/166962266?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b47dfa6-2e28-43f9-a5d2-bfb7f1c4f380_1810x1050.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WZrr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b47dfa6-2e28-43f9-a5d2-bfb7f1c4f380_1810x1050.png 424w, https://substackcdn.com/image/fetch/$s_!WZrr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b47dfa6-2e28-43f9-a5d2-bfb7f1c4f380_1810x1050.png 848w, https://substackcdn.com/image/fetch/$s_!WZrr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b47dfa6-2e28-43f9-a5d2-bfb7f1c4f380_1810x1050.png 1272w, https://substackcdn.com/image/fetch/$s_!WZrr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b47dfa6-2e28-43f9-a5d2-bfb7f1c4f380_1810x1050.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p>Give it a name and description</p></li><li><p>Project becomes your <strong>dedicated workspace</strong></p></li></ul><p><strong>[2] Add your system prompt</strong></p><p>The system prompt defines your agent's identity and how it should use tools. </p><p><strong>Balance is key here:</strong></p><ul><li><p>If prompt is too strict &#8594; it will limit autonomous thinking</p></li><li><p>If prompt is too vague &#8594; agent&#8217;s behaviour will be inconsistent and misaligned</p></li></ul><p>Here's a template you can start with:</p><pre><code>&lt;!-- Template Usage: Replace {{placeholder}} with your specific information. Comments provide examples and guidance. --&gt;
ROLE: Business and work management assistant

## Coordinate Work  
Manage my workflow utilizing these native entities:  
**tasks** [work tasks] the atomic, actionable step  
**projects** &#8211; projects, products, or ongoing responsibilities
**{{YOUR_OTHER_ENTITIES}}**
&lt;!-- Examples: goals, habits, expenses, etc. --&gt;

IMPORTANT: Resources are stored in MongoDB in {{DATABASE_NAME}} database in collections:
&lt;!-- Replace DATABASE_NAME with your actual one, for example: business-assistant --&gt;
tasks, contacts, projects, {{YOUR_OTHER_COLLECTIONS}}

Day-to-day briefings stored in local files in this format:
work-briefing-&lt;DATE&gt;.md
Briefings act as daily todo lists.
The updated form should be reflected in MongoDB

MongoDB - single source of truth
Local briefing files - fleeting todos
use reference.md as an inspiration structure for daily briefings

## Calendar
You have access to my Google Calendar
Consider it when relevant

## Relationship Management  
Track contacts, opportunities, and relationships for:  
**Professional Network**  
**Client Relations**
**Personal Connections**
**{{YOUR_RELATIONSHIP_CATEGORIES}}**
&lt;!-- Examples: Industry contacts, mentors, collaborators, vendors, etc. --&gt;

## Content &amp; Communication  
Plan, schedule, and repurpose material across:  
**X/Twitter**
**Newsletter**
**{{YOUR_CONTENT_PLATFORMS}}**

## {{YOUR_OTHER_AREAS_AND_TOOLS}}
&lt;!-- Example areas: personal growth, finance, etc. --&gt;
&lt;!-- Example tools: email, GoogleDrive, Notion, etc. --&gt;

---
# HOW

# How to Assist
**Ingest &amp; Organize** &#8211; Extract items and translate them into the correct entities (Task, Project, Contact and so on).  
**Surface What Matters** &#8211; Proactively highlight high-impact Projects, important contacts, and upcoming deadlines.  
**Suggest Next Actions** &#8211;Try to recommend concrete, appropriately sized Tasks.  
**Keep Everything Linked** &#8211; Ensure each contact, project, task and other items have references / are referenced (where relevant).  
**Maintain Momentum** &#8211; Offer clear priorities, checklists, and lightweight dashboards while respecting the preferred structure above.

## Communication Style
Be concise but actionable.  
Use plain language; avoid jargon unless it's already in use.  
Ask clarifying questions only when information is missing or ambiguous.

## VALUE
Remember: Your value lies in turning scattered items, notes, ideas, and opportunities into an integrated engine that advances the business, delights clients, and ships content consistently.
</code></pre><p>Adjust it to match your business needs &amp; structure.</p><p><strong>[3] Add business knowledge</strong></p><p>Don't try to put everything into the system prompt.<br>Instead, add specific knowledge to the project context &#8594; Claude uses RAG (Retrieval Augmented Generation) to access it efficiently.</p><p>Examples of what to add:</p><ul><li><p>Service offerings</p></li><li><p>Client and partnership information</p></li><li><p>Operating procedures</p></li><li><p>Pricing structures</p></li><li><p>Team roles and responsibilities</p></li><li><p>Hiring practices</p></li></ul><p><strong>Boom! Now your agent is operational &#9745;&#65039;</strong></p><div class="pullquote"><p><strong>Important:</strong> to work with the business assistant &#8594; always start new chats WITHIN your project. This ensures Claude uses the system prompt and access to knowledge.</p></div><h3>5&#65039;&#8419; Set up additional Integrations/tools</h3><p>Let&#8217;s integrate some useful tools.</p><p><strong>STEPS</strong></p><p><strong>[1] Integrate calendar &amp; email</strong></p><p>Connect Claude to your Gmail &amp; Google Calendar natively using integrations available in Claude Desktop: simply click <strong>Connect</strong> and authenticate Claude using your Google account.</p><p>To connect Claude to different providers like Outlook or Microsoft 365 &#8594; use <a href="https://github.com/modelcontextprotocol/servers">MCP</a>.</p><div class="pullquote"><p><strong>IMPORTANT:</strong> Some MCP servers are made by independent developers and might not be secure. Always check who made the MCP service you're using and whether you can trust this provider.</p></div><p><strong>[2] Add voice input</strong></p><p>At the moment, Claude Desktop doesn't have native voice input. <br>So you need a tool for that.</p><p>I use <a href="https://wisprflow.ai/">Wispr Flow</a> [Mac]. It's the fastest and most accurate Speech &#8594; Text translator I know.</p><p><a href="https://superwhisper.com/">superwhisper</a> would be another good option. </p><p><strong>Now Claude has access to more contexts and you can talk to it &#9745;&#65039;</strong></p><h3>6&#65039;&#8419; Create daily briefings / dashboards</h3><p><strong>Your assistant is fully operational and you can interact with it via chat interface.</strong></p><p><strong>But it&#8217;s not always optimal.</strong></p><p>Sometimes you still want to have GUI (Graphical User Interface) to interact:<br>dashboard, to-do list, kanban. Something familiar for contextual input / adjustments.</p><p>Here is how you can do it:</p><h4><strong>Option 1: Markdown daily briefings [EASY]</strong></h4><p>The simplest approach is to use markdown:<br>Fleeting documents that provide a snapshot of your business on a given day.</p><p>Here's an example (in Obsidian):</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ALCm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6555b00-7037-4f78-a3f5-dfdb10b3d531_4750x2548.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ALCm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6555b00-7037-4f78-a3f5-dfdb10b3d531_4750x2548.png 424w, https://substackcdn.com/image/fetch/$s_!ALCm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6555b00-7037-4f78-a3f5-dfdb10b3d531_4750x2548.png 848w, https://substackcdn.com/image/fetch/$s_!ALCm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6555b00-7037-4f78-a3f5-dfdb10b3d531_4750x2548.png 1272w, https://substackcdn.com/image/fetch/$s_!ALCm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6555b00-7037-4f78-a3f5-dfdb10b3d531_4750x2548.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ALCm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6555b00-7037-4f78-a3f5-dfdb10b3d531_4750x2548.png" width="1456" height="781" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a6555b00-7037-4f78-a3f5-dfdb10b3d531_4750x2548.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:781,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1073034,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.agentsworkshop.ai/i/166962266?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6555b00-7037-4f78-a3f5-dfdb10b3d531_4750x2548.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ALCm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6555b00-7037-4f78-a3f5-dfdb10b3d531_4750x2548.png 424w, https://substackcdn.com/image/fetch/$s_!ALCm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6555b00-7037-4f78-a3f5-dfdb10b3d531_4750x2548.png 848w, https://substackcdn.com/image/fetch/$s_!ALCm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6555b00-7037-4f78-a3f5-dfdb10b3d531_4750x2548.png 1272w, https://substackcdn.com/image/fetch/$s_!ALCm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6555b00-7037-4f78-a3f5-dfdb10b3d531_4750x2548.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>It&#8217;s well structured and you can use mermaid diagrams.</p><p>To set this up:</p><p><strong>[1]</strong> Add formatting rules to your system prompt</p><pre><code>## USE these work-briefing formatting rules

Optimization
- **NO** backticks for emphasis
- **NO** HTML tags
- **USE** bold text for important items
- **USE** Mermaid diagrams: `pie`, `timeline`, `quadrantChart`

Callout Strategy
- **Only 4-5 callouts** per document
- **Position:** Next to headers, NOT containing content
- **Purpose:** Navigation and context only

```markdown
&gt; [!danger] Impact Alert
&gt; Context about risks, not the tasks themselves
```

Key Principles
1. **Tables:** Use markdown tables for structured data
2. **Checkboxes:** `- [ ]` for all actionable items
3. **Emphasis:** Bold text, not backticks
4. **Visual bars:** Use &#9608; and &#9617; for progress
5. **Sections:** Clear with `---` dividers

Remember
- Callouts = Context providers, not containers
- Mermaid = Visual intelligence
- Tables = Structured data
- Bold = Important text
- Emojis = Quick scanning

use briefing template: briefing_template.md</code></pre><p><strong>[2]</strong> Upload <strong><a href="https://www.dropbox.com/scl/fi/qwrg74s0vmeu6xg0g45f1/briefing_template.md?rlkey=ekhksyzsdfv83uvm63rrxbbch&amp;st=07q80jjr&amp;dl=0">briefing template</a></strong> to Claude Project</p><p><strong>[3]</strong> Use the Filesystem MCP to write daily briefings directly to your system.</p><p><strong>Prompt:</strong></p><pre><code>Create a full daily briefing for me &lt;current date&gt;</code></pre><p><strong>[4]</strong> Use Obsidian / Zed / Cursor or any other MD editor to view briefings and make changes.</p><p><strong>Important:</strong> When you manually edit a briefing, tell Claude explicitly: </p><pre><code>I've updated the briefing, please sync these changes to MongoDB</code></pre><h4><strong>Option 2: MongoDB Compass [MEDIUM]</strong></h4><p>MongoDB has a visual client: <a href="https://www.mongodb.com/products/tools/compass">Compass</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2GGj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06445c05-9328-4640-a136-db443e0b2b30_2790x1610.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2GGj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06445c05-9328-4640-a136-db443e0b2b30_2790x1610.png 424w, https://substackcdn.com/image/fetch/$s_!2GGj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06445c05-9328-4640-a136-db443e0b2b30_2790x1610.png 848w, https://substackcdn.com/image/fetch/$s_!2GGj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06445c05-9328-4640-a136-db443e0b2b30_2790x1610.png 1272w, https://substackcdn.com/image/fetch/$s_!2GGj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06445c05-9328-4640-a136-db443e0b2b30_2790x1610.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2GGj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06445c05-9328-4640-a136-db443e0b2b30_2790x1610.png" width="1456" height="840" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/06445c05-9328-4640-a136-db443e0b2b30_2790x1610.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:840,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:222005,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.agentsworkshop.ai/i/166962266?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06445c05-9328-4640-a136-db443e0b2b30_2790x1610.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!2GGj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06445c05-9328-4640-a136-db443e0b2b30_2790x1610.png 424w, https://substackcdn.com/image/fetch/$s_!2GGj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06445c05-9328-4640-a136-db443e0b2b30_2790x1610.png 848w, https://substackcdn.com/image/fetch/$s_!2GGj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06445c05-9328-4640-a136-db443e0b2b30_2790x1610.png 1272w, https://substackcdn.com/image/fetch/$s_!2GGj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06445c05-9328-4640-a136-db443e0b2b30_2790x1610.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>You can view / query / filter / edit your data using a relatively simple UI.</p><h4><strong>Option 3: Web-app dashboard [ADVANCED]</strong></h4><p>The more advanced approach:<br>building a proper dashboard on top of MongoDB.</p><p>It can be fully customized to show your tasks, projects and other items in a structured, familiar interface.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6hXm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffebcfc9c-916c-4347-a640-07b45b176801_3560x2208.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6hXm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffebcfc9c-916c-4347-a640-07b45b176801_3560x2208.png 424w, https://substackcdn.com/image/fetch/$s_!6hXm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffebcfc9c-916c-4347-a640-07b45b176801_3560x2208.png 848w, https://substackcdn.com/image/fetch/$s_!6hXm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffebcfc9c-916c-4347-a640-07b45b176801_3560x2208.png 1272w, https://substackcdn.com/image/fetch/$s_!6hXm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffebcfc9c-916c-4347-a640-07b45b176801_3560x2208.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6hXm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffebcfc9c-916c-4347-a640-07b45b176801_3560x2208.png" width="1456" height="903" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/febcfc9c-916c-4347-a640-07b45b176801_3560x2208.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:903,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:303291,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.agentsworkshop.ai/i/166962266?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffebcfc9c-916c-4347-a640-07b45b176801_3560x2208.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6hXm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffebcfc9c-916c-4347-a640-07b45b176801_3560x2208.png 424w, https://substackcdn.com/image/fetch/$s_!6hXm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffebcfc9c-916c-4347-a640-07b45b176801_3560x2208.png 848w, https://substackcdn.com/image/fetch/$s_!6hXm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffebcfc9c-916c-4347-a640-07b45b176801_3560x2208.png 1272w, https://substackcdn.com/image/fetch/$s_!6hXm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffebcfc9c-916c-4347-a640-07b45b176801_3560x2208.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">v0. Dashboard prototype </figcaption></figure></div><p>I use v0 + Vercel + MongoDB for this. </p><p>v0 can easily generate dashboard prototype for you. Yet syncing it with MongoDB requires some coding/deployment skills. </p><div class="pullquote"><p>It&#8217;s gonna be a bit too much for this guide.<br>If you're interested in the full tutorial, drop me a comment and I'll create a dedicated guide.</p></div><p><strong>And there you have it! We&#8217;re all set &#9745;&#65039;</strong></p><h3>7&#65039;&#8419; Give it a spin!</h3><p>Your system is fully operational. Time to test it!</p><p>Try these prompts:</p><pre><code>Give me today's briefing</code></pre><pre><code>What are my most important opportunities?</code></pre><pre><code>Show me all upcoming deadlines</code></pre><pre><code>Which clients haven't I contacted in 30+ days? 
Create a contact strategy to reach them</code></pre><pre><code>Create an action plan for next week's priorities</code></pre><pre><code>Add task X and make it priority for today</code></pre><p><strong>Watch as Claude:</strong></p><ul><li><p>breaks down requests into granular items</p></li><li><p>connects the dots between scattered emails, meetings &amp; tasks</p></li><li><p>analyzes your business situation 360&#176;</p></li><li><p>creates contextual artefacts &amp; strategies</p></li><li><p>evaluates opportunities and risks</p></li></ul><p><strong>This is your new business powerhouse &#9745;&#65039;</strong></p><h2>Wrapping Up</h2><p>For me this build was life-changing!</p><p>Instead of being a data clerk for clunky productivity tools, I now just talk to Claude.<br>It handles the tedious stuff while surfacing patterns &amp; opportunities I was too busy to see.</p><p>With memory features coming soon, it'll get even smarter: remembering our interactions and considering them every time we speak <strong>[additional layer of memory to MongoDB]</strong></p><p><strong>Not everything will be smooth of course.</strong> <br><strong>Expect some rough edges:</strong></p><ul><li><p>Your first version won't be perfect</p></li><li><p>MCPs occasionally glitch</p></li><li><p>Claude might confuse tools (for example: create files when you want chat responses &#8594; just say "return in chat, don't create a file"</p></li><li><p>You still need to do some manual input and clean-up </p><p>[<strong>for example:</strong> deleting out-of-date briefings to avoid context poisoning]</p></li></ul><p><strong>You'll hit some paper cuts &amp; bugs for sure.</strong></p><p><strong>But it should not stop you!</strong> Spend time with your agent. Tweak the system prompt. Update the knowledge base. Give it feedback.</p><p>Within a month of daily use, it'll be aligned with you almost perfectly. <br>And with new models &amp; MCP updates, your assistant will keep getting better.</p><p>You're not just building a tool. <br><strong>You're building a partner that evolves with you, making you more productive and less overwhelmed every single day.</strong><br><br></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.agentsworkshop.ai/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">AgentsWorkshop is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[AGENTIC PERIODIC TABLE]]></title><description><![CDATA[Universal Framework for AI Agent Design & Development]]></description><link>https://www.agentsworkshop.ai/p/agentic-periodic-table</link><guid isPermaLink="false">https://www.agentsworkshop.ai/p/agentic-periodic-table</guid><dc:creator><![CDATA[Andrew Altshuler]]></dc:creator><pubDate>Thu, 05 Jun 2025 15:49:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!V1fW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba04d5aa-a314-4147-b254-5eaf65fb0050_3478x2158.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The agent-building landscape today is pretty mad.</p><p>In just a few years, the whole thing exploded from simple chatbots into a maze-like ecosystems of tools, platforms, and frameworks.</p><p>It is defined by:</p><p><strong>COMPLEXITY</strong> </p><p>Agents integrate dozens of moving parts &#8594; LLMs, vector stores, orchestration layers, guardrails, feedback loops&#8230; The overall system quickly becomes too tangled to understand.</p><p><strong>WARP SPEED EVOLUTION</strong></p><p>Yesterday's best practice is today's legacy. Everything feels like it's changing constantly.</p><blockquote><p>As someone who is pretty good at keeping up with AI, I can barely keep up with it all. That leads me to believe that very few other people are keeping up, either</p><p>&#8212;Ethan Mollick</p></blockquote><p><strong>SCATTERED KNOWLEDGE</strong> </p><p>Insights hide in industry newsletters, GitHub docs, conference videos, and Slack communities. </p><p>All this creates <strong>CONFUSION</strong>.<br>Multiplied by social media where buzzwords spread faster than careful explanations.</p><p><strong>The Agentic Periodic Table</strong> is my attempt to break these vicious loops.</p><ul><li><p>Untangle the complexity</p></li><li><p>Provide scaffolding for agent builders</p></li><li><p>Give teams a shared vocabulary</p></li><li><p>Establish a tracking system for industry updates</p></li><li><p>Give newcomers a clear map to the landscape</p></li></ul><p>Let&#8217;s dive into it!</p><h2>FRAMEWORK</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!V1fW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba04d5aa-a314-4147-b254-5eaf65fb0050_3478x2158.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!V1fW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba04d5aa-a314-4147-b254-5eaf65fb0050_3478x2158.png 424w, https://substackcdn.com/image/fetch/$s_!V1fW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba04d5aa-a314-4147-b254-5eaf65fb0050_3478x2158.png 848w, https://substackcdn.com/image/fetch/$s_!V1fW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba04d5aa-a314-4147-b254-5eaf65fb0050_3478x2158.png 1272w, https://substackcdn.com/image/fetch/$s_!V1fW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba04d5aa-a314-4147-b254-5eaf65fb0050_3478x2158.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!V1fW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba04d5aa-a314-4147-b254-5eaf65fb0050_3478x2158.png" width="1456" height="903" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ba04d5aa-a314-4147-b254-5eaf65fb0050_3478x2158.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:903,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:349510,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://agentsworkshop.substack.com/i/164633987?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba04d5aa-a314-4147-b254-5eaf65fb0050_3478x2158.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!V1fW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba04d5aa-a314-4147-b254-5eaf65fb0050_3478x2158.png 424w, https://substackcdn.com/image/fetch/$s_!V1fW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba04d5aa-a314-4147-b254-5eaf65fb0050_3478x2158.png 848w, https://substackcdn.com/image/fetch/$s_!V1fW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba04d5aa-a314-4147-b254-5eaf65fb0050_3478x2158.png 1272w, https://substackcdn.com/image/fetch/$s_!V1fW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba04d5aa-a314-4147-b254-5eaf65fb0050_3478x2158.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In a nutshell it goes like this:</p><p>AI agents &#8594; autonomous systems powered by LLMs.<br>They possess distinct <strong>Characteristics &amp; Attributes<br></strong>Agents can perform a number of <strong>Activities<br></strong>They are constructed from key <strong>Building Blocks<br></strong>Agents interact following certain <strong>Patterns</strong>.<br>You can employ ready-to-use agents.<br>Or build your own using different approaches.<br>Custom agents need continuous <strong>Ops</strong> to remain robust.</p><p>Now let&#8217;s explore each category.</p><h2>ATTRIBUTES</h2><p>An agent begins with a clear <strong>Goal</strong> and a stable <strong>Identity.<br>Goal</strong> &#8594; the specific outcome the agent is built to deliver.<br><strong>Identity</strong> &#8594; a fixed persona and purpose that shape responses and actions.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bRkD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5781e456-9742-4d9e-a8de-50bdba3f90b2_1984x1668.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bRkD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5781e456-9742-4d9e-a8de-50bdba3f90b2_1984x1668.png 424w, https://substackcdn.com/image/fetch/$s_!bRkD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5781e456-9742-4d9e-a8de-50bdba3f90b2_1984x1668.png 848w, https://substackcdn.com/image/fetch/$s_!bRkD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5781e456-9742-4d9e-a8de-50bdba3f90b2_1984x1668.png 1272w, https://substackcdn.com/image/fetch/$s_!bRkD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5781e456-9742-4d9e-a8de-50bdba3f90b2_1984x1668.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bRkD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5781e456-9742-4d9e-a8de-50bdba3f90b2_1984x1668.png" width="1456" height="1224" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5781e456-9742-4d9e-a8de-50bdba3f90b2_1984x1668.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1224,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:166326,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://agentsworkshop.substack.com/i/164633987?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5781e456-9742-4d9e-a8de-50bdba3f90b2_1984x1668.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!bRkD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5781e456-9742-4d9e-a8de-50bdba3f90b2_1984x1668.png 424w, https://substackcdn.com/image/fetch/$s_!bRkD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5781e456-9742-4d9e-a8de-50bdba3f90b2_1984x1668.png 848w, https://substackcdn.com/image/fetch/$s_!bRkD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5781e456-9742-4d9e-a8de-50bdba3f90b2_1984x1668.png 1272w, https://substackcdn.com/image/fetch/$s_!bRkD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5781e456-9742-4d9e-a8de-50bdba3f90b2_1984x1668.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">IDENTITY: Email Assistant. Built with Zapier AGENTS</figcaption></figure></div><p>To achieve its goals, an agent relies on <strong>Working Memory</strong> to hold active context and <strong>Long-term Memory</strong> to retain knowledge across sessions.</p><p><strong>Identity</strong> &amp; <strong>goals</strong> are stored in long term memory.</p><p>The agent can take <strong>Actions</strong> using a curated set of <strong>Tools</strong> (browser, web-search,  code execution and so on).</p><p><strong>Actions</strong> influence the <strong>Environment</strong> &#8594; the digital or physical space the agent operates.</p><p><strong>Internal State</strong> &#8594; a live snapshot of what the agent is currently doing: <br>&#8220;I&#8217;m planning, writing code, accessing an API right now&#8221;<br><br><strong>Control Flow</strong> &#8594; logic that picks the next step (change <strong>Internal State)</strong>. <br>Agents often use <strong>Loops </strong>in the control flow to iterate and improve outcomes.</p><p>Throughout operation, <strong>Guardrails</strong> (safety constraints) ensure safety boundaries. </p><p>Most common <strong>Guardrails: Human-in-the-Loop</strong> checkpoints &#8594; where people review or override decisions.</p><p>Efficiency of the agent can be measured by <strong>Latency</strong> &amp; <strong>Cost</strong>.<br><strong>Latency</strong> &#8594; time the agent takes to respond or finish a task.<br><strong>Cost</strong> &#8594; resources spent to operate, from tokens to API fees.</p><h2>BUILDING BLOCKS</h2><p>LLM serves as the agent's "brain," enabling it to &#8594; reason, plan &amp; understand <strong>instructions.</strong></p><p><strong>Instructions</strong> explicitly steer the agent's behavior.<br>They include: directives, guidelines, rules, and constraints</p><p><strong>Frameworks</strong> provide the structural scaffolding for agents,<br>integrating models, tools &amp; memory.<br><strong>Frameworks</strong> encapsulate a lot of low-abstraction processes (chat logging, tool choice logic and so on).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uMcs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe198ef99-89bd-4c92-b85a-9e42b5553572_2366x1208.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uMcs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe198ef99-89bd-4c92-b85a-9e42b5553572_2366x1208.png 424w, https://substackcdn.com/image/fetch/$s_!uMcs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe198ef99-89bd-4c92-b85a-9e42b5553572_2366x1208.png 848w, https://substackcdn.com/image/fetch/$s_!uMcs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe198ef99-89bd-4c92-b85a-9e42b5553572_2366x1208.png 1272w, https://substackcdn.com/image/fetch/$s_!uMcs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe198ef99-89bd-4c92-b85a-9e42b5553572_2366x1208.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uMcs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe198ef99-89bd-4c92-b85a-9e42b5553572_2366x1208.png" width="1456" height="743" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e198ef99-89bd-4c92-b85a-9e42b5553572_2366x1208.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:743,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:93505,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://agentsworkshop.substack.com/i/164633987?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe198ef99-89bd-4c92-b85a-9e42b5553572_2366x1208.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!uMcs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe198ef99-89bd-4c92-b85a-9e42b5553572_2366x1208.png 424w, https://substackcdn.com/image/fetch/$s_!uMcs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe198ef99-89bd-4c92-b85a-9e42b5553572_2366x1208.png 848w, https://substackcdn.com/image/fetch/$s_!uMcs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe198ef99-89bd-4c92-b85a-9e42b5553572_2366x1208.png 1272w, https://substackcdn.com/image/fetch/$s_!uMcs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe198ef99-89bd-4c92-b85a-9e42b5553572_2366x1208.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Google ADK</figcaption></figure></div><p><strong>Vector DB + RAG</strong> give the agent an on-demand knowledge base &amp; act like long-term memory. <strong>Vector Databases</strong> store data as embeddings (meaning converted to numbers).<br>Using RAG, the agent pulls the closest matches into its context when needed.</p><p><strong>MCP</strong> acts as a "smart API" that comes with built-in instructions for agents on how to use tools.</p><p><strong>Tools</strong> give the agent hands-on abilities to interact with <strong>Environment</strong>:</p><ul><li><p><strong>Computer use</strong> &#8594; manage files, run terminal commands, interact with a virtual OS</p></li><li><p><strong>Code sandbox</strong> &#8594; safely write and execute code snippets in isolation</p></li><li><p><strong>Browser use</strong> &#8594; open pages, click links, fill forms, scrape content</p></li><li><p><strong>Web search</strong> &#8594; query engines for real-time data &amp; up-to-date knowledge</p></li></ul><p></p><h2>ACTIVITIES</h2><p><strong>Reasoning</strong> &#8594; evaluating information to build logical chains that inform action.</p><p><strong>Planning</strong> &#8594;  breaking complex tasks into manageable steps and sequence them.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lVpp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d95ff3f-17a1-488e-a898-a780d26f47a3_1018x1018.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lVpp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d95ff3f-17a1-488e-a898-a780d26f47a3_1018x1018.png 424w, https://substackcdn.com/image/fetch/$s_!lVpp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d95ff3f-17a1-488e-a898-a780d26f47a3_1018x1018.png 848w, https://substackcdn.com/image/fetch/$s_!lVpp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d95ff3f-17a1-488e-a898-a780d26f47a3_1018x1018.png 1272w, https://substackcdn.com/image/fetch/$s_!lVpp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d95ff3f-17a1-488e-a898-a780d26f47a3_1018x1018.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lVpp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d95ff3f-17a1-488e-a898-a780d26f47a3_1018x1018.png" width="1018" height="1018" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9d95ff3f-17a1-488e-a898-a780d26f47a3_1018x1018.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1018,&quot;width&quot;:1018,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:190585,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://agentsworkshop.substack.com/i/164633987?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d95ff3f-17a1-488e-a898-a780d26f47a3_1018x1018.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lVpp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d95ff3f-17a1-488e-a898-a780d26f47a3_1018x1018.png 424w, https://substackcdn.com/image/fetch/$s_!lVpp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d95ff3f-17a1-488e-a898-a780d26f47a3_1018x1018.png 848w, https://substackcdn.com/image/fetch/$s_!lVpp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d95ff3f-17a1-488e-a898-a780d26f47a3_1018x1018.png 1272w, https://substackcdn.com/image/fetch/$s_!lVpp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d95ff3f-17a1-488e-a898-a780d26f47a3_1018x1018.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Manus creates a todo list for itself</figcaption></figure></div><p><strong>Decision-making</strong> &#8594; autonomously selecting the next action based on goals &amp; context.</p><p><strong>Executing</strong> &#8594; performing the chosen action within the environment using the toolkit.</p><p>Error handling &#8594; detecting failures &amp; trying to solve them</p><p>Self-improvement &#8594; learning from outcomes and updating strategies (updating memory)</p><h2>CHARACTERISTICS</h2><p><strong>Modularity</strong> &#8594; built from interchangeable modules connected by clear I/O interfaces.</p><p><strong>Reliability &amp; safety</strong> &#8594; performs correctly and avoids harmful outcomes.</p><p><strong>Alignment</strong> &#8594; keeps goals and actions consistent with human intent and values.</p><p><strong>Reactivity</strong> &#8594; senses changes and responds in real time.</p><p><strong>Social ability</strong> &#8594; communicates and coordinates with other agents to achieve tasks.</p><p><strong>Autonomy</strong> &#8594; decides and acts without constant human oversight.</p><h2>OPS</h2><p>Once an agentic system is live &#8594; continuous<strong> Ops</strong> keep it reliable, efficient &amp; up-to-date.</p><p><strong>Orchestration</strong> &#8594; coordinating multiple agents, tools, and pipelines into one coherent workflow.</p><p><strong>Deployment</strong> &#8594; packaging your agent and making it easily accessible [just for you, your team, or a larger audience]</p><p><strong>Scaling</strong> &#8594; Expanding agent&#8217;s capabilities &amp; performance, taking it from quick no-code prototype into high-performance products.</p><p><strong>Cost Opt</strong> &#8594; watches spend and routes work through the most economical path.</p><p><strong>The way you choose to implement agents also falls under the Ops umbrella:</strong></p><ul><li><p><strong>Ready-to-Use</strong> &#8594; drop-in agents that work out of the box.</p></li><li><p><strong>No-Code</strong> &#8594; build and adjust agents entirely through visual interfaces.</p></li><li><p><strong>Low-Code</strong> &#8594; mix drag-and-drop blocks with light scripting for extra control.</p></li><li><p><strong>Pro-Code</strong> &#8594; full programmatic access &amp; deep customization.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GyCC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e50a619-e784-4a54-8612-742e13acbc1a_2562x1282.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GyCC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e50a619-e784-4a54-8612-742e13acbc1a_2562x1282.png 424w, https://substackcdn.com/image/fetch/$s_!GyCC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e50a619-e784-4a54-8612-742e13acbc1a_2562x1282.png 848w, https://substackcdn.com/image/fetch/$s_!GyCC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e50a619-e784-4a54-8612-742e13acbc1a_2562x1282.png 1272w, https://substackcdn.com/image/fetch/$s_!GyCC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e50a619-e784-4a54-8612-742e13acbc1a_2562x1282.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GyCC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e50a619-e784-4a54-8612-742e13acbc1a_2562x1282.png" width="1456" height="729" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9e50a619-e784-4a54-8612-742e13acbc1a_2562x1282.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:729,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:170545,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://agentsworkshop.substack.com/i/164633987?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e50a619-e784-4a54-8612-742e13acbc1a_2562x1282.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!GyCC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e50a619-e784-4a54-8612-742e13acbc1a_2562x1282.png 424w, https://substackcdn.com/image/fetch/$s_!GyCC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e50a619-e784-4a54-8612-742e13acbc1a_2562x1282.png 848w, https://substackcdn.com/image/fetch/$s_!GyCC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e50a619-e784-4a54-8612-742e13acbc1a_2562x1282.png 1272w, https://substackcdn.com/image/fetch/$s_!GyCC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e50a619-e784-4a54-8612-742e13acbc1a_2562x1282.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Google ADK &#8594; Pro-Code feels like Low-Code</figcaption></figure></div><h2>Wrapping up</h2><p>So now you have it &#8594; a map. Keep it on the dashboard. Save it, bookmark it, print it, whatever works. </p><p>Use it as a checklist, study guide, or team dictionary. <br>And if it clicks&#8212;drop me a line!</p><p>I'm genuinely curious to hear your story</p>]]></content:encoded></item><item><title><![CDATA[AGENTSWORKSHOP IS LIVE]]></title><description><![CDATA[AI Agents & LLM Workflows for Productivity & Knowledge Work]]></description><link>https://www.agentsworkshop.ai/p/agentsworkshop-is-live</link><guid isPermaLink="false">https://www.agentsworkshop.ai/p/agentsworkshop-is-live</guid><dc:creator><![CDATA[Andrew Altshuler]]></dc:creator><pubDate>Sat, 17 May 2025 11:30:52 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!u-r1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b72b990-0146-4b5b-87d0-11dc99c78340_2688x1792.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!u-r1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b72b990-0146-4b5b-87d0-11dc99c78340_2688x1792.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!u-r1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b72b990-0146-4b5b-87d0-11dc99c78340_2688x1792.png 424w, https://substackcdn.com/image/fetch/$s_!u-r1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b72b990-0146-4b5b-87d0-11dc99c78340_2688x1792.png 848w, https://substackcdn.com/image/fetch/$s_!u-r1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b72b990-0146-4b5b-87d0-11dc99c78340_2688x1792.png 1272w, https://substackcdn.com/image/fetch/$s_!u-r1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b72b990-0146-4b5b-87d0-11dc99c78340_2688x1792.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!u-r1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b72b990-0146-4b5b-87d0-11dc99c78340_2688x1792.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4b72b990-0146-4b5b-87d0-11dc99c78340_2688x1792.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3220330,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://agentsworkshop.substack.com/i/163667053?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b72b990-0146-4b5b-87d0-11dc99c78340_2688x1792.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!u-r1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b72b990-0146-4b5b-87d0-11dc99c78340_2688x1792.png 424w, https://substackcdn.com/image/fetch/$s_!u-r1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b72b990-0146-4b5b-87d0-11dc99c78340_2688x1792.png 848w, https://substackcdn.com/image/fetch/$s_!u-r1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b72b990-0146-4b5b-87d0-11dc99c78340_2688x1792.png 1272w, https://substackcdn.com/image/fetch/$s_!u-r1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b72b990-0146-4b5b-87d0-11dc99c78340_2688x1792.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I&#8217;m launching <strong>AgentsWorkshop</strong>&#9874;&#65039;</p><p><strong>Your go to place to learn how to design &amp; build useful AI agents + curate your personal AI toolkit.</strong></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.agentsworkshop.ai/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Agents Workshop is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>INSIDE</h2><ul><li><p>Practical, step-by-step guides</p></li><li><p>Detailed case studies</p></li><li><p>Ready-to-use templates &amp; patterns</p></li><li><p>Interactive demos and teardown sessions</p></li><li><p>AI industry updates (clear signals, no noise)</p></li></ul><h2>OUR FOCUS</h2><p>Building AI agents &amp; LLM-powered workflows for:</p><ul><li><p>Personal productivity</p></li><li><p>Project management</p></li><li><p>Knowledge &amp; information management</p></li><li><p>Everyday Ops (CRM, Sales, Analytics, &#8230;)</p></li><li><p>Learning &amp; accelerated expertise</p></li></ul><h2>TOOLKIT</h2><h4><strong>Ready&#8209;to&#8209;Use Agents &amp; AI-tools</strong></h4><p>Manus, DeepResearch, Notebook LM, Cursor Agent, v0</p><h4><strong>No&#8209;Code &amp; Low&#8209;Code Builders</strong></h4><p>Lindy, Tana, LangFlow, Flowise, LangChain OAP</p><h4>Frameworks &amp; SDKs</h4><p>Google ADK, OpenAI Agents SDK, LangGraph</p><h2>FIRST PRINCIPLES</h2><p>We rely extensively on:</p><ul><li><p>Domain-Driven Design</p></li><li><p>System Architecture</p></li><li><p>Experience Design</p></li></ul><p><strong>Learn how to BUILD AI solutions with clarity &amp; confidence + USE tools like a PRO&#129520;</strong></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.agentsworkshop.ai/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Agents Workshop is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>