Memoria procedurale (libreria di competenze)
Crei una libreria di sequenze di prompt e strumenti riuscite, che l'agente possa riprodurre per le attività ricorrenti.
Memoria procedurale (libreria di competenze) è una lezione AI Agents gratuita su CoddyKit. Questa è la lezione 3 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 procedurale?
La memoria procedurale conserva il "modo di fare le cose": sequenze riutilizzabili di azioni che hanno avuto successo. La consideri una raccolta di mini-ricette che l'agente può riprodurre.
Esempi:
- "Per compilare una nota spese, esegua A, poi B e infine C."
- "Per distribuire la build di staging, esegua X, attenda Y e poi esegua Z."
Perché utilizzare la memoria procedurale?
Senza di essa, l'agente ricalcola ogni volta lo stesso piano da zero: è lento, costoso e incoerente. Con una libreria di competenze, le attività ricorrenti vengono risolte istantaneamente.
Storage Format
CREATE TABLE skills (
id UUID PRIMARY KEY,
name TEXT NOT NULL,
description TEXT NOT NULL,
embedding vector(1536),
steps JSONB NOT NULL, -- list of tool calls
success_rate REAL DEFAULT 1.0,
use_count INT DEFAULT 0,
created_at TIMESTAMPTZ
);Acquisire una nuova competenza
Dopo un'esecuzione riuscita, chieda all'LLM di estrarre la procedura:
extract_prompt = '''
The agent successfully completed: {user_request}
The trace was:
{trace}
Write this as a reusable skill with name, description, and step list.
Return JSON: {name, description, steps: [{tool, args_template}]}
'''
print(extract_prompt.strip())
Storing the Skill
skill = json.loads(llm.invoke(extract_prompt).content)
vec = embed(skill['description'])
conn.execute('''
INSERT INTO skills (id, name, description, embedding, steps)
VALUES (%s, %s, %s, %s, %s::jsonb)
''', (str(uuid.uuid4()), skill['name'], skill['description'], vec, json.dumps(skill['steps'])))Recupero di una skill pertinente
Quando arriva una nuova richiesta dell'utente, cerchi nella libreria di skill:
def find_skill(query):
qvec = embed(query)
rows = conn.execute('''
SELECT name, steps FROM skills
ORDER BY embedding <=> %s LIMIT 3
''', (qvec,))
return rowsModelli di skill
Le skill sono modelli con slot per i parametri. L'agente inserisce i valori effettivi a ogni esecuzione:
skill = {
'name': 'file_expense_report',
'steps': [
{'tool': 'open_form', 'args': {'form_id': 'expense'}},
{'tool': 'fill_field', 'args': {'field': 'amount', 'value': '{amount}'}},
{'tool': 'fill_field', 'args': {'field': 'category', 'value': '{category}'}},
{'tool': 'submit'}
]
}
import json
print(json.dumps(skill, indent=2))
Suggerire skill all'LLM
Inserisca le skill candidate nel system prompt e lasci che sia l'LLM a decidere quale utilizzare:
candidates = find_skill(user_request)
prompt = f'''
You can use these existing skills if applicable:
{json.dumps(candidates, indent=2)}
Or you can plan a new sequence.
'''Monitoraggio del successo delle skill
Dopo ogni utilizzo, aggiorni le statistiche della skill:
UPDATE skills
SET use_count = use_count + 1,
success_rate = (success_rate * use_count + (CASE WHEN %s THEN 1 ELSE 0 END)) / (use_count + 1)
WHERE id = %s;Eliminazione delle skill inefficienti
Le skill con success_rate basso o use_count basso dovrebbero essere rimosse:
DELETE FROM skills
WHERE (success_rate < 0.5 AND use_count >= 5)
OR (use_count = 0 AND created_at < NOW() - INTERVAL '30 days');Voyager: un esempio famoso
Voyager (Wang et al. 2023) è un agente che gioca a Minecraft e costruisce una «libreria di skill» di frammenti di codice: un articolo fondamentale sulla memoria procedurale.
Composizione delle skill
Le skill possono chiamare altre skill. L'agente apprende procedure via via più astratte:
low_level_skill = {'name': 'open_email', 'steps': [...]}
high_level_skill = {'name': 'process_inbox', 'steps': [
{'skill': 'open_email'},
{'skill': 'reply_or_archive'}
]}
print(low_level_skill)
print(high_level_skill)
Privacy delle skill
Le skill sono generalmente abbastanza generiche da poter essere condivise tra utenti. Tuttavia, verifichi: alcune «skill» rivelano dettagli specifici dell'utente, come un determinato numero di conto. Anonimizzi questi dati prima di archiviarli in una libreria condivisa.
Definizione procedurale
Che cosa memorizza la memoria procedurale?
Riepilogo
Memoria procedurale = libreria di skill. Estragga le ricette dalle esecuzioni riuscite, recuperi quelle pertinenti per le nuove richieste, monitori i tassi di successo ed elimini quelle ormai inutili.
Domande Frequenti
La lezione «Memoria procedurale (libreria di competenze)» è gratuita?
Sì — il testo completo di «Memoria procedurale (libreria di competenze)» è 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 procedurale (libreria di competenze)»?
Crei una libreria di sequenze di prompt e strumenti riuscite, che l'agente possa riprodurre per le attività ricorrenti. 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 3 di 4.
Quanto tempo richiede la lezione «Memoria procedurale (libreria di competenze)»?
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