<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: golflover</title>
    <description>The latest articles on DEV Community by golflover (@golflover2023).</description>
    <link>https://dev.to/golflover2023</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4084517%2F87b17cac-7932-45c1-a146-5e1417f02e80.jpg</url>
      <title>DEV Community: golflover</title>
      <link>https://dev.to/golflover2023</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/golflover2023"/>
    <language>en</language>
    <item>
      <title>Build an AI Agent with a Hippocampus: Implementing Sparse Distributed Memory in Python</title>
      <dc:creator>golflover</dc:creator>
      <pubDate>Mon, 07 Sep 2026 19:08:02 +0000</pubDate>
      <link>https://dev.to/golflover2023/build-an-ai-agent-with-a-hippocampus-implementing-sparse-distributed-memory-in-python-44f4</link>
      <guid>https://dev.to/golflover2023/build-an-ai-agent-with-a-hippocampus-implementing-sparse-distributed-memory-in-python-44f4</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;TL;DR: LLM agents forget everything because their "memory" is a sliding window. Sparse Distributed Memory (Kanerva, 1988) gives you a content-addressable long-term store with an astronomically large address space — and you can implement a working core in ~150 lines of pure Python, zero dependencies.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Why LLM agents forget everything
&lt;/h2&gt;

&lt;p&gt;Context windows are the bottleneck. An agent that worked with you last Tuesday has no idea what you agreed on by Friday — unless you feed the whole transcript back, which is expensive and still hits the limit.&lt;/p&gt;

&lt;p&gt;Vector databases are the usual fix, but they are approximate in a particular way: they measure &lt;em&gt;similarity&lt;/em&gt;, not &lt;em&gt;association&lt;/em&gt;. A vector DB can find "the chunk most like this query," but it does not naturally reconstruct a memory from a &lt;em&gt;partial, noisy cue&lt;/em&gt; the way associative memory does.&lt;/p&gt;

&lt;p&gt;The gap between "chatbot" and "partner" is memory: durable, cue-addressable, and quietly consolidated over time.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Sparse Distributed Memory (Kanerva, 1988)?
&lt;/h2&gt;

&lt;p&gt;Sparse Distributed Memory is a mathematical model of associative memory from Pentti Kanerva's 1988 book. The core idea:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Huge address space&lt;/strong&gt;: binary addresses of length &lt;em&gt;n&lt;/em&gt; give &lt;code&gt;2^n&lt;/code&gt; possible locations. With n=1000 that is &lt;code&gt;2^1000&lt;/code&gt; — more addresses than atoms in the observable universe. (Compare: a typical 1536-dim embedding vector.)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sparse physical storage&lt;/strong&gt;: you cannot allocate &lt;code&gt;2^1000&lt;/code&gt; slots, so you allocate a few million &lt;em&gt;hard locations&lt;/em&gt; at random and let each memory write to the &lt;em&gt;neighborhood&lt;/em&gt; of its address.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hamming distance + activation radius&lt;/strong&gt;: an address "activates" every hard location within a radius &lt;em&gt;r&lt;/em&gt; (by Hamming distance). Reading averages the contents of the activated locations; writing adds to them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Content-addressable&lt;/strong&gt;: read with a noisy or partial address and you still land near the right neighborhood — this is what makes it work like a brain rather than a hash table.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Implementing SDM in Python
&lt;/h2&gt;

&lt;p&gt;Here is a compact, dependency-free core: address generation, write, read, and a winner-take-all decode for noisy cues.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;random&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;collections&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;defaultdict&lt;/span&gt;

&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;SparseDistributedMemory&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;Kanerva SDM — hard locations, Hamming activation, distributed read/write.&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;num_locations&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;100_000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;radius&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;451&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;seed&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;42&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;                      &lt;span class="c1"&gt;# address bit length
&lt;/span&gt;        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;radius&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;radius&lt;/span&gt;            &lt;span class="c1"&gt;# activation radius (Hamming)
&lt;/span&gt;        &lt;span class="n"&gt;rng&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;random&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Random&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;seed&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="c1"&gt;# hard locations: random binary addresses
&lt;/span&gt;        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;locations&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;rng&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getrandbits&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;num_locations&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;
        &lt;span class="c1"&gt;# each hard location has an integer content vector (accumulator)
&lt;/span&gt;        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;num_locations&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;_activate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;address&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;hits&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;loc&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;enumerate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;locations&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nf"&gt;bin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;loc&lt;/span&gt; &lt;span class="o"&gt;^&lt;/span&gt; &lt;span class="n"&gt;address&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;count&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="n"&gt;hits&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;hits&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;address&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pattern&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;strength&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;Associate `pattern` (int bitmask) with `address`.&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;_activate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;address&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
            &lt;span class="c1"&gt;# accumulate: +1 where pattern has a 1-bit, -1 where it has a 0-bit
