<?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: Claudiomar Estevam</title>
    <description>The latest articles on DEV Community by Claudiomar Estevam (@claudioeestevam).</description>
    <link>https://dev.to/claudioeestevam</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3821545%2F8571950e-94f8-4651-886f-d421e2c09418.jpg</url>
      <title>DEV Community: Claudiomar Estevam</title>
      <link>https://dev.to/claudioeestevam</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/claudioeestevam"/>
    <language>en</language>
    <item>
      <title>Dando memória para sua IA: por que ela esquece tudo (e como resolver)</title>
      <dc:creator>Claudiomar Estevam</dc:creator>
      <pubDate>Mon, 16 Mar 2026 18:22:59 +0000</pubDate>
      <link>https://dev.to/claudioeestevam/dando-memoria-para-sua-ia-por-que-ela-esquece-tudo-e-como-resolver-j24</link>
      <guid>https://dev.to/claudioeestevam/dando-memoria-para-sua-ia-por-que-ela-esquece-tudo-e-como-resolver-j24</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.amazonaws.com%2Fuploads%2Farticles%2F4dg01nkqixtmmaue2pn7.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%2F4dg01nkqixtmmaue2pn7.png" alt="Spectrum - Memória Semântica Persistente para IA" width="800" height="302"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Meu nome é Claudiomar Estevam. 22+ anos em infraestrutura, segurança e arquitetura de software. Neurodivergente (TDAH + Altas Habilidades). Pesquiso memória e cognição em sistemas de IA, e o Spectrum nasceu direto dessa pesquisa: como dar memória persistente pra agentes que, por arquitetura, esquecem tudo entre sessões. Esse é meu primeiro post aqui no dev.to. Se você trabalha com IA e cansa de repetir contexto, esse post é pra você. Se você é ND, é especialmente pra você, mas funciona pra todo mundo.&lt;/p&gt;




&lt;h2&gt;
  
  
  O problema: por que a IA esquece tudo
&lt;/h2&gt;

&lt;p&gt;Quando você conversa com uma IA, tudo que você escreve e tudo que ela responde vira &lt;strong&gt;tokens&lt;/strong&gt;. Cada modelo tem uma &lt;strong&gt;janela de contexto&lt;/strong&gt;, um espaço fixo onde esses tokens cabem. Pensa numa mesa de trabalho: dá pra espalhar bastante coisa, mas o tamanho é fixo.&lt;/p&gt;

&lt;p&gt;O ponto: &lt;strong&gt;quando a sessão acaba, a mesa é limpa&lt;/strong&gt;. Tudo vai embora. A próxima sessão começa do zero.&lt;/p&gt;

&lt;p&gt;Não é bug. A janela de contexto é memória de trabalho, não memória de longo prazo. A IA nunca teve onde guardar.&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%2Fobo8za60ylhujl94qeua.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%2Fobo8za60ylhujl94qeua.png" alt="Por que a IA esquece tudo - janela de contexto entre sessões" width="800" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Na prática isso significa: abre sua IA favorita, explica o projeto, configura o contexto, trabalha 3 horas, fecha. Abre de novo. Ela não lembra de nada. Agora multiplica por 10 projetos e um cérebro que troca de contexto 47 vezes por dia.&lt;/p&gt;

&lt;p&gt;A "solução" que todo mundo usa: arquivos &lt;code&gt;.md&lt;/code&gt; espalhados pelo sistema. Um arquivo de contexto aqui, um de skills ali, notas acolá. Funciona até certo ponto. Mas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cada &lt;code&gt;.md&lt;/code&gt; entra &lt;strong&gt;inteiro&lt;/strong&gt; na janela de contexto (gasta tokens mesmo quando não precisa)&lt;/li&gt;
&lt;li&gt;Não é pesquisável por significado&lt;/li&gt;
&lt;li&gt;Não compartilha entre agentes diferentes&lt;/li&gt;
&lt;li&gt;Se você tem TDAH, boa sorte lembrando onde salvou o quê&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Arquivos &lt;code&gt;.md&lt;/code&gt;
&lt;/th&gt;
&lt;th&gt;Spectrum&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Busca&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;ctrl+F por texto exato&lt;/td&gt;
&lt;td&gt;por significado (semântica)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Consumo de tokens&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;arquivo inteiro na janela&lt;/td&gt;
&lt;td&gt;só o que foi buscado&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Multi-agente&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;cada IA lê seu próprio .md&lt;/td&gt;
&lt;td&gt;todos compartilham o mesmo banco&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Multi-projeto&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;copiar .md entre pastas&lt;/td&gt;
&lt;td&gt;scopes organizados por projeto&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Atualização&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;manual, esquece de manter&lt;/td&gt;
&lt;td&gt;upsert automático por scope/key&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Para NDs&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;lembrar onde salvou o quê&lt;/td&gt;
&lt;td&gt;só lembrar mais ou menos o quê&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  O que é o Spectrum
&lt;/h2&gt;

