<?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: Becomer.net</title>
    <description>The latest articles on DEV Community by Becomer.net (@becomernet).</description>
    <link>https://dev.to/becomernet</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%2F3962854%2F7c35a451-535f-4e02-b2fe-88d9e3214a6b.png</url>
      <title>DEV Community: Becomer.net</title>
      <link>https://dev.to/becomernet</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/becomernet"/>
    <language>en</language>
    <item>
      <title>Opensource agent framework with persistent memory with 0 token costs</title>
      <dc:creator>Becomer.net</dc:creator>
      <pubDate>Tue, 02 Jun 2026 04:55:20 +0000</pubDate>
      <link>https://dev.to/becomernet/opensource-agent-framework-with-persistent-memory-with-0-token-costs-43jj</link>
      <guid>https://dev.to/becomernet/opensource-agent-framework-with-persistent-memory-with-0-token-costs-43jj</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/becomernet/i-built-a-memory-api-that-beats-mem0-on-longmemeval-without-using-a-single-llm-token-4gah" class="crayons-story__hidden-navigation-link"&gt;I Built a Memory API That Beats Mem0 on LongMemEval Without Using a Single LLM Token&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/becomernet" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F3962854%2F7c35a451-535f-4e02-b2fe-88d9e3214a6b.png" alt="becomernet profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/becomernet" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Becomer.net
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Becomer.net
                
              
              &lt;div id="story-author-preview-content-3799907" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/becomernet" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F3962854%2F7c35a451-535f-4e02-b2fe-88d9e3214a6b.png" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Becomer.net&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/becomernet/i-built-a-memory-api-that-beats-mem0-on-longmemeval-without-using-a-single-llm-token-4gah" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jun 2&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/becomernet/i-built-a-memory-api-that-beats-mem0-on-longmemeval-without-using-a-single-llm-token-4gah" id="article-link-3799907"&gt;
          I Built a Memory API That Beats Mem0 on LongMemEval Without Using a Single LLM Token
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag crayons-tag--filled  " href="/t/showdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;showdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/agents"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;agents&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/api"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;api&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/llm"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;llm&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/becomernet/i-built-a-memory-api-that-beats-mem0-on-longmemeval-without-using-a-single-llm-token-4gah" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/becomernet/i-built-a-memory-api-that-beats-mem0-on-longmemeval-without-using-a-single-llm-token-4gah#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              3&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>I Built a Memory API That Beats Mem0 on LongMemEval Without Using a Single LLM Token</title>
      <dc:creator>Becomer.net</dc:creator>
      <pubDate>Tue, 02 Jun 2026 04:19:02 +0000</pubDate>
      <link>https://dev.to/becomernet/i-built-a-memory-api-that-beats-mem0-on-longmemeval-without-using-a-single-llm-token-4gah</link>
      <guid>https://dev.to/becomernet/i-built-a-memory-api-that-beats-mem0-on-longmemeval-without-using-a-single-llm-token-4gah</guid>
      <description>&lt;p&gt;The problem I kept hitting&lt;br&gt;
Every time I built a multi-agent pipeline I hit the same four walls.&lt;br&gt;
Memory dies when the process ends. Agents can't share context without message passing. Every recall burns 500-7,000 tokens on an LLM reasoning pass. And memory is locked to one LLM provider — your GPT app and your Claude app can't share the same user context.&lt;br&gt;
I spent months building something that fixes all four.&lt;/p&gt;

&lt;p&gt;What I built&lt;br&gt;
BECOMER is a persistent memory API for AI agents. Zero tokens per recall. Works with any LLM. Agents share memory across a namespace without coordination code.&lt;br&gt;
The open source client framework — becomer-agents — attaches to any existing agent stack without replacing it. LangChain, CrewAI, AutoGen, LlamaIndex, LangGraph. You don't rebuild anything. You just add memory to what you already have.&lt;br&gt;
pythonpip install becomer-agents&lt;/p&gt;