&lt;/span&gt;            &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;strength&lt;/span&gt; &lt;span class="nf"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pattern&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;strength&lt;/span&gt;
            &lt;span class="n"&gt;pattern&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;read&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;address&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;Return the average content vector of the activated neighborhood.&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
        &lt;span class="n"&gt;hits&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;_activate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;address&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;hits&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;
        &lt;span class="n"&gt;sums&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;
        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;hits&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
            &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
                &lt;span class="n"&gt;sums&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="nf"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;hits&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;sums&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;decode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;address&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;threshold&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;Read + threshold into a clean binary pattern.&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
        &lt;span class="n"&gt;vec&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;read&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;address&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;vec&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;
        &lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;v&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;enumerate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;vec&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;v&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;threshold&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="n"&gt;out&lt;/span&gt; &lt;span class="o"&gt;|=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;out&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is intentionally simplified (production uses block addressing and accumulation weights), but it captures the mechanism: &lt;strong&gt;write spreads a pattern over a neighborhood; read averages the neighborhood back into an approximation.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Properties that matter for agents
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Zero external dependencies&lt;/strong&gt; — pure Python, thread-safe per memory bank&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Predictive pre-activation&lt;/strong&gt; — you can probe with a partial cue before committing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fractal compression&lt;/strong&gt; — dense 100:1 patterns stored sparsely&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No RAG pipeline required&lt;/strong&gt; for long-term recall&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Integrating with a hippocampus (memory replay)
&lt;/h2&gt;

&lt;p&gt;A raw SDM store is static. What makes memory &lt;em&gt;feel&lt;/em&gt; like memory is consolidation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Idle-time replay&lt;/strong&gt;: compress and replay past sessions 10–20× during idle, "steadier answers over time"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Forgetting curve&lt;/strong&gt;: Ebbinghaus-style decay for unimportant traces&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Schema consolidation&lt;/strong&gt;: episodic → semantic → core, auto-triggered&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Archival pruning&lt;/strong&gt;: demote cold traces to recoverable archive instead of hard-deleting&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are the mechanisms shipped in MeshCtx's Memory Engine v2 (FSRS spaced repetition + context markers + sleep-phase offline consolidation).&lt;/p&gt;

&lt;h2&gt;
  
  
  Results &amp;amp; benchmarks
&lt;/h2&gt;

&lt;p&gt;Measured locally (2026-08-19, independent):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;LongMemEval (48 questions)&lt;/strong&gt;: strict EM 52–54% (4 samples: 24/25/26/25, oracle-subset methodology) · semantic judge 83.3% (40/48) — roughly 81–85% of GPT-4o-no-memory-full-context (60–64%)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;16KB budget fairness&lt;/strong&gt;: brain-region curated 33.3% vs brute-force truncation 25.0% (&lt;strong&gt;+8.3 pp&lt;/strong&gt;), &lt;strong&gt;4.5× fewer tokens&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tool-output compression&lt;/strong&gt;: 5008 B → 223 B (−95.5%), agent still completes the task&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Full regression&lt;/strong&gt;: 3095 passed / 0 failed&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Full open source
&lt;/h2&gt;

&lt;p&gt;The complete framework — 17-region brain architecture, SDM memory engine, genetic-algorithm evolution engine (API-controlled), 5-model swarm review — is open core under AGPLv3, &lt;strong&gt;free for individual use&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/LucyAndLuna2023/meshctx" rel="noopener noreferrer"&gt;https://github.com/LucyAndLuna2023/meshctx&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Site: &lt;a href="https://meshctx.com" rel="noopener noreferrer"&gt;https://meshctx.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Governance &amp;amp; telemetry details: &lt;a href="https://meshctx.com/governance.html" rel="noopener noreferrer"&gt;https://meshctx.com/governance.html&lt;/a&gt; · &lt;a href="https://meshctx.com/telemetry.html" rel="noopener noreferrer"&gt;https://meshctx.com/telemetry.html&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Discussion
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;When is SDM overkill?&lt;/strong&gt; Short sessions with a tiny context — a list in RAM is fine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;When is it essential?&lt;/strong&gt; Long-running personal assistants, agents that accumulate a user's history across weeks, anything where &lt;em&gt;"what did we agree on last Tuesday?"&lt;/em&gt; must not cost you the whole transcript.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'd love feedback from people who have shipped associative-memory systems. What broke in production for you?&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Cross-posted from the MeshCtx engineering log. Individual use is free (AGPLv3 open core).&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>python</category>
      <category>opensource</category>
    </item>
    <item>
      <title>The 2 AM Silent Failure: What Running AI Agents in Production Taught Me About Stability</title>
      <dc:creator>golflover</dc:creator>
      <pubDate>Fri, 04 Sep 2026 01:21:20 +0000</pubDate>
      <link>https://dev.to/golflover2023/the-2-am-silent-failure-what-running-ai-agents-in-production-taught-me-about-stability-4kn</link>
      <guid>https://dev.to/golflover2023/the-2-am-silent-failure-what-running-ai-agents-in-production-taught-me-about-stability-4kn</guid>
      <description>&lt;p&gt;Most AI agents don't fail the way they do in demos. They fail later, and quieter: a task runs at 2 AM, fails silently, nobody gets alerted, and you discover it the next morning — a full day of work gone.&lt;/p&gt;

