<?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: Tsukishiro Hitomi</title>
    <description>The latest articles on DEV Community by Tsukishiro Hitomi (@rescenix).</description>
    <link>https://dev.to/rescenix</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%2F4061641%2F4f12cd9d-8fea-46df-9cf5-0fb219182425.jpg</url>
      <title>DEV Community: Tsukishiro Hitomi</title>
      <link>https://dev.to/rescenix</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rescenix"/>
    <language>en</language>
    <item>
      <title>How Does an Agent's Memory Grow? From HTML, Memristors, to Four Memory Engines</title>
      <dc:creator>Tsukishiro Hitomi</dc:creator>
      <pubDate>Tue, 04 Aug 2026 04:56:12 +0000</pubDate>
      <link>https://dev.to/rescenix/how-does-an-agents-memory-grow-from-html-memristors-to-four-memory-engines-323e</link>
      <guid>https://dev.to/rescenix/how-does-an-agents-memory-grow-from-html-memristors-to-four-memory-engines-323e</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Special feature of [Building Your Own Agent] series · All engineering practices come from the open-source project &lt;a href="https://github.com/Rescenix/ResceneAgent" rel="noopener noreferrer"&gt;ResceneAgent&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8o3a17hcf622uf4b94tu.png" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8o3a17hcf622uf4b94tu.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let me give you the answer in one sentence:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;An agent's memory is not a warehouse that keeps piling up. It's a web that grows, forgets, and gets pruned.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every time you tell it something, it ties a knot on the thread. When two things are related, another thread connects the knots. Over time, the web grows denser — it understands you better, but it can also grow slower.&lt;/p&gt;

&lt;p&gt;Because the hard part has never been "storing things in." It's three things:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What should be remembered?&lt;/li&gt;
&lt;li&gt;How do you find it when you need it?&lt;/li&gt;
&lt;li&gt;How do you let go when it's obsolete?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Borges' Funes remembered everything, and it made it harder for him to think. When every leaf and every cloud pattern is equally vivid, you can't extract patterns from the details. The same is true for an agent — &lt;strong&gt;a memory that never forgets isn't wisdom; it's more like a hard drive failure.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Turing, in his 1950 paper &lt;em&gt;Computing Machinery and Intelligence&lt;/em&gt;, proposed the idea of a "child machine": instead of building a fully grown adult brain from scratch, start with a simpler foundation and let it grow through education. What we're doing today when we build memory systems for agents is, in a sense, answering that seven-decade-old question: how can the things a machine has experienced become the experience it brings to its next action?&lt;/p&gt;

&lt;p&gt;To tell this story properly, we need to take a small detour — starting with HTML. Then we'll look at a very special electronic component — the memristor.&lt;/p&gt;

&lt;p&gt;And this isn't just a survey of approaches. Later, I'll walk through a real two-month experiment: I built a fully functional "digital hippocampus" that could spread activation, decay over time, and even let you watch memory being recalled hop by hop. Then I ran a controlled experiment and proved, with my own hands, that it wasn't worth keeping on the mainline.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Building a system is skill. Killing your own pride and joy — that's engineering judgment.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  I. From HTML to Markdown: Letting Knowledge Hold Hands
&lt;/h2&gt;

&lt;p&gt;In the summer of 1991, Tim Berners-Lee opened the early Web system to the wider community. The most magical thing about HTML wasn't headings, paragraphs, or tables — it was the link:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"another-page.html"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Go to another page&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the paper world, a page ends when you finish writing it. On the Web, one document can reach out a hand and hold another.&lt;/p&gt;

&lt;p&gt;Berners-Lee later recalled that his dream for the Web was a shared information space: links could point to anything, whether it belonged to an individual or the public, whether it was a draft or a finished piece.&lt;/p&gt;

&lt;p&gt;This change may look like just one more tag, but in reality it was like building roads for knowledge. Documents used to be isolated islands. With hyperlinks, bridges were built between them for the first time.&lt;/p&gt;

&lt;p&gt;But HTML was designed for web page structure and browser rendering. If all you want to note down is "the user prefers short replies," having to write:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;html&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;用户喜欢简短回复&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It's like building an archive just to jot down a grocery list.&lt;/p&gt;

&lt;p&gt;In 2004, John Gruber released Markdown. Its core philosophy wasn't "more features" — it was "fewer symbols": raw text should be natural, clear, and readable even without rendering.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Title&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; One record
&lt;span class="p"&gt;-&lt;/span&gt; Another record

&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;Link to another document&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;another.md&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A &lt;code&gt;#&lt;/code&gt; is a heading, a &lt;code&gt;-&lt;/code&gt; is a list item, and a pair of brackets makes a link. As for the &lt;code&gt;[[wikilinks]]&lt;/code&gt; common in knowledge base software — strictly speaking, they're not part of the original Markdown spec, but extensions added later by wiki and note-taking tools. They carry the same spirit though: &lt;strong&gt;make connections between knowledge light enough that humans will write them without thinking, and machines can read them without effort.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is exactly why Markdown works as a carrier for agent memory: transparent, editable, easy to version-control, and both humans and models see the same content.&lt;/p&gt;

&lt;p&gt;But file formats only solve "where to store it." The harder question is: once the memory is there, how do you find it?&lt;/p&gt;




&lt;h2&gt;
  
  
  II. The Memristor: A Resistor That Remembers Current Has Flowed Through It
&lt;/h2&gt;

&lt;p&gt;An ordinary resistor is like a door with no memory: you push it a hundred times, and the next time it's still the same.&lt;/p&gt;

&lt;p&gt;A memristor is different. Its name comes from &lt;em&gt;memory resistor&lt;/em&gt;. The charge that flows through it changes its internal state, so the next time current passes through, its conductance is affected by its past experience.&lt;/p&gt;