&lt;p&gt;The benchmark result&lt;br&gt;
94.4% on LongMemEval. Full n=500, no sampling, string-based scoring — no LLM judge inflating the numbers.&lt;br&gt;
Mem0 scores 93.4% on the same benchmark. They spend approximately 6,787 tokens per query to get there. BECOMER spends zero.&lt;br&gt;
SystemLongMemEvalTokens/queryBECOMER94.4%0Mem0 v293.4%~6,787Standard RAG~75-80%0&lt;br&gt;
On LOCOMO BECOMER scores 69.5% retrieval only. Mem0 scores 91.6% but runs an LLM reasoning pass to get there. The gap is architectural not a retrieval failure — BECOMER retrieves, your LLM reasons on top. That's by design.&lt;br&gt;
Full methodology, 30 iterations, zero regressions: becomer.net/benchmarks.html&lt;/p&gt;

&lt;p&gt;How the architecture works&lt;br&gt;
Most memory systems run an LLM under the hood. Every recall is actually an LLM call that extracts, reasons, and returns. That's why they burn thousands of tokens per query.&lt;br&gt;
BECOMER is a purpose built retrieval engine. No LLM in the memory layer. Storage and retrieval happen in our engine. Your LLM receives perfectly prepared context and reasons on top of it.&lt;br&gt;
The result — zero token cost at retrieval, ~150ms P50, and memory that persists across sessions, LLMs, and processes.&lt;/p&gt;

&lt;p&gt;The multi-agent namespace pattern&lt;br&gt;
This is the part I'm most proud of.&lt;br&gt;
Every agent gets a namespace keyed by task ID and role.&lt;br&gt;
task-abc.researcher   ← private to researcher&lt;br&gt;
task-abc.executor     ← private to executor&lt;br&gt;&lt;br&gt;
task-abc.shared       ← readable and writable by all agents&lt;br&gt;
A researcher agent stores findings. An executor agent recalls them. No message passing. No coordination code. Different LLMs can hit the same namespace simultaneously.&lt;br&gt;
pythonfrom becomer_agents import MultiAgentPipeline&lt;/p&gt;

&lt;p&gt;def researcher(task, own_ns, shared_ns):&lt;br&gt;
    own_ns.store("API endpoint: POST /v1/payments, OAuth2 bearer")&lt;br&gt;
    own_ns.store("Rate limit: 100 req/s")&lt;br&gt;
    return "Research complete"&lt;/p&gt;

&lt;p&gt;def executor(task, own_ns, shared_ns):&lt;br&gt;
    # Recall what researcher found — zero tokens, no message passing&lt;br&gt;
    findings = shared_ns.recall("payment API details", top_k=5)&lt;br&gt;
    return "Plan written"&lt;/p&gt;

&lt;p&gt;pipeline = MultiAgentPipeline(&lt;br&gt;
    api_key=os.environ["BECOMER_API_KEY"],&lt;br&gt;
    task_id="payments-task-001",&lt;br&gt;
    roles=["researcher", "executor", "reviewer"],&lt;br&gt;
)&lt;/p&gt;

&lt;p&gt;LangChain drop-in — 3 lines&lt;br&gt;
pythonfrom becomer_agents import BecomerMemory&lt;br&gt;
from langchain.chains import ConversationChain&lt;br&gt;
from langchain_openai import ChatOpenAI&lt;/p&gt;

&lt;p&gt;chain = ConversationChain(&lt;br&gt;
    llm=ChatOpenAI(model="gpt-4o"),&lt;br&gt;
    memory=BecomerMemory(api_key="your-key")&lt;br&gt;
)&lt;br&gt;
Memory persists across sessions automatically. Works with CrewAI, AutoGen, LlamaIndex — same pattern.&lt;/p&gt;

&lt;p&gt;Self-improving agents&lt;br&gt;
pythonfrom becomer_agents import SelfImprovingPipeline&lt;/p&gt;

&lt;p&gt;pipeline = SelfImprovingPipeline(&lt;br&gt;
    api_key=os.environ["BECOMER_API_KEY"],&lt;br&gt;
    task_id="optimizer-001",&lt;br&gt;
)&lt;/p&gt;

&lt;p&gt;def my_agent(task, context):&lt;br&gt;
    # context = what worked in previous iterations&lt;br&gt;
    approach = "zero-shot" if not context else "few-shot + CoT"&lt;br&gt;
    score = run_eval(task, approach)&lt;br&gt;
    return {"approach": approach, "score": score}&lt;/p&gt;