&lt;p&gt;We run MeshCtx on a small three-machine cluster. Today's health check comes straight from a production instance that has been running for a while:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;15/15 modules online, 0 errors, on v3.121.7.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Where that stability comes from
&lt;/h2&gt;

&lt;p&gt;Part of the answer is test data we're happy to show:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;3,728 automated tests, all passing&lt;/strong&gt;, across Windows, macOS and Linux&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LongMemEval EM of 64.6%&lt;/strong&gt; (3-sample best-of-3, vs a 62.5% symmetric baseline)&lt;/li&gt;
&lt;li&gt;At a &lt;strong&gt;16KB memory budget: +16.7 percentage points&lt;/strong&gt; — the tighter the budget, the bigger the gain&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MIT licensed&lt;/strong&gt; — you can rerun the whole suite yourself&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Stability means three things
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;It doesn't break.&lt;/strong&gt; 3,728 tests across three platforms means the traps you might step into have very likely been stepped on by someone before you. Test coverage isn't a cost line — it's respect for the user's time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It remembers.&lt;/strong&gt; Most agent failures are forgetting failures. Our answer is 17-region layered memory: a positions list doesn't bleed into an article draft, yesterday's task state doesn't overwrite today's. Remembering is table stakes; remembering the right things is the hard part.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It behaves the same everywhere.&lt;/strong&gt; Windows at the office, macOS at home, Linux in the cloud — the same tasks, the same behavior. Automation is a relay, not a restart.&lt;/p&gt;

&lt;h2&gt;
  
  
  A cheap heuristic for choosing AI tools
&lt;/h2&gt;

&lt;p&gt;Check whether the team publishes its test numbers. Teams that put their report card in public usually have something to back it up.&lt;/p&gt;

&lt;p&gt;MeshCtx is free and open source (MIT): &lt;a href="https://meshctx.com" rel="noopener noreferrer"&gt;meshctx.com&lt;/a&gt; — run the tests, hit the health endpoint, don't take anyone's word for it. Including ours.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>engineering</category>
    </item>
    <item>
      <title>Why AI Agents Keep Forgetting (and How to Fix It): MeshCtx v3.121.7 Deep Dive</title>
      <dc:creator>golflover</dc:creator>
      <pubDate>Sun, 30 Aug 2026 03:34:15 +0000</pubDate>
      <link>https://dev.to/golflover2023/why-ai-agents-keep-forgetting-and-how-to-fix-it-meshctx-v31217-deep-dive-12jg</link>
      <guid>https://dev.to/golflover2023/why-ai-agents-keep-forgetting-and-how-to-fix-it-meshctx-v31217-deep-dive-12jg</guid>
      <description>&lt;p&gt;AI agents are no longer demos — they're production systems. But there's one problem that keeps showing up in every serious deployment: &lt;strong&gt;they forget&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 8 Pain Points We Measured
&lt;/h2&gt;

&lt;p&gt;After talking to teams running agents in production, 8 issues dominate:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Forgetting&lt;/strong&gt; — context windows evict critical state mid-task&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Over-autonomy&lt;/strong&gt; — agents act without approval on destructive actions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost&lt;/strong&gt; — runaway token usage&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Salience&lt;/strong&gt; — agents can't tell important from noise&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Self-evaluation distortion&lt;/strong&gt; — "it works" claims that don't survive benchmarks&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Instruction following&lt;/strong&gt; — rules that erode over long sessions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trust&lt;/strong&gt; — no way to roll back a bad agent edit&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reliability&lt;/strong&gt; — nondeterministic behavior in sandbox vs production&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How MeshCtx v3.121.7 Approaches It
&lt;/h2&gt;

&lt;p&gt;The core idea: a &lt;strong&gt;cognitive architecture&lt;/strong&gt; rather than a stateless tool. Key mechanisms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;17-region memory&lt;/strong&gt; with progressive disclosure — the agent only loads what's relevant&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tool approval gates&lt;/strong&gt; — human-in-the-loop for destructive operations&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Budget control&lt;/strong&gt; — hard caps on spend&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Region selection&lt;/strong&gt; — salience filtering built into memory access&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real benchmarks&lt;/strong&gt; — LongMemEval, not vibes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Iron rules&lt;/strong&gt; — instruction constraints that persist&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;File backup + rollback&lt;/strong&gt; — every mutation is reversible&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sandbox verification&lt;/strong&gt; — test before you trust&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Honest Numbers
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;LongMemEval EM 64.6%&lt;/strong&gt; (3-sample best-of-3; symmetric baseline 62.5%)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Judge 60.4%&lt;/strong&gt; vs 62.5% baseline&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;16KB context budget: +16.7pp&lt;/strong&gt; over baseline&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;3728 tests passing&lt;/strong&gt; across Win/macOS/Linux&lt;/li&gt;
&lt;li&gt;MIT licensed, free, open source&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Try it: &lt;a href="https://meshctx.com" rel="noopener noreferrer"&gt;meshctx.com&lt;/a&gt; · &lt;a href="https://github.com/LucyAndLuna2023/meshctx" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; · t.me/MeshCtxBot&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What's your biggest agent-memory pain point? Drop it in the comments.&lt;/em&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>AI Agents Keep Failing in Production. Here's How We Fixed All 8 Community Pain Points</title>
      <dc:creator>golflover</dc:creator>
      <pubDate>Sat, 29 Aug 2026 02:00:54 +0000</pubDate>
      <link>https://dev.to/golflover2023/ai-agents-keep-failing-in-production-heres-how-we-fixed-all-8-community-pain-points-3k8g</link>
      <guid>https://dev.to/golflover2023/ai-agents-keep-failing-in-production-heres-how-we-fixed-all-8-community-pain-points-3k8g</guid>
      <description>&lt;h1&gt;
  
  
  AI Agents Keep Failing in Production. Here's How We Fixed All 8 Community Pain Points