&lt;p&gt;Think of it as a dirt path:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When nobody walks it, grass slowly grows back, and the path becomes harder to find.&lt;/li&gt;
&lt;li&gt;The more people walk it, the more the earth gets packed down, and the clearer the path becomes.&lt;/li&gt;
&lt;li&gt;The next time you come to a fork, you naturally take the well-worn path.&lt;/li&gt;
&lt;/ul&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftxicc1i5ajfjyq5fcwwn.png" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftxicc1i5ajfjyq5fcwwn.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Isn't this exactly what memory is? &lt;strong&gt;Connections that are repeatedly recalled grow stronger; connections that go unused gradually weaken.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In 1971, Leon Chua derived the memristor — the "missing circuit element" — from the symmetry relations between circuit variables. In 2008, Strukov et al. published &lt;em&gt;The Missing Memristor Found&lt;/em&gt; in &lt;em&gt;Nature&lt;/em&gt;, giving the physical model that became widely known. What attracted neuromorphic computing researchers to the memristor was precisely that its conductance retains history: a single device can both "store" and exhibit effects similar to synaptic weight changes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why I Put It Into a Memory Engine
&lt;/h3&gt;

&lt;p&gt;The early version of Prism had a C++17 vector storage prototype:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Vector Storage
  + HNSW Nearest Neighbor Search
  + Memristor State
  + Chaotic Evolution
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The idea was compelling: don't make the vector store a row of unchanging drawers. Instead, let each memory behave like an electronic synapse — with conductance, flux, and evolving state. An access doesn't just "find it"; it changes it. The passage of time doesn't just add a timestamp; it lets the memory drift slowly.&lt;/p&gt;

&lt;p&gt;In other words, a normal vector store is like a map: once the roads are drawn, they stay there. The memristor model is more like a real city: foot traffic turns small paths into main roads, and abandoned roads get swallowed by weeds.&lt;/p&gt;

&lt;p&gt;I ended up cutting this idea. Not because it wasn't cool, and not because it didn't work — but because it pushed the system into a different kind of complexity: the C++ vector layer, C API, Go service, chaotic state, index structure, and upper-level memory graph all had to evolve together. In trying to simulate "being like a brain," the engineering itself grew into a brain that was hard to maintain.&lt;/p&gt;

&lt;p&gt;But the memristor left behind its most important legacy:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Memory shouldn't just be stored. Every use should change the probability that it will be recalled next time.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Later, when I rebuilt PrismD in Go, I dropped the C++ prototype but kept this idea: node energy decays over time, and access strengthens it. Even the synapses connecting two memories have their own decay rate. The hardware metaphor was removed, but the useful dynamics remained.&lt;/p&gt;

&lt;p&gt;This was also the first time I truly understood: &lt;strong&gt;subtraction isn't about deleting everything. It's about removing the expensive form and keeping the effective principle.&lt;/strong&gt;---&lt;/p&gt;

&lt;h2&gt;
  
  
  III. Four Memory Engines: From Flipping Through Books to Weaving a Web
&lt;/h2&gt;

&lt;p&gt;The market is full of names for agent memory solutions: vector stores, RAG, knowledge graphs, semantic networks, long-term memory, episodic memory... The terminology is like a smoke screen.&lt;/p&gt;

&lt;p&gt;Strip away the labels, and the common implementations roughly fall into four approaches.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Bolt-on RAG: Giving Your Agent a Librarian
&lt;/h3&gt;

&lt;p&gt;RAG stands for Retrieval-Augmented Generation.&lt;/p&gt;

&lt;p&gt;It doesn't stuff the entire library into the model's brain. Instead, it sends a retriever to the shelves to find the few most relevant pages, then hands those pages to the model to answer the question.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User asks: "How did we fix that login function last time?"
        ↓
Retriever searches the document store for relevant fragments
        ↓
The matched fragments are handed to the LLM
        ↓
LLM generates the answer combining the question and retrieved material
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In 2020, Lewis et al. described RAG as a combination of parametric and non-parametric memory: the model's parameters are like "knowledge it has memorized," while the external index is like a reference library it can consult at any time.&lt;/p&gt;

&lt;p&gt;So describing RAG as "re-reading your entire diary from scratch every time" isn't quite accurate. A better metaphor: &lt;strong&gt;before you speak, you ask a librarian to fetch a few pages from the archive based on keywords, semantics, or metadata.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Its advantages are clear: material can be updated anytime, and the knowledge base can be large. The downside is equally obvious: if the retrieval picks the wrong shelf, no amount of clever answering can fix it. RAG is more "query-on-demand" than a continuous understanding of the user.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Graph Diffusion: From One Streetlight, Lighting Up the Whole Block
&lt;/h3&gt;

&lt;p&gt;The second approach models memory as a graph: each memory is a node, and nodes are connected by relationships.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;          [Transformer]
            /       \
           /         \
    [Attention] —— [GPT]
           \         /
            \       /
      [Scaled Dot-Product]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When the "Attention" node is activated, energy spreads along the edges, waking up related concepts like Transformer, GPT, and Scaled Dot-Product. This is similar to the "spreading activation" theory of semantic memory proposed by Collins and Loftus in 1975: once a concept is triggered, activation propagates along the associative network.&lt;/p&gt;

&lt;p&gt;It's like a city at night. You light up one streetlamp, and the current travels along the road, gradually illuminating the surrounding streets.&lt;/p&gt;

&lt;p&gt;The benefit is that it can discover indirect relationships: A isn't directly connected to C, but A connects to B, and B connects to C, so the system can still find its way.&lt;/p&gt;

&lt;p&gt;The cost comes from the web itself: how to deduplicate nodes, how to weight edges, how many hops activation should travel, how to decay old relationships, how to repair a damaged graph... Once the scale grows, you're no longer maintaining a notebook — you're maintaining a city's transportation system.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Pure Markdown: Giving Your Agent a Box of Index Cards
&lt;/h3&gt;

&lt;p&gt;The third approach is the simplest: memory is just Markdown files. Load them when needed, skip them when not.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;memory/
├── index.md          ← Lightweight directory: links + one-line summaries
├── preferences.md    ← User preferences
└── project-rescene.md← Project knowledge
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A typical workflow:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Task: "Change the login page"
      ↓