&lt;p&gt;for i in range(5):&lt;br&gt;
    result = pipeline.run_iteration(&lt;br&gt;
        task="classify customer sentiment",&lt;br&gt;
        fn=my_agent,&lt;br&gt;
    )&lt;br&gt;
Each iteration stores its outcome. The next iteration recalls what scored highest. The system compounds in intelligence across runs at zero extra token cost.&lt;/p&gt;

&lt;p&gt;Multi-tenant — one key, many users&lt;br&gt;
pythonfrom becomer_agents import AgentNamespace&lt;/p&gt;

&lt;h1&gt;
  
  
  Alice's agent
&lt;/h1&gt;

&lt;p&gt;alice = AgentNamespace(api_key, task_id="app", role="alice-123")&lt;br&gt;
alice.store("Alice prefers TypeScript and dark mode")&lt;/p&gt;

&lt;h1&gt;
  
  
  Bob's agent — completely isolated
&lt;/h1&gt;

&lt;p&gt;bob = AgentNamespace(api_key, task_id="app", role="bob-456")&lt;br&gt;
bob.recall("preferences")  # → [] — can't see Alice's memories&lt;br&gt;
Isolation enforced at database level. One master key covers your entire user base.&lt;/p&gt;

&lt;p&gt;The honest part&lt;br&gt;
LOCOMO multi-hop scores 59.6% for BECOMER vs 93.3% for Mem0. That gap is real. Multi-hop questions require bridging terms — "Vancouver" → "Canada" — that aren't in stored content. Mem0 runs an LLM reasoning pass to bridge that gap. BECOMER returns the retrieved context and your LLM bridges it. Different architecture, different trade-off.&lt;br&gt;
If you need inference inside the memory layer — use Mem0. If you need zero token cost, any LLM, and shared agent memory — use BECOMER.&lt;/p&gt;

&lt;p&gt;The backend agnostic part&lt;br&gt;
The framework works with BECOMER's retrieval engine out of the box. Bring your own backend if you prefer — the framework is backend agnostic. The namespace pattern, pipeline architecture, and multi-agent coordination logic all have value independent of the API.&lt;/p&gt;

&lt;p&gt;Getting started&lt;br&gt;
pythonpip install becomer-agents&lt;br&gt;
export BECOMER_API_KEY=bcm_your-key-here&lt;br&gt;
python examples/demo.py&lt;br&gt;
Free API key — 1,000 calls/month: becomer.net/signup.html&lt;br&gt;
GitHub: github.com/Becomer-net/Becomer-Agents&lt;br&gt;
Full benchmark methodology: becomer.net/benchmarks.html&lt;/p&gt;

</description>
      <category>agents</category>
      <category>api</category>
      <category>llm</category>
      <category>showdev</category>
    </item>
    <item>
      <title>How I built a zero-token memory layer for LLMs (and why it outperforms vector store approaches)</title>
      <dc:creator>Becomer.net</dc:creator>
      <pubDate>Mon, 01 Jun 2026 14:35:50 +0000</pubDate>
      <link>https://dev.to/becomernet/how-i-built-a-zero-token-memory-layer-for-llms-and-why-it-outperforms-vector-store-approaches-3n0g</link>
      <guid>https://dev.to/becomernet/how-i-built-a-zero-token-memory-layer-for-llms-and-why-it-outperforms-vector-store-approaches-3n0g</guid>
      <description>&lt;p&gt;If you've built an AI chatbot or agent, you've hit the same problem: the LLM forgets everything between sessions. The standard solution is to stuff your conversation history into a vector store and retrieve relevant chunks before each call. It works — but it has a hidden cost.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The token problem nobody talks about&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every popular memory solution — mem0, Zep, Langchain ConversationSummaryMemory — runs an LLM under the hood when you recall. That's anywhere from 500 to 7,000 tokens per recall call, on top of your actual LLM call.&lt;/p&gt;

&lt;p&gt;For a chatbot with 1,000 daily active users doing 10 messages each, that's 10,000 recall calls × ~2,000 tokens = 20 million extra tokens per day. Before your LLM has said a single word.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The retrieval-only approach&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I built BECOMER around a different idea: semantic retrieval using embeddings, no LLM inside the memory layer. Store → embed → index → retrieve. Your LLM receives the retrieved context and reasons over it — exactly what it's already doing.&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;from&lt;/span&gt; &lt;span class="n"&gt;becomer&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Client&lt;/span&gt;