&lt;/h1&gt;

&lt;p&gt;Most AI agents are stateless tools. You give them a prompt, they give you an answer, and then... they forget everything.&lt;/p&gt;

&lt;p&gt;We asked the developer community what actually breaks agents in production. Eight pain points came up. Today, after 3,728 passing tests on Win/macOS/Linux, MeshCtx v3.121.7 addresses all eight.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 8 Pain Points and How We Fixed Them
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Forgetting → 17-Region Memory with Progressive Disclosure
&lt;/h3&gt;

&lt;p&gt;The classic failure: an agent forgets what you told it 5 minutes ago. Our answer is a 17-region cognitive architecture where memory isn't a flat vector store — it's organized like the brain.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Progressive disclosure&lt;/strong&gt; (inspired by claude-mem): instead of dumping everything into context:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;High relevance → full context&lt;/li&gt;
&lt;li&gt;Medium relevance → summarized&lt;/li&gt;
&lt;li&gt;Low relevance → title only&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This keeps context small and signal high.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Over-Autonomy → Tool Approval
&lt;/h3&gt;

&lt;p&gt;Agents that act on their own are dangerous. MeshCtx adds explicit tool-approval gates so the agent asks before touching anything consequential.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Cost → Budget Controls
&lt;/h3&gt;

&lt;p&gt;Hard budget limits per run, per session, per task. No runaway token bills.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Salience → Brain-Region Curation
&lt;/h3&gt;

&lt;p&gt;Not all information is equal. Brain-region selection decides &lt;em&gt;which&lt;/em&gt; memories are worth loading, not just &lt;em&gt;how much&lt;/em&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Self-Eval Distortion → Real Benchmarks
&lt;/h3&gt;

&lt;p&gt;This one is about honesty. We found our own evaluation methodology was inflating results. We fixed it.&lt;/p&gt;

&lt;p&gt;Current numbers, reported straight:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;LongMemEval EM 64.6%&lt;/strong&gt; (best-of-3 sampling; symmetric baseline 62.5%)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;+16.7pp within a 16KB budget&lt;/strong&gt; (same-token comparison, not injection gains)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  6. Instruction Following → Ironclad Rules
&lt;/h3&gt;

&lt;p&gt;AGENTS.md is the highest priority. Multi-step instructions execute completely, with verify-after-write.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Trust → File Backup + Rollback
&lt;/h3&gt;

&lt;p&gt;Every file change is backed up and reversible. An agent that can't break your data is an agent you can trust.&lt;/p&gt;

&lt;h3&gt;
  
  
  8. Reliability → Sandbox Verification
&lt;/h3&gt;

&lt;p&gt;Changes are tested in a sandbox before they're applied. No self-modification without validation.&lt;/p&gt;

&lt;h2&gt;
  
  
  New in v3.121.7
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Browser DOM interaction&lt;/strong&gt; (vs browser-use): click, type, forms, screenshots — after explicit authorization&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Standard agent telemetry&lt;/strong&gt; (vs pi): every run metric is observable&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Team/Enterprise plans&lt;/strong&gt;: orgs, RBAC, shared memory, Swarm review, budgets, audit (tenant isolation), Stripe billing, SSO, self-hosted&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try It Yourself
&lt;/h2&gt;

&lt;p&gt;MeshCtx is free forever for personal use:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;meshctx
meshctx init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/LucyAndLuna2023/meshctx" rel="noopener noreferrer"&gt;https://github.com/LucyAndLuna2023/meshctx&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Website: &lt;a href="https://meshctx.com" rel="noopener noreferrer"&gt;https://meshctx.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Community: &lt;a href="https://t.me/MeshCtxBot" rel="noopener noreferrer"&gt;https://t.me/MeshCtxBot&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Support: &lt;a href="mailto:support@meshctx.com"&gt;support@meshctx.com&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Which of the 8 pain points matters most in your agent stack? Let me know in the comments.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>agents</category>
      <category>memory</category>
    </item>
    <item>
      <title>AI Agents Keep Failing in Production. Here's How We Fixed All 8 Community Pain Points</title>
      <dc:creator>golflover</dc:creator>
      <pubDate>Sat, 29 Aug 2026 01:17:25 +0000</pubDate>
      <link>https://dev.to/golflover2023/ai-agents-keep-failing-in-production-heres-how-we-fixed-all-8-community-pain-points-30cn</link>
      <guid>https://dev.to/golflover2023/ai-agents-keep-failing-in-production-heres-how-we-fixed-all-8-community-pain-points-30cn</guid>
      <description>&lt;h1&gt;
  
  
  AI Agents Keep Failing in Production. Here's How We Fixed All 8 Community Pain Points