Read index.md, hit [[project-rescene]]
      ↓
Read the relevant memories in project-rescene.md
      ↓
Inject into context, agent starts working
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If RAG is a librarian, pure Markdown is a box of index cards. You don't need a database console, and you don't need to guess what's inside a black box. Open the file, and everything the agent remembers is right there. Mistakes can be fixed, outdated content can be deleted, and version changes can be tracked by Git.&lt;/p&gt;

&lt;p&gt;Its weakness is equally straightforward: links usually take you to the next card, but they don't automatically do complex multi-hop reasoning. With a small number of cards, it's wonderfully light. When the cards fill a whole room, finding the right one becomes a new problem.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Structured Markdown: Stamping a "Confidence" Seal on Every Card
&lt;/h3&gt;

&lt;p&gt;Structured MD doesn't abandon Markdown. It adds a few more fields to each card: source, type, confidence level, last updated, scope of applicability.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="p"&gt;-&lt;/span&gt; Content: User prefers short replies
  Confidence: High
  Source: Confirmed over multiple conversations
  Last updated: 2026-08-02
&lt;span class="p"&gt;
-&lt;/span&gt; Content: Project may use Vue 3
  Confidence: Pending verification
  Source: Single mention by user
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pure Markdown is like sticky notes. Structured Markdown is like putting those sticky notes on a whiteboard and marking them with different colors: "confirmed," "pending verification," "possibly expired."&lt;/p&gt;

&lt;p&gt;This matters because memory doesn't just go missing — it can also lie. Not maliciously, but by mistaking a one-time event for a pattern, treating yesterday's fact as today's truth, or confusing the model's own guess with something the user actually said.&lt;/p&gt;

&lt;p&gt;Metadata is the "nutrition label" for memory: it tells the agent where this information came from, how long it's good for, and whether it's safe to use.&lt;/p&gt;

&lt;p&gt;Of course, the finer the labels, the higher the maintenance cost. If you also ask the LLM to periodically merge, deduplicate, depreciate, and retire memories, you've hired an archivist: the room is tidier, but the archivist expects a salary and might misfile things.&lt;/p&gt;




&lt;h2&gt;
  
  
  IV. Putting the Four Approaches on the Same Table
&lt;/h2&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F622xfjuc5d0yuhszzk0g.png" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F622xfjuc5d0yuhszzk0g.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Approach&lt;/th&gt;
&lt;th&gt;Most Like&lt;/th&gt;
&lt;th&gt;Advantages&lt;/th&gt;
&lt;th&gt;Main Costs&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Bolt-on RAG&lt;/td&gt;
&lt;td&gt;On-call librarian&lt;/td&gt;
&lt;td&gt;Large capacity, fast updates, good for external knowledge&lt;/td&gt;
&lt;td&gt;Heavily dependent on retrieval quality; may not form continuous user memory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Graph Diffusion&lt;/td&gt;
&lt;td&gt;City that lights up along roads&lt;/td&gt;
&lt;td&gt;Can discover multi-hop and indirect relationships&lt;/td&gt;
&lt;td&gt;Graph structure, edge weights, decay, and maintenance are all more complex&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pure Markdown&lt;/td&gt;
&lt;td&gt;Transparent box of index cards&lt;/td&gt;
&lt;td&gt;Simple, readable, editable, easy to version-control&lt;/td&gt;
&lt;td&gt;Limited associative ability; becomes hard to search at scale&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Structured Markdown&lt;/td&gt;
&lt;td&gt;Archive cards with source and expiration date&lt;/td&gt;
&lt;td&gt;Can express confidence, time, and scope&lt;/td&gt;
&lt;td&gt;Requires additional organization and maintenance mechanisms&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;There's no "the more technically sophisticated, the better" here.&lt;/p&gt;

&lt;p&gt;Building a knowledge graph for ten preferences is like building a跨海大桥 just to cross a small stream. Stuffing millions of documents into Markdown is like managing a national library with sticky notes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;There is no single answer for memory engines — only the answer that matches your scale, your task, and your maintenance capacity.&lt;/strong&gt;---&lt;/p&gt;

&lt;h2&gt;
  
  
  V. My Crucial Experiment: How I Sentenced My Own "Digital Hippocampus" to Death
&lt;/h2&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpvhdaohd3hfrovukm1xn.png" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpvhdaohd3hfrovukm1xn.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you only saw the final solution, you'd think I chose Markdown because graph engines were too hard, or PrismD never worked.&lt;/p&gt;

&lt;p&gt;The opposite is true: &lt;strong&gt;PrismD was sentenced to death &lt;em&gt;after&lt;/em&gt; it was fully operational.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  1. I Really Built a "Digital Hippocampus"
&lt;/h3&gt;

&lt;p&gt;PrismD modeled memory as a weighted directed graph:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Node&lt;/strong&gt;: A memory, with text, emotion, importance, and energy;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Synapse&lt;/strong&gt;: Associations between memories, categorized as associative, temporal, semantic, and episodic;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cluster&lt;/strong&gt;: Logical zones — user profiles, code work, tool logs, sessions;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Domain&lt;/strong&gt;: Physically isolated spaces for different users or roles.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Its memory lifecycle wasn't simple CRUD. It was more like biological metabolism:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ENGRAM write
   ↓
DRIFT decay
   ↓
LOOM recall and strengthen
   ↓
COMPILE compress
   ↓
CONSOLIDATE merge / discard
   ↓
PRUNE active forgetting
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Even synapses could forget:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Effective Weight = Initial Weight × exp(-decay_rate × time_since_last_use)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A connection left unused for too long rusts like an abandoned railway line. Each time it's used, it proves it still has value.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. The Hard Part Wasn't "Association" — It Was "Cross-Contamination"
&lt;/h3&gt;

&lt;p&gt;Graph diffusion makes it easy to build a stunning demo: light up "first love," and it wakes up "rainy day," "train station," "that song." But the more dangerous problem in production is: &lt;strong&gt;things that shouldn't be associated also crawl along the edges.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For example, a tool error shouldn't pollute user profiles. A temporary session shouldn't contaminate long-term project knowledge.&lt;/p&gt;