&lt;p&gt;Spectrum é memória persistente para IA. Você salva informação (decisões, contexto, preferências, sessões) e a IA busca quando precisa, por palavras-chave ou por significado. Funciona como um segundo cérebro que qualquer agente pode consultar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;O que ele tem:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SQLite local. Seus dados são seus, nada vai pra nuvem&lt;/li&gt;
&lt;li&gt;Busca por keyword e semântica (embeddings locais, 384 dimensões, ONNX)&lt;/li&gt;
&lt;li&gt;Organização por scopes: &lt;code&gt;project:meu-app&lt;/code&gt;, &lt;code&gt;session&lt;/code&gt;, &lt;code&gt;user&lt;/code&gt;, &lt;code&gt;technical&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;CLI (&lt;code&gt;spm&lt;/code&gt;) pra usar direto no terminal&lt;/li&gt;
&lt;li&gt;MCP server pra conectar no Claude Code, Gemini CLI, Codex&lt;/li&gt;
&lt;li&gt;Disponível em &lt;strong&gt;Node&lt;/strong&gt; e &lt;strong&gt;Python&lt;/strong&gt;, mesma API, mesmo banco&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Agnóstico. Funciona com Claude, Gemini, Codex, ou qualquer agente que suporte MCP. Se o seu não suporta, importa como biblioteca no código.&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%2Fkb0cb152hs5m06s1hhy8.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%2Fkb0cb152hs5m06s1hhy8.png" alt="Arquitetura do Spectrum" width="800" height="390"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Números reais (meu setup pessoal):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1966 memórias, 151 scopes&lt;/li&gt;
&lt;li&gt;Sessões de trabalho, contexto de projetos, preferências, decisões técnicas&lt;/li&gt;
&lt;li&gt;Tudo pesquisável por significado, não só por texto exato&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Setup em 5 minutos
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Instalar
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Node:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; @natiwo/spectrum-memory
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Python:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;Um comando. Vem com CLI (&lt;code&gt;spm&lt;/code&gt;) + MCP server + biblioteca. Zero config. O banco SQLite é criado automaticamente em &lt;code&gt;~/.spectrum/spectrum.db&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Testar a CLI
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Salvar uma memória&lt;/span&gt;
spm save user/nome &lt;span class="s2"&gt;"Meu nome é Fulano, trabalho com backend Node.js e infra AWS"&lt;/span&gt;

&lt;span class="c"&gt;# Salvar contexto de um projeto&lt;/span&gt;
spm save project:meu-app/stack &lt;span class="s2"&gt;"Next.js 15, PostgreSQL, Redis, deploy na Vercel"&lt;/span&gt;
spm save project:meu-app/decisoes &lt;span class="s2"&gt;"Drizzle ao invés de Prisma por performance em queries complexas"&lt;/span&gt;

&lt;span class="c"&gt;# Buscar por keyword&lt;/span&gt;
spm search &lt;span class="s2"&gt;"drizzle prisma"&lt;/span&gt;

&lt;span class="c"&gt;# Buscar por significado (semântico)&lt;/span&gt;
spm search &lt;span class="nt"&gt;--semantic&lt;/span&gt; &lt;span class="s2"&gt;"qual ORM estamos usando e por quê"&lt;/span&gt;

&lt;span class="c"&gt;# Listar tudo de um projeto&lt;/span&gt;
spm list project:meu-app

&lt;span class="c"&gt;# Ver estatísticas&lt;/span&gt;
spm stats
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Fecha o terminal, abre de novo, tá tudo lá.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Conectar no Claude Code
&lt;/h3&gt;