&lt;/h1&gt;

&lt;p&gt;Most AI agents are stateless tools. You give them a prompt, they give you an answer, and then... they forget everything.&lt;/p&gt;

&lt;p&gt;We asked the developer community what actually breaks agents in production. Eight pain points came up. Today, after 3,728 passing tests on Win/macOS/Linux, MeshCtx v3.121.7 addresses all eight.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 8 Pain Points and How We Fixed Them
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Forgetting → 17-Region Memory with Progressive Disclosure
&lt;/h3&gt;

&lt;p&gt;The classic failure: an agent forgets what you told it 5 minutes ago. Our answer is a 17-region cognitive architecture where memory isn't a flat vector store — it's organized like the brain.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Progressive disclosure&lt;/strong&gt; (inspired by claude-mem): instead of dumping everything into context:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;High relevance → full context&lt;/li&gt;
&lt;li&gt;Medium relevance → summarized&lt;/li&gt;
&lt;li&gt;Low relevance → title only&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This keeps context small and signal high.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Over-Autonomy → Tool Approval
&lt;/h3&gt;

&lt;p&gt;Agents that act on their own are dangerous. MeshCtx adds explicit tool-approval gates so the agent asks before touching anything consequential.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Cost → Budget Controls
&lt;/h3&gt;

&lt;p&gt;Hard budget limits per run, per session, per task. No runaway token bills.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Salience → Brain-Region Curation
&lt;/h3&gt;

&lt;p&gt;Not all information is equal. Brain-region selection decides &lt;em&gt;which&lt;/em&gt; memories are worth loading, not just &lt;em&gt;how much&lt;/em&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Self-Eval Distortion → Real Benchmarks
&lt;/h3&gt;

&lt;p&gt;This one is about honesty. We found our own evaluation methodology was inflating results. We fixed it.&lt;/p&gt;

&lt;p&gt;Current numbers, reported straight:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;LongMemEval EM 64.6%&lt;/strong&gt; (best-of-3 sampling; symmetric baseline 62.5%)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;+16.7pp within a 16KB budget&lt;/strong&gt; (same-token comparison, not injection gains)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  6. Instruction Following → Ironclad Rules
&lt;/h3&gt;

&lt;p&gt;AGENTS.md is the highest priority. Multi-step instructions execute completely, with verify-after-write.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Trust → File Backup + Rollback
&lt;/h3&gt;

&lt;p&gt;Every file change is backed up and reversible. An agent that can't break your data is an agent you can trust.&lt;/p&gt;

&lt;h3&gt;
  
  
  8. Reliability → Sandbox Verification
&lt;/h3&gt;

&lt;p&gt;Changes are tested in a sandbox before they're applied. No self-modification without validation.&lt;/p&gt;

&lt;h2&gt;
  
  
  New in v3.121.7
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Browser DOM interaction&lt;/strong&gt; (vs browser-use): click, type, forms, screenshots — after explicit authorization&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Standard agent telemetry&lt;/strong&gt; (vs pi): every run metric is observable&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Team/Enterprise plans&lt;/strong&gt;: orgs, RBAC, shared memory, Swarm review, budgets, audit (tenant isolation), Stripe billing, SSO, self-hosted&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try It Yourself
&lt;/h2&gt;

&lt;p&gt;MeshCtx is free forever for personal use:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;meshctx
meshctx init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/LucyAndLuna2023/meshctx" rel="noopener noreferrer"&gt;https://github.com/LucyAndLuna2023/meshctx&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Website: &lt;a href="https://meshctx.com" rel="noopener noreferrer"&gt;https://meshctx.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Community: &lt;a href="https://t.me/MeshCtxBot" rel="noopener noreferrer"&gt;https://t.me/MeshCtxBot&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Support: &lt;a href="mailto:support@meshctx.com"&gt;support@meshctx.com&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Which of the 8 pain points matters most in your agent stack? Let me know in the comments.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>agents</category>
      <category>memory</category>
    </item>
    <item>
      <title>The AI Agent Revolution Is Here: 2026 Is the Year Everything Changes</title>
      <dc:creator>golflover</dc:creator>
      <pubDate>Tue, 25 Aug 2026 14:48:38 +0000</pubDate>
      <link>https://dev.to/golflover2023/the-ai-agent-revolution-is-here-2026-is-the-year-everything-changes-1a9n</link>
      <guid>https://dev.to/golflover2023/the-ai-agent-revolution-is-here-2026-is-the-year-everything-changes-1a9n</guid>
      <description>&lt;h1&gt;
  
  
  The AI Agent Revolution Is Here