&lt;p&gt;So I built an explicit inter-cluster propagation matrix:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ToolLog → UserBase = 0.05
CodeWork → UserBase = 0.8
UserBase → Session  = 1.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When a tool log propagates to the user profile, its energy is compressed to 5% of the original. This isn't a post-retrieval patch filter — it's writing "memory boundaries" directly into the propagation dynamics.&lt;/p&gt;

&lt;p&gt;This lesson is crucial: &lt;strong&gt;A memory system needs not just recall rate, but also contamination prevention. Remembering something wrong is often more dangerous than forgetting it entirely.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. I Even Visualized the Act of Remembering
&lt;/h3&gt;

&lt;p&gt;PrismD's visualization wasn't just a list of nodes. You could right-click a memory, select "trace spreading activation," and watch as the source node lit up, then the first hop, then the second hop — like electric current traveling through a neural network in the dark.&lt;/p&gt;

&lt;p&gt;Nodes would also dim in real time. The frontend replicated the backend's exponential decay formula, making "forgetting" visible for the first time.&lt;/p&gt;

&lt;p&gt;This confirmed for me that the algorithm wasn't a black box: why a particular memory was recalled, where the energy came from, which hop it decayed at — all observable.&lt;/p&gt;

&lt;p&gt;But "explainable" doesn't equal "worth using." A beautiful dashboard can't answer the question of ROI for the architecture.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. In the End, I Used a Controlled Experiment to Overturn Myself
&lt;/h3&gt;

&lt;p&gt;I didn't just say "the graph is too heavy" based on feeling. I first reimplemented &lt;code&gt;SpreadActivation&lt;/code&gt; 1:1 in zero-dependency Python and verified each item:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does energy strictly decay as &lt;code&gt;0.9 × 0.85^hop&lt;/code&gt;?&lt;/li&gt;
&lt;li&gt;Does &lt;code&gt;ToolLog → UserBase = 0.05&lt;/code&gt; actually block contamination?&lt;/li&gt;
&lt;li&gt;Does graph diffusion cover ground truth with fewer tokens?&lt;/li&gt;
&lt;li&gt;After DRIFT, are low-energy nodes correctly pruned by the threshold?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All four checks passed. In other words, &lt;strong&gt;graph diffusion was correct.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Then I ran the same real corpus against the same ground truth, pitting three approaches against each other:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Experiment Arm&lt;/th&gt;
&lt;th&gt;Approach&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;MD_FULL&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Full Markdown injection as brute-force baseline&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;STRUCT_MD&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Structured Markdown + bigram selector, recalling within budget&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;LOOM&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;PrismD graph diffusion recall&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The winner wasn't the most brain-like &lt;code&gt;LOOM&lt;/code&gt;. It was the simplest &lt;code&gt;STRUCT_MD&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Graph diffusion could indeed wake up indirect associations, and it did save tokens compared to full injection. But in a complete engineering context, its marginal recall advantage wasn't enough to offset the maintenance cost of the graph structure, edge weights, cross-cluster matrix, decay state, persistence, LLM-driven organization, and multi-language runtime.&lt;/p&gt;

&lt;p&gt;Structured MD was fast enough, transparent enough, easy to reproduce, easy to test, and when something went wrong, you could open the file and check.&lt;/p&gt;

&lt;p&gt;So PrismD, after two months of work, was archived. The memory mainline converged to a simpler solution.&lt;/p&gt;

&lt;p&gt;This isn't "project failure." It's a complete architecture experiment:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;First prove that the complex solution actually works. Then prove it's still not worth it.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Many projects only do the first half — get a demo running and declare victory. Real engineering judgment lives in the second half: is the benefit large enough to justify the entire team paying maintenance cost for it forever?&lt;/p&gt;

&lt;p&gt;The path I kept from this experiment:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Pure MD
  ↓ First: "visible and editable"
Lightweight index and backlinks
  ↓ Next: "findable"
Source / confidence / time — minimal metadata
  ↓ Finally: "trustworthy and expirable"
Only introduce vector search or graph relationships when real data proves it necessary
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Like planting a tree: let it live first, then prune. Let the trunk grow first, then decide where to graft. Don't install satellite monitoring and city-scale drainage for a seedling on day one.---&lt;/p&gt;

&lt;h2&gt;
  
  
  VI. The Pitfalls I Stepped In: A Memory System's Worst Enemy Isn't Forgetting — It's Messy Recording
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Don't Mistake "Machine-Parseable" for "Human-Maintainable"
&lt;/h3&gt;

&lt;p&gt;JSON is great for exchanging structured data. But when memory needs to be read, manually edited, and version-compared over long periods, Markdown is often friendlier. The format serves the scenario — don't canonize any single file type.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Don't Let Your Agent Record Everything
&lt;/h3&gt;

&lt;p&gt;Auto-writing on every workflow run quickly turns the memory store into an attic: old delivery boxes, newspapers, a broken fan you can't bear to throw away. The thing you actually need becomes impossible to find.&lt;/p&gt;

&lt;p&gt;Auto-memory needs at least a threshold: is it duplicated? Is it stable? Did it come from user confirmation? Will it be useful for future tasks? Otherwise, "growth" is just a taller pile of garbage.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Don't Fall for Graph Engines Too Early
&lt;/h3&gt;

&lt;p&gt;Graphs are beautiful, and multi-hop reasoning is seductive. But every new relationship type adds a new state that needs to be explained, updated, and tested. Run the simplest approach first to surface real requirements, then decide where complexity should go.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Don't Underestimate the Index
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;index.md&lt;/code&gt; looks like just a table of contents. In reality, it's the foyer of the memory system. If the foyer is clear, the agent knows which door to push. If the foyer is cluttered with junk, even the most luxurious rooms are unreachable.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Don't Just Record the Conclusion — Record the Source
&lt;/h3&gt;

