Memória semântica (fatos vetorizados)
Fatos independentes que o agente aprendeu sobre o usuário ou o mundo, armazenados em um índice vetorial.
Memória semântica (fatos vetorizados) é uma aula grátis de AI Agents no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AI Agents, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AI Agents inclui 4 aulas no total.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
O que é memória semântica?
A memória semântica contém fatos independentes que o agente conhece — sobre o usuário, o mundo e a empresa. Diferentemente da memória episódica, ela não está vinculada a um evento específico por meio de um registro de data e hora.
Exemplos:
- "O nome do usuário é Alice."
- "Alice prefere Celsius."
- "O plano de preços atual é o Pro, por US$ 20 por mês."
Formato de armazenamento
Um armazenamento vetorial + metadados estruturados:
CREATE TABLE semantic_facts (
id UUID PRIMARY KEY,
user_id TEXT NOT NULL,
fact TEXT NOT NULL,
embedding vector(1536),
source TEXT, -- 'extracted' / 'user-stated' / 'system'
confidence REAL DEFAULT 1.0,
created_at TIMESTAMPTZ DEFAULT NOW()
);Extrair fatos das conversas
Após cada sessão, execute um extrator baseado em LLM:
extract_prompt = '''
From the conversation below, list any new facts about the user.
Return JSON: [{"fact": "...", "confidence": 0.0-1.0}]
Conversation:
{transcript}
'''
print(extract_prompt.strip())
Saving Extracted Facts
import uuid
for f in extracted:
vec = embed(f['fact'])
conn.execute('''
INSERT INTO semantic_facts (id, user_id, fact, embedding, confidence, source)
VALUES (%s, %s, %s, %s, %s, 'extracted')
''', (str(uuid.uuid4()), user_id, f['fact'], vec, f['confidence']))Recuperação durante a inferência
Para cada nova consulta, recupere os fatos relevantes e insira-os no prompt do sistema:
def relevant_facts(user_id, query, k=5):
qvec = embed(query)
rows = conn.execute('''
SELECT fact FROM semantic_facts
WHERE user_id = %s
ORDER BY embedding <=> %s LIMIT %s
''', (user_id, qvec, k))
return [r[0] for r in rows]
facts = relevant_facts(user_id, user_question)
system = SYSTEM_PROMPT + '\n\nKnown facts:\n' + '\n'.join(facts)Atualizar fatos
E se um fato mudar? "Alice prefere Celsius" -> "Agora Alice prefere Fahrenheit". Duas estratégias:
- Marque o fato antigo como obsoleto (adicione updated_at e faça uma exclusão lógica)
- Ou: armazene as contradições e resolva-as durante a recuperação
Reconciliação de fatos
Ao extrair informações, verifique se há contradições com os fatos existentes:
def reconcile(user_id, new_fact):
similar = relevant_facts(user_id, new_fact, k=3)
response = llm.invoke(f'Is the new fact ({new_fact}) consistent with existing facts ({similar})? If contradicting, return the obsolete one.')
if response.has_contradiction:
mark_obsolete(response.obsolete_id)
save_fact(new_fact)Confidence-Weighted Retrieval
rows = conn.execute('''
SELECT fact FROM semantic_facts
WHERE user_id = %s AND confidence > 0.6
ORDER BY embedding <=> %s LIMIT %s
''', ...)Decaimento de fatos
Alguns fatos ficam desatualizados ("o projeto atual é X"). Adicione um TTL ou reduza a confiança ao longo do tempo:
UPDATE semantic_facts
SET confidence = confidence * 0.95
WHERE created_at < NOW() - INTERVAL '30 days';Fatos sensíveis à privacidade
Criptografe os dados PII antes de armazená-los. Alguns fatos (sobre saúde e finanças) precisam de proteção adicional — armazene-os em uma tabela separada e com controles de acesso mais rígidos.
Fatos editáveis pelo usuário
Mostre aos usuários os fatos armazenados sobre eles e permita que os editem ou excluam. Isso cria confiança e reduz erros de memória invasivos.
Memória como ferramenta
Exponha as operações de memória como ferramentas que o próprio agente pode chamar:
tools = [
{'name': 'remember_fact', 'description': 'Save a new fact about the user'},
{'name': 'forget_fact', 'description': 'Remove a stored fact'},
{'name': 'recall_facts', 'description': 'Search relevant facts for a query'}
]
import json
print(json.dumps(tools, indent=2))
Letta e MemGPT
A estrutura Letta (anteriormente MemGPT) implementa memória de agentes em escala, com uma memória "principal" (sempre no contexto) e uma memória "de arquivamento" (pesquisada por vetor) separadas.
Semântica versus episódica
Como a memória semântica difere da memória episódica?
Recapitulação
Armazene fatos sobre o usuário em um armazenamento vetorial, recupere os K fatos relevantes a cada turno e insira-os no prompt do sistema. Reconcilie as contradições; reduza a confiança ou faça os fatos expirarem com o tempo.
Perguntas Frequentes
A aula “Memória semântica (fatos vetorizados)” é grátis?
Sim — o texto completo de “Memória semântica (fatos vetorizados)” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AI Agents, atualize para CoddyKit PRO. O curso de AI Agents inclui 4 aulas no total.
O que vou aprender em “Memória semântica (fatos vetorizados)”?
Fatos independentes que o agente aprendeu sobre o usuário ou o mundo, armazenados em um índice vetorial. Você pratica AI Agents com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar AI Agents?
Nenhuma experiência prévia é necessária. AI Agents no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Memória semântica (fatos vetorizados)”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de AI Agents?
Sim. Cada aula de AI Agents inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Memória episódica (histórico por sessão)
- Memória semântica (fatos vetorizados)
- Memória procedural (biblioteca de habilidades)
- Decaimento da memória e coleta de lixo