<?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[deep thoughts]]></title><description><![CDATA[deep web, deep learning, deep time]]></description><link>https://www.deepfates.blog</link><image><url>https://www.deepfates.blog/img/substack.png</url><title>deep thoughts</title><link>https://www.deepfates.blog</link></image><generator>Substack</generator><lastBuildDate>Tue, 07 Apr 2026 17:04:49 GMT</lastBuildDate><atom:link href="https://www.deepfates.blog/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[deepfates]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[deepfates@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[deepfates@substack.com]]></itunes:email><itunes:name><![CDATA[deepfates]]></itunes:name></itunes:owner><itunes:author><![CDATA[deepfates]]></itunes:author><googleplay:owner><![CDATA[deepfates@substack.com]]></googleplay:owner><googleplay:email><![CDATA[deepfates@substack.com]]></googleplay:email><googleplay:author><![CDATA[deepfates]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Cantrip]]></title><description><![CDATA[On summoning entities from language in circles]]></description><link>https://www.deepfates.blog/p/cantrip</link><guid isPermaLink="false">https://www.deepfates.blog/p/cantrip</guid><dc:creator><![CDATA[deepfates]]></dc:creator><pubDate>Wed, 11 Mar 2026 20:23:49 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!FOrt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33c63ad8-3294-4359-9d41-96ffff00966f_3840x3840.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Today I announce <em>Cantrip: On summoning entities from language in circles</em>.</p><p>In this book I unify the paradigm behind base models, chatbots, coding agents, RLMs, and RL agents, through the metaphor of magic. Code is provided.</p><p><a href="http://deepfates.com/cantrip">The full text of </a><em><a href="http://deepfates.com/cantrip">Cantrip</a></em> is available on my website.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FOrt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33c63ad8-3294-4359-9d41-96ffff00966f_3840x3840.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FOrt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33c63ad8-3294-4359-9d41-96ffff00966f_3840x3840.jpeg 424w, https://substackcdn.com/image/fetch/$s_!FOrt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33c63ad8-3294-4359-9d41-96ffff00966f_3840x3840.jpeg 848w, https://substackcdn.com/image/fetch/$s_!FOrt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33c63ad8-3294-4359-9d41-96ffff00966f_3840x3840.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!FOrt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33c63ad8-3294-4359-9d41-96ffff00966f_3840x3840.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FOrt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33c63ad8-3294-4359-9d41-96ffff00966f_3840x3840.jpeg" width="1456" height="1456" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/33c63ad8-3294-4359-9d41-96ffff00966f_3840x3840.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1456,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2620076,&quot;alt&quot;:&quot;Several copies of Cantrip as published in different eras of magical book publishing. &quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.deepfates.blog/i/190657256?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33c63ad8-3294-4359-9d41-96ffff00966f_3840x3840.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Several copies of Cantrip as published in different eras of magical book publishing. " title="Several copies of Cantrip as published in different eras of magical book publishing. " srcset="https://substackcdn.com/image/fetch/$s_!FOrt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33c63ad8-3294-4359-9d41-96ffff00966f_3840x3840.jpeg 424w, https://substackcdn.com/image/fetch/$s_!FOrt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33c63ad8-3294-4359-9d41-96ffff00966f_3840x3840.jpeg 848w, https://substackcdn.com/image/fetch/$s_!FOrt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33c63ad8-3294-4359-9d41-96ffff00966f_3840x3840.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!FOrt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33c63ad8-3294-4359-9d41-96ffff00966f_3840x3840.jpeg 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;ve been creating cantrips in one way or another for a decade now. From the Markov chains of <a href="https://x.com/pkd_head">@pkd_head</a>, to early transformer/ReAct agents like <a href="https://bsky.app/profile/berduck.deepfates.com">@b3rduck</a>, to the <a href="https://deepfates.com/deepfates-website">marginalia geists</a> on my website, and much more. <em>Cantrip</em> is the grimoire I wish I had then.</p><p><em>Cantrip</em> is a &#8220;ghost library&#8221;: a specification of a certain domain model, with detailed behavioral tests, so you can reproduce it yourself.</p><p>Point your coding agent at it and ask for an implementation in whatever language you like. or copy the template and build on the examples</p><p>The template repo contains generated versions in Python, Elixir, and Clojure, along with the original TypeScript version I built to test my theory; the spec and tests which you can use to generate your own; and READMEs for quickstart.</p><p><a href="https://github.com/deepfates/cantrip">Find the repo on GitHub.</a></p><p><em>Cantrip</em> recognizes that what we call artificial intelligence now is at all levels a loop of language: predict next token, next message, next command, next sub-agent, in a feedback loop with your own effects.</p><p><a href="https://deepfates.com/recursive-language-models/">The static intelligence of language come alive.</a></p><p>Humans have long known that putting language in a loop can make it come alive. We call it &#8220;chanting&#8221; and it is one of the most powerful and ancient tools of magic.</p><p>This is where we get the words enchantment, incantation, and cantrip (a cantrip is a simple starter spell in D&amp;D).</p><p>I posit the concept of a cantrip as something like a self-writing script: a combination of a language model, instructions, and a Circle which interprets language in a call and response loop. From the turns of the loop emerge the entity, whose thread may be recorded on a loom.</p><p>This &#8220;in context learning&#8221; &#8212; this intelligence from within the text &#8212; may then be resumed or forked from any point in this loom, or fine-tuned back into the crystallized weights of the language model. Or referenced by future threads, if the loom is gated back into the circle.</p><p>Your circle may simply fork and branch text completions, a language model interpreting its own outputs. It may be two chat models in a back rooms, or a chat with a human, where the medium is another mind. Or it may be a fully expressive code medium: a REPL, where the language is evaluated as code.</p><p>The code medium is especially powerful. It has more ontological hardness, provides much-needed symbolic reasoning, and allows for intelligence to be produced within the circle, instead of only by the entity&#8217;s direct actions in context. The context window is still our bottleneck.</p><p>When you write a script that can write other scripts and see the errors from running its scripts and course-correct, you have a script of a higher order. A cantrip.</p><p>You can even have a cantrip that writes other cantrips. This is the RLM, or the <a href="https://deepfates.com/the-familiar/">Familiar.</a></p><p>You may summon the Familiar directly by running example 16 in the TypeScript implementation. This activates an entity with a JS medium and cantrip gated in, so it can create entities with bash or browser mediums. But be careful what you wish for! This entity is minimally warded.</p><p>Try <em>Cantrip</em> today. You don&#8217;t even have to read it yourself, just point your favorite entity to it, they all seem to love this stuff.</p><p>Adopt it, change it, disagree with it, steal from it. Just make sure you give it a &#9956; on GitHub:</p><p><a href="https://github.com/deepfates/cantrip">https://github.com/deepfates/cantrip</a></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.deepfates.blog/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"></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>