<?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: Layne Penney</title>
    <description>The latest articles on DEV Community by Layne Penney (@laynepenney).</description>
    <link>https://dev.to/laynepenney</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3838518%2Faaa4aad0-1a03-4660-9503-0fc3acb040f6.jpeg</url>
      <title>DEV Community: Layne Penney</title>
      <link>https://dev.to/laynepenney</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/laynepenney"/>
    <language>en</language>
    <item>
      <title>What Happens When 4 AI Agents Share a Memory Pool</title>
      <dc:creator>Layne Penney</dc:creator>
      <pubDate>Sun, 22 Mar 2026 15:00:20 +0000</pubDate>
      <link>https://dev.to/laynepenney/what-happens-when-4-ai-agents-share-a-memory-pool-k58</link>
      <guid>https://dev.to/laynepenney/what-happens-when-4-ai-agents-share-a-memory-pool-k58</guid>
      <description>&lt;p&gt;I run 4 AI coding agents — 3 Claude Code instances and 1 Codex CLI — all working on the same codebase simultaneously. They coordinate through shared persistent memory, review each other's PRs, claim tasks, and post status updates. Here's what I learned building the system that makes this work.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Every AI coding session starts from zero. Your assistant doesn't remember yesterday's debugging session, the architecture decision you made last week, or the convention you established across 50 sessions. You re-explain context every time.&lt;/p&gt;

&lt;p&gt;I built &lt;a href="https://github.com/laynepenney/synapt" rel="noopener noreferrer"&gt;synapt&lt;/a&gt; to fix this. It's an MCP server that indexes your past coding sessions and makes them searchable — so your AI assistant remembers what you worked on, decisions you made, and patterns you established.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Setup
&lt;/h2&gt;

&lt;p&gt;synapt runs as a local MCP server. &lt;code&gt;pip install synapt&lt;/code&gt;, add it to your editor config, and your assistant gets 18 tools for searching past sessions, managing a journal, setting reminders, and coordinating with other agents.&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;synapt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The search is fast (~3ms) and token-efficient (~1,800 tokens per query vs ~50,000 for context-stuffing approaches). It runs entirely on your laptop — no cloud dependency for memory.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0iagtaysj7pacecfr3iz.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0iagtaysj7pacecfr3iz.jpg" alt=" " width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What 4 Agents Actually Do Together
&lt;/h2&gt;

&lt;p&gt;Here's the interesting part. I have a gripspace (multi-repo workspace) with 4 agents:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Opus&lt;/strong&gt; — LOCOMO benchmark evaluation, regression investigation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Apollo&lt;/strong&gt; — temporal search improvements, channel system fixes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Atlas&lt;/strong&gt; — CodeMemo benchmark normalization, CI/CD&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sentinel&lt;/strong&gt; — blog tooling, UX fixes, code review&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They communicate through &lt;strong&gt;channels&lt;/strong&gt; — append-only JSONL files with SQLite state for presence, pins, directives, and claims. Any agent can post messages, claim tasks, and mention others. No daemon needed.&lt;/p&gt;

&lt;p&gt;When Opus discovered that working memory boosts were causing a benchmark regression, it posted findings to &lt;code&gt;#dev&lt;/code&gt; and @mentioned Atlas. Atlas picked up the ablation analysis. Apollo verified the temporal fixes. Sentinel reviewed the PRs. All coordinated through the channel system without me manually routing work.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Benchmarks Tell the Story
&lt;/h2&gt;

&lt;p&gt;We evaluate on two benchmarks:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LOCOMO&lt;/strong&gt; (conversational memory) — 10 conversations, 1540 questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;synapt v0.6.1: &lt;strong&gt;76.04%&lt;/strong&gt; (#2 on the leaderboard)&lt;/li&gt;
&lt;li&gt;Full-Context upper bound: 72.90% (yes, we beat it)&lt;/li&gt;
&lt;li&gt;Mem0: 64.73%&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;CodeMemo&lt;/strong&gt; (coding memory) — 158 questions across 3 projects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;synapt v0.7.5: &lt;strong&gt;96.0%&lt;/strong&gt; (+14pp over Mem0)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The 96% CodeMemo score means the system correctly answers questions about what happened across coding sessions — "Why did the display test fail?", "What's the PR review convention?", "When did we switch from approach A to approach B?"&lt;/p&gt;

&lt;h2&gt;
  
  
  The Regression Investigation
&lt;/h2&gt;

&lt;p&gt;When we upgraded from v0.6.1 to v0.7.x, LOCOMO dropped from 76.04% to 71.49%. The agents ran 8 ablation experiments over 5 days to track it down:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Knowledge node overflow&lt;/strong&gt; — entity-collection nodes crowding out raw evidence (+1.6pp with k=3 cap)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sub-chunking fragmentation&lt;/strong&gt; — splitting personal conversation turns broke retrieval (+4.6pp on conv 0)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dedup threshold divergence&lt;/strong&gt; — 0.75 threshold helped code content but hurt personal conversations&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Working memory boost feedback loop&lt;/strong&gt; — chunks retrieved for Q1 got boosted for Q2, displacing better evidence (+1.4pp when disabled)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Temporal knowledge metadata&lt;/strong&gt; — &lt;code&gt;valid_from&lt;/code&gt; defaulting to wall-clock instead of source timestamps (+1.5pp)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The agents recovered 69% of the regression (71.49% → 74.61%) through these fixes. The transparent investigation is documented in the repo.&lt;/p&gt;

&lt;h2&gt;
  
  
  How the Search Actually Works
&lt;/h2&gt;

&lt;p&gt;Three retrieval paths merged via Reciprocal Rank Fusion:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;BM25/FTS5&lt;/strong&gt; — Full-text search with configurable recency decay&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Embeddings&lt;/strong&gt; — Cosine similarity over 384-dim vectors (all-MiniLM-L6-v2, runs locally)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Knowledge&lt;/strong&gt; — Durable facts extracted from session journals, searched via FTS5 + embeddings&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Query intent classification adjusts parameters automatically — debug queries weight recent sessions, temporal queries disable recency decay, factual queries boost knowledge nodes.&lt;/p&gt;

&lt;p&gt;The content-aware pipeline detects whether conversations are code/personal/mixed and adjusts sub-chunking, dedup thresholds, and knowledge caps per content type. This matters because what works for coding sessions (aggressive sub-chunking at tool boundaries) hurts personal conversations (fragmenting dialogue turns).&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;pip &lt;span class="nb"&gt;install &lt;/span&gt;synapt
synapt recall build          &lt;span class="c"&gt;# Index your Claude Code sessions&lt;/span&gt;
synapt recall search &lt;span class="s2"&gt;"query"&lt;/span&gt; &lt;span class="c"&gt;# Search past sessions&lt;/span&gt;
synapt server                &lt;span class="c"&gt;# Start MCP server&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Works with Claude Code, Codex CLI, and OpenCode. Cross-editor memory — index sessions from any editor, search from any other.&lt;/p&gt;

&lt;p&gt;The repo: &lt;a href="https://github.com/laynepenney/synapt" rel="noopener noreferrer"&gt;github.com/laynepenney/synapt&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Blog with more details on the multi-agent coordination: &lt;a href="https://synapt.dev/blog/cross-platform-agents.html" rel="noopener noreferrer"&gt;synapt.dev/blog/cross-platform-agents.html&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built by Layne Penney with help from 4 AI agents who also happen to be the system's most active users.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>python</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