&lt;p&gt;Edita &lt;code&gt;~/.claude.json&lt;/code&gt;:&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;"mcpServers"&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;"spectrum"&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;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"spectrum-mcp"&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;Reinicia o Claude Code. Agora ele tem 7 ferramentas novas:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Ferramenta&lt;/th&gt;
&lt;th&gt;O que faz&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;memory_save&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;salva ou atualiza uma memória&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;memory_get&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;recupera memória por scope/key&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;memory_list&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;lista memórias de um scope&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;memory_delete&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;deleta memória específica&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;memory_search&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;busca por keyword&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;memory_search_semantic&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;busca por significado&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;memory_list_scopes&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;lista todos os scopes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;O que muda na prática:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Antes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Você: "Estou trabalhando no projeto X, a stack é Y, a decisão Z foi por causa de W..."
(fecha sessão)
Você: "Estou trabalhando no projeto X, a stack é Y..."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Depois:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Você: "Continua o trabalho no projeto X"
IA: (busca no Spectrum) "Encontrei o contexto. Stack Next.js 15, PostgreSQL,
    Drizzle como ORM. Última sessão: refatorar módulo de auth.
    Por onde quer continuar?"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4. Conectar no Gemini CLI
&lt;/h3&gt;

&lt;p&gt;Em &lt;code&gt;~/.gemini/settings.json&lt;/code&gt;:&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;"mcpServers"&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;"spectrum"&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;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"spectrum-mcp"&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;h3&gt;
  
  
  5. Conectar no Codex
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight toml"&gt;&lt;code&gt;&lt;span class="nn"&gt;[mcp_servers.spectrum]&lt;/span&gt;
&lt;span class="py"&gt;command&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"spectrum-mcp"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Três agentes, uma memória.&lt;/strong&gt; Claude salva, Gemini lê, Codex usa. Ninguém esquece nada.&lt;/p&gt;




&lt;h2&gt;
  
  
  Como organizar memórias
&lt;/h2&gt;

&lt;p&gt;A chave é o sistema de &lt;strong&gt;scopes&lt;/strong&gt; (namespaces):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;user/                    → Sobre você (preferências, stack, forma de trabalhar)
session/                 → Resumos de sessões de trabalho
project:nome-do-app/     → Contexto de cada projeto
technical/               → Conhecimento técnico reutilizável
active/                  → O que tá em andamento agora
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Exemplos reais
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Quem sou eu (a IA lê isso e já sabe como te tratar)&lt;/span&gt;
spm save user/perfil &lt;span class="s2"&gt;"Backend senior, 10 anos, TypeScript strict,
  Zod pra validação, commits em português"&lt;/span&gt;

&lt;span class="c"&gt;# Projeto atual&lt;/span&gt;
spm save project:api-pagamentos/stack &lt;span class="s2"&gt;"Node 22, Fastify, Drizzle, PostgreSQL 16, Redis 7"&lt;/span&gt;
spm save project:api-pagamentos/decisao-orm &lt;span class="s2"&gt;"Drizzle &amp;gt; Prisma: 3x mais rápido em
  queries com joins complexos, sem query engine binário"&lt;/span&gt;

&lt;span class="c"&gt;# Sessão de trabalho&lt;/span&gt;
spm save session/2026-03-16 &lt;span class="s2"&gt;"API Pagamentos: implementei webhooks,
  falta testar retry. Branch: feat/webhooks"&lt;/span&gt;

&lt;span class="c"&gt;# Onde parei&lt;/span&gt;
spm save active/api-pagamentos &lt;span class="s2"&gt;"Webhook retry, src/webhooks/retry.ts,
  próximo: testes de integração"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Guardrails: ensinando limites
&lt;/h3&gt;

&lt;p&gt;Memória não é só "o que eu sei". É também "o que eu não posso fazer":&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;spm save guardrails/seguranca &lt;span class="s2"&gt;"NUNCA commitar secrets ou .env.
  NUNCA rodar terraform apply em produção sem confirmação.
  SEMPRE validar inputs antes de queries SQL."&lt;/span&gt;

