0Pricing
AI Agents · Aula

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:

  1. Marque o fato antigo como obsoleto (adicione updated_at e faça uma exclusão lógica)
  2. 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

  1. Memória episódica (histórico por sessão)
  2. Memória semântica (fatos vetorizados)
  3. Memória procedural (biblioteca de habilidades)
  4. Decaimento da memória e coleta de lixo
← Voltar para AI Agents