<?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: Truvem</title>
    <description>The latest articles on DEV Community by Truvem (@truvem).</description>
    <link>https://dev.to/truvem</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%2F3999479%2F775378d8-c357-4217-8171-63c28bad9abf.png</url>
      <title>DEV Community: Truvem</title>
      <link>https://dev.to/truvem</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/truvem"/>
    <language>en</language>
    <item>
      <title>TMX: The open standard AI agent memory has been waiting for</title>
      <dc:creator>Truvem</dc:creator>
      <pubDate>Fri, 26 Jun 2026 21:19:50 +0000</pubDate>
      <link>https://dev.to/truvem/tmx-the-open-standard-ai-agent-memory-has-been-waiting-for-1cm4</link>
      <guid>https://dev.to/truvem/tmx-the-open-standard-ai-agent-memory-has-been-waiting-for-1cm4</guid>
      <description>&lt;h1&gt;
  
  
  TMX: The open standard AI agent memory has been waiting for
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;The problem no one talks about: your agent's memories are prisoners.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you build an AI agent today using Mem0, your memories are locked in Mem0. Switch to Zep? You lose everything. Move to a new framework? Start from zero.&lt;/p&gt;

&lt;p&gt;This is exactly the problem email had in 1970. Every system had its own format. You couldn't send an email from one system to another.&lt;/p&gt;

&lt;p&gt;Then SMTP was invented. And email became universal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Today I'm publishing TMX v0.1 — the SMTP of AI agent memory.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What is TMX?
&lt;/h2&gt;

&lt;p&gt;TMX (Truvem Memory eXchange) is an open, model-agnostic JSON format for storing, exporting, and importing AI agent memories across any platform, framework, or provider.&lt;/p&gt;

&lt;p&gt;It looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tmx_version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"0.1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"exported_at"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-06-26T20:00:00Z"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"source"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"truvem"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"agent_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"my-agent"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"memories"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"550e8400-e29b-41d4-a716-446655440000"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"User prefers dark mode and concise responses"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"created_at"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-06-01T08:30:00Z"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"updated_at"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-06-01T08:30:00Z"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"expires_at"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"tags"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"preference"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ui"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"source_model"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"gpt-4o"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"metadata"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. Plain JSON. Human-readable. Portable.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why this matters
&lt;/h2&gt;

&lt;p&gt;Right now, the AI agent ecosystem is exploding. Every week there's a new memory provider, a new framework, a new cloud service.&lt;/p&gt;

&lt;p&gt;But every one of them uses a proprietary format.&lt;/p&gt;

&lt;p&gt;This means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Developers are locked to their first choice forever&lt;/li&gt;
&lt;li&gt;Agent memories can't travel between clouds&lt;/li&gt;
&lt;li&gt;Switching providers = losing everything your agent learned&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;This is the biggest hidden tax in the agentic AI stack.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;TMX fixes it with a single open spec that anyone can implement — for free, with no approval needed.&lt;/p&gt;




&lt;h2&gt;
  
  
  The 5 core principles
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Open&lt;/strong&gt; — No license required. Implement TMX in any product, commercial or otherwise.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Model-agnostic&lt;/strong&gt; — Works with GPT-4, Claude, Gemini, Mistral, Llama, or any future model.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Framework-agnostic&lt;/strong&gt; — LangChain, CrewAI, Mastra, AutoGen — doesn't matter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Human-readable&lt;/strong&gt; — Plain JSON. No binary formats. Inspectable by any tool.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Minimal&lt;/strong&gt; — The entire spec fits in one page. Complexity is optional.&lt;/p&gt;




&lt;h2&gt;
  
  
  Using TMX with Truvem today
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://truvem.github.io/truvem" rel="noopener noreferrer"&gt;Truvem&lt;/a&gt; is the reference implementation of TMX. You can start using it right now:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Get your free API key
&lt;/h3&gt;

&lt;p&gt;Sign in with GitHub or Google at &lt;a href="https://truvem.github.io/truvem/login.html" rel="noopener noreferrer"&gt;truvem.github.io/truvem/login.html&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Install the SDK
&lt;/h3&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;truvem
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Write and read memories
&lt;/h3&gt;



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

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Truvem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;your_key&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Write a memory
&lt;/span&gt;&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;remember&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;agent_id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;my-agent&lt;/span&gt;&lt;span class="sh"&gt;"&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="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;User prefers dark mode&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Read memories — from any session, any model
&lt;/span&gt;&lt;span class="n"&gt;memories&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;recall&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;my-agent&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;memories&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# {"status": "ok", "memories": [...]}
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4. Export as TMX
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; GET https://truvem.onrender.com/v1/memory/export?agent_id&lt;span class="o"&gt;=&lt;/span&gt;my-agent &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"x-api-key: your_key"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You get back a valid &lt;code&gt;.tmx.json&lt;/code&gt; file you can import anywhere.&lt;/p&gt;