&lt;/h1&gt;

&lt;p&gt;2026 is the year AI agents went from demos to production.&lt;/p&gt;

&lt;p&gt;Multi-agent frameworks like AutoGen, CrewAI, and LangGraph are now running real workflows at scale. The shift from single-prompt chatbots to orchestrated agent teams is happening faster than anyone predicted.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Changed This Year
&lt;/h2&gt;

&lt;p&gt;Tool use is standard. Agents now call APIs, execute code, browse the web, and manage databases - all within a single workflow.&lt;/p&gt;

&lt;p&gt;Memory systems matured. Long-term memory across sessions means agents maintain context, learn from past interactions, and improve over time.&lt;/p&gt;

&lt;p&gt;Multi-agent orchestration works. Complex tasks get broken into subtasks, each handled by a specialized agent.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real-World Impact
&lt;/h2&gt;

&lt;p&gt;Companies deploying AI agents are seeing measurable gains:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Code review: 2 hours/PR -&amp;gt; 15 minutes&lt;/li&gt;
&lt;li&gt;Data analysis: 1 day -&amp;gt; 30 minutes&lt;/li&gt;
&lt;li&gt;Customer support: 5 min/ticket -&amp;gt; 30 seconds&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The question is no longer will agents work - its how fast can we deploy them.&lt;/p&gt;

&lt;h1&gt;
  
  
  ai #agents #technology #programming
&lt;/h1&gt;

</description>
    </item>
    <item>
      <title>Building Multi-Agent Systems: Lessons from Production in 2026</title>
      <dc:creator>golflover</dc:creator>
      <pubDate>Tue, 25 Aug 2026 01:58:50 +0000</pubDate>
      <link>https://dev.to/golflover2023/building-multi-agent-systems-lessons-from-production-in-2026-620</link>
      <guid>https://dev.to/golflover2023/building-multi-agent-systems-lessons-from-production-in-2026-620</guid>
      <description>&lt;h2&gt;
  
  
  The Shift to Multi-Agent Architecture
&lt;/h2&gt;

&lt;p&gt;In 2026, the AI agent landscape has fundamentally changed. Single-agent systems are being replaced by coordinated multi-agent teams.&lt;/p&gt;

&lt;h3&gt;
  
  
  Three Key Lessons
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1. Tool use is table stakes, not a feature&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If your agent can't call APIs, browse the web, and execute code, it's not competitive. The bar has moved.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Cost has collapsed&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Running a capable agent 24/7 now costs less than a junior developer's coffee budget. This changes the economics of automation entirely.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Architecture matters more than model size&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The companies winning right now aren't the ones with the biggest models. They're the ones with the best agent architectures.&lt;/p&gt;

&lt;h3&gt;
  
  
  What's Working
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Customer support agents that actually resolve issues&lt;/li&gt;
&lt;li&gt;Code review agents that catch bugs humans miss&lt;/li&gt;
&lt;li&gt;Research agents that synthesize across 50 sources in minutes&lt;/li&gt;
&lt;li&gt;Content agents that maintain brand voice across platforms&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Stack
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Specialized agents (each with a focused tool set)&lt;/li&gt;
&lt;li&gt;An orchestrator (routes tasks, manages state)&lt;/li&gt;
&lt;li&gt;A feedback loop (human corrections improve the system)&lt;/li&gt;
&lt;li&gt;Observability (traces, metrics, logs)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;What agent architectures are you building?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>architecture</category>
      <category>production</category>
    </item>
    <item>
      <title>Building an AI Agent with 17 Brain Regions - Open Source Project</title>
      <dc:creator>golflover</dc:creator>
      <pubDate>Mon, 24 Aug 2026 11:25:40 +0000</pubDate>
      <link>https://dev.to/golflover2023/building-an-ai-agent-with-17-brain-regions-open-source-project-4ep6</link>
      <guid>https://dev.to/golflover2023/building-an-ai-agent-with-17-brain-regions-open-source-project-4ep6</guid>
      <description>&lt;h1&gt;
  
  
  Building an AI Agent with 17 Brain Regions
&lt;/h1&gt;

&lt;p&gt;Most AI agents are stateless tools. MeshCtx is different - it's a cognitive architecture inspired by how the human brain actually works.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why 17 Brain Regions?
&lt;/h2&gt;

&lt;p&gt;The brain doesn't process everything in one area. Different regions handle different types of memory:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Working Memory&lt;/strong&gt; (16KB context window)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Episodic Memory&lt;/strong&gt; - stores events and experiences&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Semantic Memory&lt;/strong&gt; - extracts patterns and knowledge&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Procedural Memory&lt;/strong&gt; - learns skills and habits&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consolidation&lt;/strong&gt; - sleep-phase memory optimization&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key Results
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Score&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;EM Score&lt;/td&gt;
&lt;td&gt;54.2%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Judge Score&lt;/td&gt;
&lt;td&gt;83.3%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tool Compression&lt;/td&gt;
&lt;td&gt;-95.5% tokens&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The biggest surprise? Sleep-phase consolidation gave us +8.3pp improvement.&lt;/p&gt;