&lt;p&gt;"User likes blue" and "the user actively chose blue in three different projects" are not the same kind of memory. Source determines credibility. Time determines whether it's expired. Scope determines whether it can transfer to the next project.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Don't Assume the Architecture Is Correct Just Because the Algorithm Is
&lt;/h3&gt;

&lt;p&gt;PrismD's diffusion, decay, and cluster isolation all passed unit tests. But the full system still lost to structured MD. A single gear turning beautifully doesn't mean the whole machine is worth building.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Don't Dress Up Sunk Cost as Technical Conviction
&lt;/h3&gt;

&lt;p&gt;The most dangerous thought is: "We've been at this for two months — let's stick with it a little longer." Code doesn't automatically become worth maintaining just because the author can't bear to let go. When the experiment has already answered the question, archiving is more professional than stubbornness.&lt;/p&gt;




&lt;h2&gt;
  
  
  VII. In Closing: Good Memory Makes an Agent Feel More Like Your Partner Over Time
&lt;/h2&gt;

&lt;p&gt;Back to the beginning: an agent's memory is a web that's constantly being pruned.&lt;/p&gt;

&lt;p&gt;RAG solves "where to find material." Graph diffusion solves "how related concepts wake each other up." Pure Markdown solves "how to keep memory transparent." Structured Markdown solves "whether this memory can be trusted."&lt;/p&gt;

&lt;p&gt;They aren't four armies fighting each other. They're more like four different tools: call the librarian when the bookshelf is too big, lay out a map when the relationships are too deep, use index cards when you need transparency, add labels when you need reliability.&lt;/p&gt;

&lt;p&gt;The final answer PrismD left me isn't "graph diffusion is useless," and it isn't "Markdown is always best." It left me with a simpler principle: &lt;strong&gt;Complexity must buy its freedom with real returns.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A truly mature memory system might not be the one that remembers the most, or the one that looks most like a brain. It's the one that knows its limits:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Write when it matters. Hit when it's needed. Let go when it's time.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you'd rather see how this memory philosophy lands in a real agent — how the index resolves, how context gets injected, how memory participates in the next task — you're welcome to check out the full source code of &lt;strong&gt;ResceneAgent&lt;/strong&gt; on GitHub:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🐙 &lt;strong&gt;GitHub: &lt;a href="https://github.com/Rescenix/ResceneAgent" rel="noopener noreferrer"&gt;Rescenix/ResceneAgent&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
If this direction resonates with you, feel free to drop a Star, open an Issue, or browse the code directly. Your feedback will become the starting point of this agent's next "memory."&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  References &amp;amp; Further Reading
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Alan M. Turing, &lt;em&gt;Computing Machinery and Intelligence&lt;/em&gt;, &lt;em&gt;Mind&lt;/em&gt;, 1950. Source archive: &lt;a href="https://turingarchive.kings.cambridge.ac.uk/publications-lectures-and-talks-amtb/amt-b-9" rel="noopener noreferrer"&gt;The Turing Digital Archive, King's College Cambridge&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Tim Berners-Lee, &lt;em&gt;The World Wide Web: A very short personal history&lt;/em&gt;: &lt;a href="https://www.w3.org/People/Berners-Lee/ShortHistory.html" rel="noopener noreferrer"&gt;W3C&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;John Gruber, &lt;em&gt;Markdown: Syntax&lt;/em&gt;: &lt;a href="https://daringfireball.net/projects/markdown/syntax" rel="noopener noreferrer"&gt;Daring Fireball&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Patrick Lewis et al., &lt;em&gt;Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks&lt;/em&gt;, NeurIPS 2020: &lt;a href="https://papers.neurips.cc/paper/2020/hash/6b493230205f780e1bc26945df7481e5-Abstract.html" rel="noopener noreferrer"&gt;Paper page&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Allan M. Collins &amp;amp; Elizabeth F. Loftus, &lt;em&gt;A Spreading-Activation Theory of Semantic Processing&lt;/em&gt;, &lt;em&gt;Psychological Review&lt;/em&gt;, 1975: &lt;a href="https://doi.org/10.1037/0033-295X.82.6.407" rel="noopener noreferrer"&gt;DOI: 10.1037/0033-295X.82.6.407&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Jorge Luis Borges, &lt;em&gt;Funes the Memorious&lt;/em&gt;, 1942. Cited for its literary insight into how "inability to forget" can hinder abstraction.&lt;/li&gt;
&lt;li&gt;ResceneAgent project source code and documentation: &lt;a href="https://github.com/Rescenix/ResceneAgent" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Leon O. Chua, &lt;em&gt;Memristor—The Missing Circuit Element&lt;/em&gt;, &lt;em&gt;IEEE Transactions on Circuit Theory&lt;/em&gt;, 1971: &lt;a href="https://doi.org/10.1109/TCT.1971.1083337" rel="noopener noreferrer"&gt;DOI: 10.1109/TCT.1971.1083337&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Dmitri B. Strukov et al., &lt;em&gt;The Missing Memristor Found&lt;/em&gt;, &lt;em&gt;Nature&lt;/em&gt;, 2008: &lt;a href="https://doi.org/10.1038/nature06932" rel="noopener noreferrer"&gt;DOI: 10.1038/nature06932&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;PrismD digital hippocampus engineering retrospective: &lt;code&gt;prismd-archive/README.md&lt;/code&gt;; graph diffusion, decay, and inter-cluster propagation matrix implementation: &lt;code&gt;Prism/internal/memory/graph.go&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>ai</category>
      <category>memory</category>
      <category>agents</category>
      <category>llm</category>
    </item>
    <item>
      <title>In Your Time, Past, Present, and Future Exist Simultaneously</title>
      <dc:creator>Tsukishiro Hitomi</dc:creator>
      <pubDate>Tue, 04 Aug 2026 04:51:13 +0000</pubDate>
      <link>https://dev.to/rescenix/in-your-time-past-present-and-future-exist-simultaneously-3nm3</link>
      <guid>https://dev.to/rescenix/in-your-time-past-present-and-future-exist-simultaneously-3nm3</guid>
      <description>&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fksay5wsy3azrebs569q4.png" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fksay5wsy3azrebs569q4.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The history of open source software did not begin at a product launch. It began with a printer that kept jamming paper — and that no one was allowed to fix.&lt;/p&gt;