&lt;span class="n"&gt;mem&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Client&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;bcm_your-api-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;# Before your LLM call
&lt;/span&gt;&lt;span class="n"&gt;context&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;mem&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;what does this user prefer?&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;top_k&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Inject into your system prompt
&lt;/span&gt;&lt;span class="n"&gt;system_prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;User context:&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;chr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="c1"&gt;# After your LLM call
&lt;/span&gt;&lt;span class="n"&gt;mem&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;store&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;User asked about Python decorators, found list comprehension more intuitive&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Benchmark results&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Tested against LongMemEval (n=500) — the academic standard for conversational memory:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;System&lt;/th&gt;
&lt;th&gt;Score&lt;/th&gt;
&lt;th&gt;Tokens/recall&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;BECOMER&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;94.4%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;mem0&lt;/td&gt;
&lt;td&gt;93.4%&lt;/td&gt;
&lt;td&gt;~6,787&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hindsight&lt;/td&gt;
&lt;td&gt;91.4%&lt;/td&gt;
&lt;td&gt;~6,787&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The honest caveat: on LOCOMO's multi-hop reasoning questions, mem0 scores 91.6% vs our 69.5%. Their system adds an LLM reasoning pass over retrieved results. We return the context; your LLM reasons. For most agent use cases where you control the final LLM call, this gap disappears.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multi-tenant in two lines&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For developers building apps with multiple end-users, pass a &lt;code&gt;user_id&lt;/code&gt;:&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="c1"&gt;# Each user gets a fully isolated namespace
&lt;/span&gt;&lt;span class="n"&gt;mem_alice&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Client&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;bcm_key&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;user_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;alice-123&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;mem_alice&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;store&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Alice prefers TypeScript and dark mode&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;mem_bob&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Client&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;bcm_key&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;user_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;bob-456&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;mem_bob&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;preferences&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# → [] — completely isolated
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Isolation is enforced at the database layer, not just application code. One master key covers your entire user base.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agent use cases&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The pattern that makes BECOMER useful beyond chatbots is shared namespaces for multi-agent systems:&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="c1"&gt;# Research agent (GPT-4o) stores findings
&lt;/span&gt;&lt;span class="n"&gt;mem&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Client&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;bcm_key&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;user_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;task-abc&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;mem&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;store&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;API endpoint: POST /v2/payments, OAuth2&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;mem&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;store&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Rate limit: 100 req/min&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Executor agent (Claude) — different process, same namespace
&lt;/span&gt;&lt;span class="n"&gt;ctx&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Client&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;bcm_key&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;user_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;task-abc&lt;/span&gt;&lt;span class="sh"&gt;"&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;payment API details&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# → gets exactly what the research agent found
# No message passing. No state files. No coordination code.
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Self-improving systems work the same way: store every attempt with its outcome, recall what worked before the next run.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's available today&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;REST API&lt;/li&gt;
&lt;li&gt;Python SDK: &lt;code&gt;pip install becomer&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;JS/Node SDK: &lt;code&gt;npm install @becomerpackage/sdk&lt;/code&gt; (zero deps, TypeScript types)&lt;/li&gt;
&lt;li&gt;MCP: works with Claude Desktop and Cursor, set &lt;code&gt;BECOMER_API_KEY&lt;/code&gt; and go&lt;/li&gt;
&lt;li&gt;Framework adapters: LangChain, LlamaIndex, LangGraph, CrewAI, AutoGen&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Free tier: 1,000 calls/month. Pro: $12/month.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://becomer.net" rel="noopener noreferrer"&gt;https://becomer.net&lt;/a&gt;&lt;/strong&gt; — full docs, benchmarks, and free API key.&lt;/p&gt;

&lt;p&gt;I'm curious how others are handling the token cost problem for memory. What approaches have you found that work at scale?&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%2Feqxlakqq31x4bxy0nv1b.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.amazonaws.com%2Fuploads%2Farticles%2Feqxlakqq31x4bxy0nv1b.png" alt=" " width="800" height="339"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>llm</category>
      <category>ai</category>
      <category>python</category>
      <category>memory</category>
    </item>
  </channel>
</rss>