&lt;h2&gt;
  
  
  Open Source
&lt;/h2&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/LucyAndLuna2023/meshctx" rel="noopener noreferrer"&gt;https://github.com/LucyAndLuna2023/meshctx&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Built with Python, uses FSRS spaced repetition for memory consolidation.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;What brain regions would you add to an AI agent?&lt;/em&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>USStockToken: AI Multi-Factor Stock Analysis on Telegram</title>
      <dc:creator>golflover</dc:creator>
      <pubDate>Sat, 22 Aug 2026 23:35:50 +0000</pubDate>
      <link>https://dev.to/golflover2023/usstocktoken-ai-multi-factor-stock-analysis-on-telegram-4f3e</link>
      <guid>https://dev.to/golflover2023/usstocktoken-ai-multi-factor-stock-analysis-on-telegram-4f3e</guid>
      <description>&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Comprehensive stock analysis usually requires expensive subscriptions. We made it available to everyone through Telegram.&lt;/p&gt;

&lt;h2&gt;
  
  
  USStockToken
&lt;/h2&gt;

&lt;p&gt;A Telegram bot providing AI-powered multi-factor stock analysis combining technical indicators, sentiment analysis, and fundamental data.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Multi-factor analysis: technical, sentiment, fundamental&lt;/li&gt;
&lt;li&gt;AI-generated analysis summaries&lt;/li&gt;
&lt;li&gt;Real-time market data and news&lt;/li&gt;
&lt;li&gt;Custom alerts for specific conditions&lt;/li&gt;
&lt;li&gt;RSI, MACD, Bollinger Bands, earnings analysis&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;

&lt;p&gt;Send &lt;code&gt;/analyze AAPL&lt;/code&gt; to &lt;a href="https://t.me/USStockToken" rel="noopener noreferrer"&gt;@USStockToken&lt;/a&gt; on Telegram.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/LucyAndLuna2023/meshctx
&lt;span class="nb"&gt;cd &lt;/span&gt;usstock &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
python &lt;span class="nt"&gt;-m&lt;/span&gt; usstock.bot
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Contributing
&lt;/h2&gt;

&lt;p&gt;Check the &lt;a href="https://github.com/LucyAndLuna2023/meshctx" rel="noopener noreferrer"&gt;GitHub repo&lt;/a&gt;!&lt;/p&gt;

</description>
      <category>python</category>
      <category>opensource</category>
      <category>finance</category>
      <category>telegram</category>
    </item>
    <item>
      <title>RemitAlert: GCC Remittance Rate Tracker with Zakat Calculator</title>
      <dc:creator>golflover</dc:creator>
      <pubDate>Sat, 22 Aug 2026 23:35:13 +0000</pubDate>
      <link>https://dev.to/golflover2023/remitalert-gcc-remittance-rate-tracker-with-zakat-calculator-3c26</link>
      <guid>https://dev.to/golflover2023/remitalert-gcc-remittance-rate-tracker-with-zakat-calculator-3c26</guid>
      <description>&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Expats in GCC countries need to track remittance rates and calculate Zakat obligations. Rates change frequently and rules vary by country.&lt;/p&gt;

&lt;h2&gt;
  
  
  RemitAlert
&lt;/h2&gt;

&lt;p&gt;An open-source tool for real-time remittance rate tracking and automated Zakat calculation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Real-time exchange rates across major corridors&lt;/li&gt;
&lt;li&gt;Multi-currency: AED, SAR, QAR, KWD, BHD, OMR&lt;/li&gt;
&lt;li&gt;Zakat calculator with local rules&lt;/li&gt;
&lt;li&gt;Rate alerts when targets are hit&lt;/li&gt;
&lt;li&gt;Multi-language: English, Arabic, Spanish&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Supported Corridors
&lt;/h3&gt;

&lt;p&gt;UAE, Saudi, Qatar, Kuwait, Bahrain, Oman → India, Pakistan, Philippines, Bangladesh, Sri Lanka&lt;/p&gt;

&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/liuquant-design/telegram-market-bots
&lt;span class="nb"&gt;cd &lt;/span&gt;remitalert &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
python &lt;span class="nt"&gt;-m&lt;/span&gt; remitalert.server
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Contributing
&lt;/h2&gt;

&lt;p&gt;Check the &lt;a href="https://github.com/liuquant-design/telegram-market-bots" rel="noopener noreferrer"&gt;GitHub repo&lt;/a&gt; and open an issue!&lt;/p&gt;