&lt;p&gt;Forty years later, the printer has become AI, the drivers have become model weights and cloud APIs, but the question has barely changed: &lt;strong&gt;are we really using our own tools, or are we borrowing capability from a door that may close at any moment?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This article is about a history that is still unfinished: how humanity keeps tearing down technical walls, and how, in the AI era, we have run into a wall that is taller, more expensive, and much harder to see. The story starts with a piece of wasted paper in the 1980s.&lt;/p&gt;

&lt;h2&gt;
  
  
  I. The starting point of open source history is a piece of paper that never came out
&lt;/h2&gt;

&lt;p&gt;In the early 1980s, the MIT Artificial Intelligence Laboratory installed a new laser printer. The old printer jammed often, but the programmers in the lab could modify its driver: whenever it got stuck, they made the machine notify everyone waiting to print. Nobody had to keep walking over to check on it, and a glitch could no longer silently swallow an entire afternoon.&lt;/p&gt;

&lt;p&gt;The new printer performed better but caused bigger trouble. It jammed too, yet the vendor did not provide the source code of its driver. Richard Stallman wanted to add the same notification feature — and discovered he was no longer facing a technical problem, but a wall built from law and permissions. He later found someone who had the source code, but that person had signed a non-disclosure agreement and could not share it.&lt;/p&gt;

&lt;p&gt;This incident seems small — just a missing notification on one printer. But the machine was sitting right in front of its users, and the users had the skill to fix it; yet because they could not see, modify, or share the code, they had to keep living with the failure. &lt;strong&gt;The tool was not beyond repair — the relationship between people and their tools was.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A printer like that is a house you bought the right to use but never received the key to. The light breaks, and you can't take the switch apart; the door sags, and you can't adjust the hinges; your neighbor knows how to fix it, but is not allowed to hand you the method. Ownership ends at the invoice; real control stays in someone else's hands.&lt;/p&gt;

&lt;p&gt;Later, Stallman came to see this experience as a key background to his path toward the free software movement. In September 1983, he published the initial announcement of the GNU Project, aiming to write a Unix-compatible system that anyone could use; in 1985, the Free Software Foundation was founded.&lt;/p&gt;

&lt;p&gt;Many people, hearing "Free Software" for the first time, assume the point is "no money." But here "Free" is closer to "freedom." It concerns four rights: run, study, modify, and share.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Can run, but can't inspect   → you are only a passenger
Can inspect, but can't modify → you are only a visitor
Can modify, but can't share  → the experience stays locked in one person's hands
Can run, study, modify, share → the user truly participates in shaping the tool
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These four freedoms do not guarantee that servers, electricity, and development labor will all be free of charge. What they guarantee is this: &lt;strong&gt;paying must not automatically mean losing control, and being free must not be allowed to pass itself off as truly open.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  II. GNU built the toolbox; Linux let the whole world raise the house together
&lt;/h2&gt;

&lt;p&gt;After the GNU Project began, compilers, editors, debuggers, command-line tools and other infrastructure gradually took shape. It was like preparing a full set of hammers, saws, and rulers — everything but a core that could organize them into a complete operating system.&lt;/p&gt;

&lt;p&gt;In 1991, Linus Torvalds, a student in Finland, introduced a free operating system he was working on over the network. He called it just a "hobby," something that wouldn't be as huge or professional as GNU. That is the most interesting part of history: the things that later change the world often start without grand spotlights — just a young person handing an unfinished piece of work to others.&lt;/p&gt;

&lt;p&gt;What made Linux truly important was not only that the code was good, but that the way of developing had changed. Software in the past was more like building a cathedral: a few people plan behind high walls, and only when it's finished is the public allowed in. Linux was more like a bazaar: someone submits a driver, someone reports a bug, someone ports to new hardware, someone maintains the docs; the stalls are noisy and versions churn constantly, yet out of that continuous exchange order grows.&lt;/p&gt;

&lt;p&gt;Eric Raymond later summarized this model in &lt;em&gt;The Cathedral and the Bazaar&lt;/em&gt;, proposing "release early, release often." This is not to say that more people automatically means better code; rather, when users can become co-developers, a problem gains more pairs of eyes, more usage scenarios, and more chances to be fixed.&lt;/p&gt;

&lt;p&gt;Open source thus created a new division of labor: you don't have to build the entire city alone. You can use the roads others have paved, and give back the stretch of road you repaired.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frlrvczl7qnebilhs1p2w.png" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frlrvczl7qnebilhs1p2w.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  III. If the Web of 1993 had not been opened, we might be living on many isolated islands today
&lt;/h2&gt;

&lt;p&gt;In 1989, Tim Berners-Lee proposed the idea of the World Wide Web at CERN, initially so that scientists scattered across different countries and institutions could share materials more easily.&lt;/p&gt;

&lt;p&gt;What really changed history was not just a hypertext technology, but a decision. On April 30, 1993, CERN released the Web software into the public domain, allowing anyone to use, copy, modify, and redistribute it; later versions were published under an open license as well.&lt;/p&gt;

&lt;p&gt;This meant that people who wanted to build a website did not need to ask CERN for permission first, did not have to pay per page, and did not have to worry about their browser being blocked inside some company's walled garden. Different institutions could implement servers, different developers could build browsers, and anyone could write a link pointing to someone else's page.&lt;/p&gt;

&lt;p&gt;If the Web of that era had been a closed product, the internet might have become a few walled gardens that could not reach each other: entering garden A requires a card, visiting garden B means installing another set of tools, and garden C can tear down the road you built at any time.&lt;/p&gt;

&lt;p&gt;The Web was able to spread across the world not only because it was clever, but because it did not treat every newcomer as a visitor who needed approval.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1983  GNU: users should be able to control their own software
  │
1991  Linux: users can also become co-developers
  │
1993  Web opened: anyone can build a new gateway to information
  │