&lt;h2&gt;
  
  
  Who should implement TMX?
&lt;/h2&gt;

&lt;p&gt;If you're building:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A memory provider (like Mem0, Zep, Letta)&lt;/li&gt;
&lt;li&gt;An agent framework (like LangChain, CrewAI, Mastra)&lt;/li&gt;
&lt;li&gt;A cloud AI service (like AWS Bedrock, Google Vertex)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You should implement TMX. Your users will thank you.&lt;/p&gt;

&lt;p&gt;The requirements to be TMX-compatible are simple:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Export memories in valid TMX JSON format&lt;/li&gt;
&lt;li&gt;Import valid TMX JSON files without data loss&lt;/li&gt;
&lt;li&gt;Preserve all required fields&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No fee. No approval. No committee. Just implement it.&lt;/p&gt;




&lt;h2&gt;
  
  
  The roadmap
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Version&lt;/th&gt;
&lt;th&gt;Features&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;0.1&lt;/strong&gt; (today)&lt;/td&gt;
&lt;td&gt;Core format, basic fields, export/import&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;0.2&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Migration scripts (Mem0→TMX, Zep→TMX), CLI tool&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;0.3&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Memory relationships, temporal invalidation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;1.0&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Stable standard, TMX Foundation, community governance&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  The big picture
&lt;/h2&gt;

&lt;p&gt;In 10 years, there will be more AI agents running than humans on Earth. Every one of them will need persistent memory.&lt;/p&gt;

&lt;p&gt;The question is: who controls that memory?&lt;/p&gt;

&lt;p&gt;If every provider keeps a proprietary format, agent memories become the new walled gardens — like email before SMTP, like the web before HTTP.&lt;/p&gt;

&lt;p&gt;TMX is a bet that open standards win. They always have.&lt;/p&gt;




&lt;h2&gt;
  
  
  Read the spec
&lt;/h2&gt;

&lt;p&gt;The full TMX v0.1 specification is published on GitHub:&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://github.com/truvem/truvem/blob/main/TMX.md" rel="noopener noreferrer"&gt;github.com/truvem/truvem/blob/main/TMX.md&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Try Truvem (the reference implementation):&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://truvem.github.io/truvem" rel="noopener noreferrer"&gt;truvem.github.io/truvem&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;What do you think?&lt;/strong&gt; Is an open standard for agent memory something the ecosystem needs? I'd love feedback on the spec — open a GitHub issue or reply below.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Built by Dieng Amine — solo founder, Abidjan, Côte d'Ivoire.&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Twitter: &lt;a href="https://x.com/gettruvem" rel="noopener noreferrer"&gt;@gettruvem&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>python</category>
      <category>opensource</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How to add persistent memory to any AI agent in 2 API calls</title>
      <dc:creator>Truvem</dc:creator>
      <pubDate>Tue, 23 Jun 2026 22:27:49 +0000</pubDate>
      <link>https://dev.to/truvem/how-to-add-persistent-memory-to-any-ai-agent-in-2-api-calls-b2n</link>
      <guid>https://dev.to/truvem/how-to-add-persistent-memory-to-any-ai-agent-in-2-api-calls-b2n</guid>
      <description>&lt;p&gt;AI agents are powerful. But they forget everything between sessions.&lt;br&gt;
I built Truvem to fix this. Here's how in under 5 minutes.&lt;br&gt;
Step 1 — Get your free API key&lt;br&gt;
curl -X POST &lt;a href="https://truvem.onrender.com/v1/register" rel="noopener noreferrer"&gt;https://truvem.onrender.com/v1/register&lt;/a&gt; -H "Content-Type: application/json" -d '{"email": "&lt;a href="mailto:you@example.com"&gt;you@example.com&lt;/a&gt;"}'&lt;br&gt;
Step 2 — Write a memory&lt;br&gt;
curl -X POST &lt;a href="https://truvem.onrender.com/v1/memory/write" rel="noopener noreferrer"&gt;https://truvem.onrender.com/v1/memory/write&lt;/a&gt; -H "X-API-Key: your_key" -d '{"agent_id": "agent1", "content": "User prefers dark mode"}'&lt;br&gt;
Step 3 — Read it back&lt;br&gt;
curl -X POST &lt;a href="https://truvem.onrender.com/v1/memory/read" rel="noopener noreferrer"&gt;https://truvem.onrender.com/v1/memory/read&lt;/a&gt; -H "X-API-Key: your_key" -d '{"agent_id": "agent1"}'&lt;br&gt;
Works with GPT, Claude, Gemini, Mistral, Llama. Free.&lt;br&gt;
🔗(&lt;a href="https://truvem.github.io/truvem)_" rel="noopener noreferrer"&gt;https://truvem.github.io/truvem)_&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>python</category>
      <category>tutorial</category>
      <category>machinelearning</category>
    </item>
  </channel>
</rss>