</description>
      <category>python</category>
      <category>opensource</category>
      <category>finance</category>
      <category>gcc</category>
    </item>
    <item>
      <title>PreciosML: Open-Source Price Monitoring for Latin America</title>
      <dc:creator>golflover</dc:creator>
      <pubDate>Sat, 22 Aug 2026 23:34:23 +0000</pubDate>
      <link>https://dev.to/golflover2023/preciosml-open-source-price-monitoring-for-latin-america-5hja</link>
      <guid>https://dev.to/golflover2023/preciosml-open-source-price-monitoring-for-latin-america-5hja</guid>
      <description>&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Monitoring product prices across Latin American e-commerce platforms is challenging. Different retailers use different formats, currencies change, and prices fluctuate rapidly.&lt;/p&gt;

&lt;h2&gt;
  
  
  PreciosML
&lt;/h2&gt;

&lt;p&gt;We built PreciosML - an open-source tool that tracks product prices across major LATAM retailers including Falabella, MercadoLibre, and others.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Multi-language support&lt;/strong&gt;: Spanish, Portuguese, and English interfaces&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real-time price tracking&lt;/strong&gt;: Monitor prices across multiple retailers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Price history&lt;/strong&gt;: Track price changes over time&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Alerts&lt;/strong&gt;: Get notified when prices drop below your threshold&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API access&lt;/strong&gt;: RESTful API for integration with other tools&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Supported Retailers
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Falabella (Chile, Peru, Colombia, Argentina)&lt;/li&gt;
&lt;li&gt;MercadoLibre (multiple countries)&lt;/li&gt;
&lt;li&gt;Amazon Mexico&lt;/li&gt;
&lt;li&gt;Liverpool (Mexico)&lt;/li&gt;
&lt;li&gt;And more...&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/liuquant-design/telegram-market-bots
&lt;span class="nb"&gt;cd &lt;/span&gt;preciosml
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
python &lt;span class="nt"&gt;-m&lt;/span&gt; preciosml.server
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Contributing
&lt;/h2&gt;

&lt;p&gt;We're looking for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Additional retailer integrations&lt;/li&gt;
&lt;li&gt;UI/UX improvements&lt;/li&gt;
&lt;li&gt;Translation help&lt;/li&gt;
&lt;li&gt;Bug reports and feature requests&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check out the &lt;a href="https://github.com/liuquant-design/telegram-market-bots" rel="noopener noreferrer"&gt;GitHub repo&lt;/a&gt; and open an issue!&lt;/p&gt;

</description>
      <category>python</category>
      <category>opensource</category>
      <category>ecommerce</category>
      <category>latam</category>
    </item>
    <item>
      <title>MeshCtx Memory Engine v2: FSRS Spaced Repetition for AI Agents</title>
      <dc:creator>golflover</dc:creator>
      <pubDate>Sat, 22 Aug 2026 23:34:21 +0000</pubDate>
      <link>https://dev.to/golflover2023/meshctx-memory-engine-v2-fsrs-spaced-repetition-for-ai-agents-4ea1</link>
      <guid>https://dev.to/golflover2023/meshctx-memory-engine-v2-fsrs-spaced-repetition-for-ai-agents-4ea1</guid>
      <description>&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Most AI agents forget everything between sessions. We built MeshCtx to solve this with a persistent memory system that actually learns and consolidates knowledge over time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Memory Engine v2
&lt;/h2&gt;

&lt;p&gt;The key innovation is combining three techniques:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. FSRS Spaced Repetition
&lt;/h3&gt;

&lt;p&gt;Instead of storing all memories equally, we use Free Spaced Repetition Scheduler (FSRS) to prioritize what to review. Memories that haven't been accessed decay naturally, while frequently-used knowledge gets reinforced.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Three-Layer Schema Consolidation
&lt;/h3&gt;

&lt;p&gt;Memories flow through three layers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Episodic&lt;/strong&gt;: Raw event memories (what happened)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Semantic&lt;/strong&gt;: Consolidated knowledge (what it means)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Core&lt;/strong&gt;: Fundamental patterns and preferences&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The consolidation happens automatically during "sleep phases" - offline periods where the agent reviews and reorganizes memories.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. ARCHIVAL Pruning
&lt;/h3&gt;

&lt;p&gt;Old memories are archived (not deleted) using a recoverable pruning strategy. This keeps the active memory compact while preserving everything for potential retrieval.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benchmark Results
&lt;/h2&gt;

&lt;p&gt;Tested on LongMemEval benchmark:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;54.2% Exact Match&lt;/strong&gt; (vs GPT-4o no-memory baseline 60-64%)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;83.3% Semantic Judge Score&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tool output compression: 5008B → 223B (-95.5%)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/LucyAndLuna2023/meshctx
&lt;span class="nb"&gt;cd &lt;/span&gt;meshctx
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
python &lt;span class="nt"&gt;-m&lt;/span&gt; meshctx.server
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Contributing
&lt;/h2&gt;

&lt;p&gt;We're looking for contributors! Areas where help is needed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Additional memory consolidation strategies&lt;/li&gt;
&lt;li&gt;Integration with other LLM providers&lt;/li&gt;
&lt;li&gt;Performance optimization for large memory stores&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Open an issue or PR on &lt;a href="https://github.com/LucyAndLuna2023/meshctx" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>agents</category>
      <category>machinelearning</category>
    </item>
  </channel>
</rss>