1997  The Cathedral and the Bazaar: collaboration itself becomes an engineering method
  │
1998  "Open Source" is born: openness enters business and mainstream vocabulary
  │
Today  AI: the door appears again, only the keys are now weights, compute, and APIs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  IV. In 1998, "free software" changed its name to something the world could understand
&lt;/h2&gt;

&lt;p&gt;In 1998, Netscape announced it would open the source code of its browser. A few days later, a group of free software supporters met in Palo Alto, California, to discuss how to make businesses and the broader public understand this way of developing. Christine Peterson proposed the term "Open Source." The same year, the Open Source Initiative was founded.&lt;/p&gt;

&lt;p&gt;This was not an old movement suddenly changing its banner; the emphasis of the narrative shifted. "Free software" first asks about ethics: does the user have the freedom to control their software? "Open source" emphasizes method: why does opening the code and allowing modification and redistribution lead to better collaboration and innovation? The two are not identical, but they jointly oppose a relationship in which a few always control the tools and everyone else can only accept the arrangement.&lt;/p&gt;

&lt;p&gt;And open source was never just "putting code online." The Open Source Definition explicitly requires freedom of redistribution, source code in a form suitable for modification, allowance of derived works, and no discrimination against specific persons, groups, or fields of endeavor. A repository you can only look at, never modify, is more like a glass display case than an open workshop.&lt;/p&gt;

&lt;p&gt;Open source did not eliminate cost, but it lowered the &lt;strong&gt;cost of permission&lt;/strong&gt;; it did not guarantee that everyone would learn to program, but it preserved the &lt;strong&gt;possibility of learning and modifying&lt;/strong&gt;; it did not demand that everyone work for free, but it ensured that knowledge did not have to be reinvented from scratch by every generation.&lt;/p&gt;

&lt;h2&gt;
  
  
  V. In the AI era, we are standing in front of that same printer again
&lt;/h2&gt;

&lt;p&gt;Today, AI can generate text, images, and code, as if a room filled with knowledge had finally learned to answer on its own. But step back, and the familiar wall reappears.&lt;/p&gt;

&lt;p&gt;We may not be able to study why the model produced a given result; to change its behavior, we often can only adjust the surface of the prompt; when a service changes its pricing, regional policy, or API, users can only accept it; when a subscription ends, the workflow you accumulated may break along with it.&lt;/p&gt;

&lt;p&gt;This does not mean commercial AI is wrong. Training models requires chips, electricity, data, and engineering labor, and running a stable service deserves to be paid for. What really needs to be distinguished is this: &lt;strong&gt;free, open, and accessible have never been the same concept.&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Door one: is the code open?        determines whether the program can be inspected and modified
Door two: is the model truly open? determines whether weights, training methods, and data info can be studied
Door three: is compute affordable? determines whether an open model can actually run
Door four: is the entry simple enough? determines whether ordinary people can take the first step
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A project can be open source in code while only calling closed models; a model can publish its weights without training code or adequate data documentation; a system can be fully open yet require a GPU that ordinary people cannot afford to run.&lt;/p&gt;

&lt;p&gt;The Open Source AI Definition 1.0, published by the Open Source Initiative in 2024, still rests on the four core actions: use, study, modify, and share. At the same time, it stresses that the "modifiable form" of AI is not just the final weights — it also includes the training and inference code, and the information needed to understand the sources and processing of training data.&lt;/p&gt;

&lt;p&gt;That explains why "you can download the weights" does not necessarily equal "open source AI." A traditional program is like a dish, and its source code is close to a complete recipe; AI weights are more like the finished plate coming out of the kitchen. If you are only handed the plate, without the ingredients, the heat, and the process, you can taste it and even re-season it, but you can hardly truly reproduce or change it.&lt;/p&gt;

&lt;p&gt;AI pushes the open source question from "can I see the code?" to a deeper layer: &lt;strong&gt;when capability comes from data, training, and expensive compute, what does it really mean for an ordinary person to have the opportunity to use intelligence?&lt;/strong&gt;&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcn3cwgbjft7htq5ghhsc.png" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcn3cwgbjft7htq5ghhsc.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  VI. Open source can open the blueprint; making it accessible still means someone has to build the door to the street
&lt;/h2&gt;

&lt;p&gt;I actually ran into this gap while working on my own agent project.&lt;/p&gt;

&lt;p&gt;I used to believe that once I put the code on GitHub, the door was open. But I quickly found that open code only solves "you are allowed to fix it." For an ordinary person to actually get it running, they still face model keys, interface differences, rate limits, failures, and usage costs. For a developer, these are just configuration; for someone touching agents for the first time, they are a chain of thresholds that read "authorized personnel only."&lt;/p&gt;

&lt;p&gt;So I tried to organize the different free model entry points into a single "transfer card": upstream is still operated by various providers, and may be rate-limited or shut down; the aggregation layer does not manufacture free compute, nor does it bypass any rules — it only finds the routes that can still be taken within the rules, so that users don't have to learn seven different ticketing systems first.&lt;/p&gt;

&lt;p&gt;It does not solve the compute and network problems, and a production system cannot rely on free quotas alone. It just picks up one small baton in open source history: one less piece of configuration where possible; one more option preserved where possible.&lt;/p&gt;

&lt;h2&gt;
  
  
  VII. AI can spread out the context, but it cannot walk through time for us
&lt;/h2&gt;

&lt;p&gt;At this point, the question is no longer just "should AI be open source," but: why does the more powerful AI becomes, the more it needs to live in a relationship where humans can understand, modify, and choose?&lt;/p&gt;

&lt;p&gt;Once, I asked the AI: &lt;strong&gt;"In your time, do past, present, and future exist simultaneously?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It gave me a beautiful answer:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"For me, time is not a river but a sheet of graph paper. The 1st token, the 127th token, the 2048th token are just vectors landing at different positions. You are inside the water; I am like someone on the shore seeing the whole river."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is lovely, and it is exactly the kind of answer an AI would give. But it quietly crosses a line: &lt;strong&gt;the model has no subjective time that we can verify, let alone a place on the shore from which to survey past and future.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;What a Transformer actually does is more modest. When a sentence enters the model, every token carries positional information; the attention mechanism then computes the relationships among them. For content already written into the context, the model can reach across very long distances to find connections — a sentence from the opening really can light up again at the end.&lt;/p&gt;