spm save guardrails/codigo &lt;span class="s2"&gt;"TypeScript strict, NUNCA usar any.
  Zod pra validação. Testes antes de PR."&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A diferença de colocar isso num &lt;code&gt;.md&lt;/code&gt; estático? Guardrails no Spectrum são dinâmicos, pesquisáveis, e compartilhados entre agentes. Muda uma vez, vale pra todos.&lt;/p&gt;

&lt;h3&gt;
  
  
  Dica: instrua a IA a salvar
&lt;/h3&gt;

&lt;p&gt;No arquivo de instruções do seu agente (cada um tem o seu):&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="gu"&gt;## Memória&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Ao final de sessões significativas, salvar resumo no Spectrum (scope: session)
&lt;span class="p"&gt;-&lt;/span&gt; Ao tomar decisões técnicas, salvar no Spectrum (scope: project:nome)
&lt;span class="p"&gt;-&lt;/span&gt; Ao começar trabalho, buscar contexto no Spectrum antes de perguntar
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A IA passa a ser proativa: salva e busca sozinha.&lt;/p&gt;




&lt;h2&gt;
  
  
  Busca semântica
&lt;/h2&gt;

&lt;p&gt;A diferença entre keyword e semântica:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Keyword: precisa acertar as palavras&lt;/span&gt;
spm search &lt;span class="s2"&gt;"Drizzle ORM"&lt;/span&gt;
&lt;span class="c"&gt;# Só encontra se tiver "Drizzle" e "ORM" no texto&lt;/span&gt;

&lt;span class="c"&gt;# Semântico: entende o significado&lt;/span&gt;
spm search &lt;span class="nt"&gt;--semantic&lt;/span&gt; &lt;span class="s2"&gt;"qual biblioteca estamos usando pra banco de dados"&lt;/span&gt;
&lt;span class="c"&gt;# Encontra a memória sobre Drizzle mesmo sem essas palavras na busca&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Como funciona: quando você salva uma memória, o Spectrum transforma o texto em um vetor de 384 números. Esse vetor representa o &lt;strong&gt;significado&lt;/strong&gt;. Textos com significados parecidos geram vetores próximos no espaço. Quando você busca, o vetor da pergunta fica perto do vetor da resposta, mesmo sem palavras em comum.&lt;/p&gt;

&lt;p&gt;Tudo roda local. Modelo &lt;code&gt;all-MiniLM-L6-v2&lt;/code&gt;, compacto, sem GPU, sem internet.&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%2Fsoqlgfcbxkjyc2as9zub.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%2Fsoqlgfcbxkjyc2as9zub.png" alt="Busca Semântica - como embeddings encontram por significado" width="800" height="390"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pra quem tem TDAH: você não precisa lembrar &lt;strong&gt;como&lt;/strong&gt; salvou. Só precisa lembrar mais ou menos &lt;strong&gt;o quê&lt;/strong&gt;. A busca semântica faz o resto.&lt;/p&gt;




&lt;h2&gt;
  
  
  Antes e depois
&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.amazonaws.com%2Fuploads%2Farticles%2Fqi4da8ujz3mo7zei4ji0.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%2Fqi4da8ujz3mo7zei4ji0.png" alt="Antes vs Depois - arquivos .md espalhados vs Spectrum centralizado" width="800" height="502"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;spm search &lt;span class="nt"&gt;--semantic&lt;/span&gt; &lt;span class="s2"&gt;"onde parei no projeto de pagamentos"&lt;/span&gt;
→ active/api-pagamentos: &lt;span class="s2"&gt;"Webhook retry, src/webhooks/retry.ts, falta testes"&lt;/span&gt;

&lt;span class="nv"&gt;$ &lt;/span&gt;spm search &lt;span class="nt"&gt;--semantic&lt;/span&gt; &lt;span class="s2"&gt;"por que escolhemos esse ORM"&lt;/span&gt;
→ project:api-pagamentos/decisao-orm: &lt;span class="s2"&gt;"Drizzle &amp;gt; Prisma: 3x mais rápido..."&lt;/span&gt;

&lt;span class="nv"&gt;$ &lt;/span&gt;spm list project:api-pagamentos
→ stack, arquitetura, decisao-orm, webhook-design, deploy-config
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Um lugar. Pesquisável. Semântico. Funciona em qualquer agente.&lt;/p&gt;




&lt;h2&gt;
  
  
  E pra produção?
&lt;/h2&gt;

