🤖 Introdução ao Kore Memory: Um Sistema de Memória para Agentes de IA
Os agentes de IA têm uma característica peculiar: eles esquecem tudo o que aprendem após cada interação. Isso significa que cada vez que você conversa com um agente de IA, é como se estivesse começando do zero. Eles não lembram de nada que você disse anteriormente, não aprendem com as interações e cada sessão é um tabuleiro em branco.
Essa característica é um problema, pois os agentes de IA precisam ser capazes de aprender e se lembrar de informações importantes para fornecer respostas precisas e úteis. Além disso, a falta de memória pode levar a erros e inconsistências nos resultados.
Nesse contexto, surge o Kore Memory, um sistema de memória projetado especificamente para agentes de IA. O Kore Memory é uma solução inovadora que permite que os agentes de IA sejam capazes de lembrar e aprender com as interações, sem a necessidade de acesso a recursos de nuvem ou APIs de linguagem de marcação de máquina (LLM).
O Kore Memory é baseado em três princípios fundamentais:
1. 100% Offline: O Kore Memory funciona sem a necessidade de acesso a recursos de nuvem ou APIs de LLM. Isso significa que os agentes de IA podem ser executados em qualquer lugar, sem a necessidade de uma conexão com a internet.
2. Esquecer como os humanos: O Kore Memory implementa a curva de esquecimento de Ebbinghaus, que é uma representação matemática da forma como os humanos esquecem informações ao longo do tempo. Isso significa que as informações importantes são lembradas por mais tempo, enquanto as informações menos importantes são esquecidas mais rapidamente.
3. Sem sobrecarga de LLM: O Kore Memory não requer a utilização de LLM para determinar a importância das informações. Em vez disso, utiliza análise de palavras-chave e sinais de categoria para determinar a importância das informações.
Com esses princípios em mente, o Kore Memory é uma solução inovadora para os problemas de memória dos agentes de IA. Ele permite que os agentes de IA sejam capazes de aprender e se lembrar de informações importantes, sem a necessidade de acesso a recursos de nuvem ou APIs de LLM.
📚 Funcionamento do Kore Memory
Implementação da Curva de Esquecimento de Ebbinghaus
O Kore Memory implementa a curva de esquecimento de Ebbinghaus, que descreve como a frequência de esquecimento de informações aumenta com o tempo. A curva é matematicamente representada pela seguinte fórmula:
decay_score = e^(-t · ln2 / half_life)
onde:
– t é o número de dias desde que a memória foi criada (ou última acessada)
– half_life é o número de dias até que a memória seja 50% “esquecida”
A curva de esquecimento é escalonada com a importância da memória:
| Importância | Label | Half-life |
|—|—|—|
| 1 | Baixa | 7 dias |
| 2 | Normal | 14 dias |
| 3 | Importante | 30 dias |
| 4 | Alta | 90 dias |
| 5 | Crítica | 365 dias |
Auto-Scoring de Importância
O Kore Memory utiliza três sinais para auto-scoring a importância das memórias:
1. Categoria Baseline: define a importância da memória com base na categoria a qual ela pertence:
preference → 4 (preferências do usuário importam)
decision → 4 (escolhas arquiteturais importam)
project → 3 (contexto do projeto é valioso)
task → 2 (tarefas de um dia são transitórias)
general → 1 (notas aleatórias têm baixa importância)
2. Análise de Palavras-Chave: analisa as palavras-chave presentes na memória e aumenta a importância se elas forem relevantes:
"password", "token", "secret", "api_key" → +1 (adiciona 1 à importância)
"prefers", "likes", "dislikes" → +0 (preferências já estão na base 4)
"critical", "urgent", "never" → +1
"remember", "importante" → +1
3. Bônus de Tamanho: aumenta a importância se a memória for longa:
60+ palavras → +1 (mais contexto = provavelmente importante)
Capacidade de Esquecer Informações Não Importantes
O Kore Memory tem a capacidade de esquecer informações não importantes automaticamente, utilizando a curva de esquecimento de Ebbinghaus. As memórias com um escore de decaimento abaixo de 0,05 são consideradas “esquecidas” e são removidas de todas as buscas. Elas ainda estão presentes no banco de dados, mas não são mais acessadas pelo agente.
📈 Exemplos de Código e Integrações
Instalação e Execução do Kore Memory
pip install kore-memory[semantic]
kore
# → Kore running on http://localhost:8765
Salvar e Buscar Memórias com o Kore Memory
from kore_memory import KoreClient
with KoreClient("http://localhost:8765", agent_id="my-agent") as kore:
memory = kore.save(
content="User prefers dark mode and concise technical responses",
category="preference"
)
print(f"Saved with importance: {memory.importance}") # → 4
results = kore.search(
q="dark theme preference",
semantic=True,
limit=5
)
for mem in results.results:
print(f"Score: {mem.decay_score:.2f} | {mem.content}")
Integração com LangChain
from kore_memory.integrations import KoreLangChainMemory
memory = KoreLangChainMemory("http://localhost:8765")
# Pass to your chain
Integração com CrewAI
from kore_memory.integrations import KoreCrewAIMemory
short_term = KoreCrewAIMemory(
kore_url="http://localhost:8765",
agent_id="crew-agent",
ttl_hours=24 # Expires after 24 hours
)
long_term = KoreCrewAIMemory(
kore_url="http://localhost:8765",
agent_id="crew-agent"
# No TTL = persists forever (or until decay filters it)
)
Integração com Claude/Cursor
pip install kore-memory[mcp]
kore-mcp # Start the MCP server
📊 Arquitetura e Desempenho
Arquitetura do Kore Memory
O Kore Memory é um sistema de memória persistente para agentes de IA, projetado para funcionar completamente offline. Ele utiliza a biblioteca SQLite como motor de armazenamento de dados, permitindo que os agentes armazenem e recuperem memórias de forma eficiente e segura. Além disso, o Kore Memory utiliza a biblioteca FastAPI para criar uma API RESTful que permite a interação com o sistema de memória.
from fastapi import FastAPI
from pydantic import BaseModel
from sqlite3 import connect
app = FastAPI()
class Memory(BaseModel):
id: int
content: str
category: str
# Conexão com o banco de dados SQLite
conn = connect('kore_memory.db')
cursor = conn.cursor()
# Criar tabela de memórias
cursor.execute('''
CREATE TABLE IF NOT EXISTS memories (
id INTEGER PRIMARY KEY,
content TEXT,
category TEXT
)
''')
conn.commit()
Utilização de Sentence-Transformers
O Kore Memory utiliza a biblioteca sentence-transformers para gerar embeddings de texto, permitindo que os agentes realizem buscas semânticas em suas memórias. Essa biblioteca utiliza modelos de linguagem pré-treinados para gerar vetores de dimensão alta que representam o significado de um texto.
from sentence_transformers import SentenceTransformer
# Carregar modelo de linguagem pré-treinado
model = SentenceTransformer('distilbert-base-nli-mean-tokens')
# Gerar embedding de texto
text = 'Este é um exemplo de texto'
embedding = model.encode(text)
Desempenho do Sistema
O Kore Memory é projetado para ser eficiente em termos de desempenho, permitindo que os agentes realizem buscas e armazenem memórias de forma rápida e segura. A latência de busca é geralmente inferior a 50ms, e a capacidade de armazenamento de memórias é ilimitada, pois o sistema utiliza o banco de dados SQLite para armazenar os dados.
Segurança e Privacidade
O Kore Memory é completamente offline, o que significa que não compartilha dados com nenhuma fonte externa. Além disso, o sistema utiliza criptografia para proteger as memórias armazenadas, garantindo que apenas o agente que as armazenou possa acessá-las. Isso garante que os dados dos agentes sejam protegidos e não sejam compartilhados sem consentimento.
🚀 Próximos Passos e Contribuições
Convidamos você a explorar o Kore Memory e experimentar suas funcionalidades. Para começar, instale o Kore Memory usando o comando:
pip install kore-memory[semantic]
Depois de instalado, você pode iniciar o servidor Kore Memory usando o comando:
kore
Isso iniciará o servidor Kore Memory em http://localhost:8765. Você pode acessar a interface de usuário do Kore Memory em http://localhost:8765/dashboard.
Nossa equipe está ansiosa para receber contribuições para o projeto Kore Memory. Se você tiver alguma sugestão ou ideia para melhorar o Kore Memory, por favor, abra uma issue no nosso repositório no GitHub. Além disso, estamos sempre procurando por desenvolvedores talentosos para se juntarem à nossa equipe.
Construir agentes de IA que possam lembrar e aprender é um desafio emocionante e importante. O Kore Memory é uma ferramenta valiosa nesse processo, pois permite que os agentes de IA armazenem e recuperem informações de forma eficiente e eficaz. Junte-se a nós e ajude a criar o futuro da inteligência artificial!
Para mais informações sobre como contribuir para o Kore Memory, por favor, visite nosso repositório no GitHub: https://github.com/auriti-labs/kore-memory.
Fonte de Referência: dev.to.
Curadoria e Adaptação: Redação Yassutaro Developers.