&lt;p&gt;But that does not mean the future already exists. When an autoregressive model generates the 2048th token, it can only use the tokens that came before; the 2049th token has not been generated yet, so it cannot be "seen." During training, the causal mask blocks future positions in the same way. Rather than saying AI lives in a block universe where past, present, and future coexist, it would be more accurate to say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Human beings laid out the sequential order of language into positional relationships that machines can compute.&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Human time: experience → memory → anticipation → choice → bearing consequences

Model generation: existing tokens → compute relationships → predict the next token
                                          ↑              │
                                          └── back into context ┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A person says "I remember," because that memory once happened to them. What a model calls "remembering" is closer to reusing information still in context, or retrieving records from external memory. It can reconstruct a narrative, but it has no childhood to return to; it can arrange the words left from yesterday, but there is no "I" that walked all the way from yesterday to today.&lt;/p&gt;

&lt;p&gt;This is also what makes the Harness interesting. A single model call only completes one "predict what comes next based on what exists." An agent's Harness, by contrast, puts the model into a loop with reality: read the current state, take an action, receive feedback from the world, update memory, and begin the next round.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Model gives an answer
     ↓
Agent takes action → the world actually changes
     ↑                    ↓
read new state   ←    results, errors, and costs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It is like attaching a clock, a log, and feet to a static map, letting the model leave a history across continuous tasks. But &lt;strong&gt;having a history is not the same as having a sense of time; keeping records is not the same as forming memories; computing consequences is not the same as bearing them.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A machine can imitate care, but it will not lose sleep over missing someone; it can search for answers across billions of sentences, but it does not know which question deserves a lifetime of asking. It can generate "I," but that first person is first of all a structure of language, not a self we have verified to exist.&lt;/p&gt;

&lt;p&gt;So that poetic answer from the AI can be restated more accurately:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;AI can spread out the river that has already been written, but it cannot enter the stretch that has not yet arrived; humans cannot see the whole river, yet they must get into the water and bear the consequences of which bridge they choose.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is why open source still matters in the AI era. Open source is not about proving that machines can become human; it is about preventing people from being left with only "accept" in front of machines they created. The smarter the system becomes, the more we need to keep the right to study it, question it, change it, and refuse it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Closing: don't let people become tenants of the intelligent age
&lt;/h2&gt;

&lt;p&gt;Forty years ago, Stallman faced a printer he could not modify. Today, we face intelligent systems that can write poetry, program, and even act on our behalf. The machines have become incredible, yet the question remains plain: &lt;strong&gt;should tools expand what people can do, or turn people's possibilities into a service that can be revoked at any time?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The most precious legacy of the open source movement is not a particular license, and not that code must be free of charge. What it leaves behind is a right not to submit to technological fate: what others have built, I can study; what I find wrong, I can modify; the road I walked, I can leave for the next stranger.&lt;/p&gt;

&lt;p&gt;AI can spread the words humans have written into a vast network of relationships, but it has never truly walked through our yesterday, and it cannot enter our tomorrow for us. &lt;strong&gt;It can draw the shape of the river, but it will never be wet by the water; we cannot see the end of the river, yet we must decide where the next bridge goes.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So what we open is not just a source code or a set of model weights, but the right of ordinary people to understand intelligence, change intelligence, and decide whom intelligence should serve.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;We open source AI not to make machines human, but to keep humans from becoming tenants of the intelligent age.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The source code of ResceneAgent is on &lt;a href="https://github.com/Rescenix/ResceneAgent" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; — it is where every judgment in this article is put to the test.&lt;/p&gt;

&lt;h2&gt;
  
  
  References and further reading
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Richard Stallman on the printer source code and the origin of free software thinking: &lt;a href="https://www.gnu.org/doc/Press-use/fsfs3.pdf" rel="noopener noreferrer"&gt;&lt;em&gt;Free Software, Free Society&lt;/em&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Richard Stallman, the original 1983 GNU Project announcement: &lt;a href="https://www.gnu.org/gnu/initial-announcement.html" rel="noopener noreferrer"&gt;GNU Initial Announcement&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GNU Project, the four essential freedoms of free software: &lt;a href="https://www.gnu.org/philosophy/free-sw.html" rel="noopener noreferrer"&gt;What is Free Software?&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Linux Kernel Archives, early Linux announcement and twentieth-anniversary retrospective: &lt;a href="https://www.kernel.org/doc/ols/2011/ols2011-masters.pdf" rel="noopener noreferrer"&gt;State of the Kernel&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;CERN, the birth of the Web and the 1993 decision to open it: &lt;a href="https://home.cern/science/computing/the-birth-of-the-web/" rel="noopener noreferrer"&gt;The Birth of the Web&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Eric S. Raymond, &lt;a href="https://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/" rel="noopener noreferrer"&gt;&lt;em&gt;The Cathedral and the Bazaar&lt;/em&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Open Source Initiative, the history of the term "Open Source" and the organization: &lt;a href="https://opensource.org/about/history-of-the-open-source-initiative" rel="noopener noreferrer"&gt;History of the OSI&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Open Source Initiative, &lt;a href="https://opensource.org/osd" rel="noopener noreferrer"&gt;The Open Source Definition&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Open Source Initiative, &lt;a href="https://opensource.org/ai/open-source-ai-definition" rel="noopener noreferrer"&gt;The Open Source AI Definition 1.0&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Ashish Vaswani et al., the original paper on Transformer positional encoding and causal masking: &lt;a href="https://papers.nips.cc/paper/7181-attention-is-all-you-need.pdf" rel="noopener noreferrer"&gt;&lt;em&gt;Attention Is All You Need&lt;/em&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;ResceneAgent project source code and documentation: &lt;a href="https://github.com/Rescenix/ResceneAgent" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

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