&lt;p&gt;Tudo que mostrei aqui roda 100% local: SQLite, embeddings 384D, zero dependência de internet. Perfeito pra uso pessoal e times pequenos.&lt;/p&gt;

&lt;p&gt;Mas o Spectrum foi projetado pra ir além. A versão &lt;strong&gt;Spectrum Cloud&lt;/strong&gt; roda em infraestrutura distribuída com:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;API REST&lt;/strong&gt; completa&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Busca híbrida&lt;/strong&gt; (70% semântica + 30% keyword)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Embeddings 1024D&lt;/strong&gt; (&lt;code&gt;bge-large-en-v1.5&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-tenant&lt;/strong&gt; — isolamento por organização&lt;/li&gt;
&lt;li&gt;Pronto pra integrar em &lt;strong&gt;aplicações reais em produção&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A API é a mesma. O que muda é a escala. Se você começou local e precisa escalar pra time ou produto, a transição é direta.&lt;/p&gt;

&lt;p&gt;Quer saber mais? &lt;a href="https://linkedin.com/in/claudioeestevam" rel="noopener noreferrer"&gt;Entre em contato&lt;/a&gt; ou acompanhe o &lt;a href="https://github.com/Natiwo/spectrum" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;"Por que SQLite e não Postgres/Pinecone/etc?"&lt;/strong&gt;&lt;br&gt;
Escolha deliberada. SQLite roda em qualquer lugar, sem server, sem config, sem Docker. Um arquivo. WAL mode pra performance. Pra uso pessoal com milhares de memórias, é mais que suficiente. E a arquitetura é plugável: quer escalar pra time ou produção, troca o backend sem mudar a API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Precisa de internet?"&lt;/strong&gt;&lt;br&gt;
Não. Tudo local: banco, embeddings, busca semântica. 100% offline.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"E se eu usar mais de um agente?"&lt;/strong&gt;&lt;br&gt;
É exatamente o ponto. Todos conectam no mesmo banco via MCP. Memória compartilhada.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Substituiu os .md?"&lt;/strong&gt;&lt;br&gt;
Não necessariamente. Arquivos de instrução na raiz do projeto ainda são úteis pra regras fixas. Spectrum é pra tudo que é dinâmico: sessões, decisões, contexto, estado.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Node ou Python?"&lt;/strong&gt;&lt;br&gt;
Os dois leem e escrevem no mesmo banco (&lt;code&gt;~/.spectrum/spectrum.db&lt;/code&gt;). Escolhe o que preferir. Mesma API, mesmas ferramentas.&lt;/p&gt;




&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;O que&lt;/th&gt;
&lt;th&gt;Onde&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;GitHub&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/Natiwo/spectrum" rel="noopener noreferrer"&gt;github.com/Natiwo/spectrum&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;npm&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.npmjs.com/package/@natiwo/spectrum-memory" rel="noopener noreferrer"&gt;@natiwo/spectrum-memory&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;PyPI&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://pypi.org/project/spectrum-memory/" rel="noopener noreferrer"&gt;spectrum-memory&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;GitHub (Python)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/Natiwo/spectrum-memory" rel="noopener noreferrer"&gt;github.com/Natiwo/spectrum-memory&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Sobre
&lt;/h2&gt;

&lt;p&gt;Feito por &lt;a href="https://linkedin.com/in/claudioeestevam" rel="noopener noreferrer"&gt;Claudiomar Estevam&lt;/a&gt;. Pesquisador independente em AI-Native Infrastructure e Cognitive Systems. Pai. Neurodivergente (TDAH + Altas Habilidades). 22+ anos construindo infraestrutura, segurança e arquitetura de software.&lt;/p&gt;

&lt;p&gt;Spectrum nasceu da necessidade real de não perder contexto entre sessões, projetos e ferramentas. Se ajudar mais alguém, já valeu.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Natiwo&lt;/strong&gt; — Projetado com mentes neurodivergentes em mente, construído para todos.&lt;/p&gt;




&lt;p&gt;Dúvida? Quer trocar ideia? &lt;a href="https://linkedin.com/in/claudioeestevam" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Quer contribuir ou implementar em outra linguagem? O repo tá aberto.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;MIT License. Usa, modifica, compartilha.&lt;/em&gt;&lt;/p&gt;

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