Memoria semantica (fatti vettorializzati)
Conservi in un indice vettoriale i fatti indipendenti appresi dall'agente sull'utente o sul mondo.
Memoria semantica (fatti vettorializzati) è una lezione AI Agents gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento AI Agents, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso AI Agents include 4 lezioni in totale.
Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.
Che cos'è la memoria semantica?
La memoria semantica contiene fatti indipendenti dagli eventi che l'agente conosce, riguardanti l'utente, il mondo o l'azienda. A differenza della memoria episodica, non è associata a un timestamp legato a un evento specifico.
Esempi:
- "Il nome dell'utente è Alice."
- "Alice preferisce i gradi Celsius."
- "Il piano tariffario attuale è Pro, a 20 $ al mese."
Formato di archiviazione
Un vector store con metadati strutturati:
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()
);Estrarre fatti dalle conversazioni
Dopo ogni sessione, esegua un estrattore 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']))Recupero al momento dell'inferenza
Per ogni nuova query, recuperi i fatti pertinenti e li inserisca nel system prompt:
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)Aggiornare i fatti
Che cosa succede se un fatto cambia? "Alice preferisce i gradi Celsius" -> "Alice ora preferisce i gradi Fahrenheit". Due strategie:
- Contrassegnare il vecchio fatto come obsoleto (aggiungere updated_at, eliminazione logica)
- Oppure: conservare le contraddizioni e risolverle durante il recupero
Riconciliazione dei fatti
Durante l'estrazione, verifichi la presenza di contraddizioni con i fatti esistenti:
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
''', ...)Decadimento dei fatti
Alcuni fatti diventano obsoleti ("il progetto attuale è X"). Aggiunga un TTL oppure riduca l'affidabilità nel tempo:
UPDATE semantic_facts
SET confidence = confidence * 0.95
WHERE created_at < NOW() - INTERVAL '30 days';Fatti sensibili per la privacy
Crittografi i dati personali prima di archiviarli. Alcuni fatti (relativi alla salute o alle finanze) richiedono una protezione aggiuntiva: li conservi in una tabella separata e sottoposta a controlli più rigorosi.
Fatti modificabili dall'utente
Mostri agli utenti i fatti archiviati e consenta loro di modificarli o eliminarli. In questo modo aumenta la fiducia e si riducono gli errori inquietanti della memoria.
La memoria come strumento
Esponga le operazioni sulla memoria come strumenti che l'agente stesso può chiamare:
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
Il framework Letta (in precedenza MemGPT) implementa la memoria degli agenti su larga scala, con una memoria "core" separata (sempre nel contesto) e una memoria "archival" (ricercata tramite vettori).
Memoria semantica ed episodica
In che modo la memoria semantica differisce da quella episodica?
Riepilogo
Conservi in un vector store i fatti sull'utente, recuperi i K fatti pertinenti a ogni turno e li inserisca nel system prompt. Riconcili le contraddizioni e applichi il decadimento o la scadenza nel tempo.
Domande Frequenti
La lezione «Memoria semantica (fatti vettorializzati)» è gratuita?
Sì — il testo completo di «Memoria semantica (fatti vettorializzati)» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso AI Agents, passa a CoddyKit PRO. Il corso AI Agents include 4 lezioni in totale.
Cosa imparerò in «Memoria semantica (fatti vettorializzati)»?
Conservi in un indice vettoriale i fatti indipendenti appresi dall'agente sull'utente o sul mondo. Eserciti AI Agents con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare AI Agents?
Non è richiesta alcuna esperienza precedente. AI Agents su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Memoria semantica (fatti vettorializzati)»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione AI Agents?
Sì. Ogni lezione AI Agents include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Memoria episodica (cronologia per sessione)
- Memoria semantica (fatti vettorializzati)
- Memoria procedurale (libreria di competenze)
- Decadimento della memoria e garbage collection