AI-agenter · leksjon

Prosedyreminne (ferdighetsbibliotek)

Et bibliotek med vellykkede sekvenser av prompter og verktøykall som agenten kan spille av på nytt for gjentakende oppgaver.

Leksjon 3 av 415 trinn

Prosedyreminne (ferdighetsbibliotek) er en gratis leksjon i AI-agenter på CoddyKit. Dette er leksjon 3 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i AI-agenter, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i AI-agenter inneholder totalt 4 leksjoner.

Deler av denne leksjonen er ennå ikke oversatt og vises på engelsk.

Hva er proseduralt minne?

Proseduralt minne lagrer «hvordan ting gjøres» — gjenbrukbare handlingssekvenser som har lykkes. Tenk på det som et bibliotek med små oppskrifter agenten kan spille av på nytt.

Eksempler:

  • «For å levere en utgiftsrapport: gjør A, deretter B og så C.»
  • «For å distribuere staging-bygget: kjør X, vent på Y og utfør deretter Z.»

Hvorfor proseduralt minne?

Uten dette utleder agenten den samme planen fra grunnen av hver gang — det går sakte, koster mye og gir ujevne resultater. Med et ferdighetsbibliotek løses tilbakevendende oppgaver umiddelbart.

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
);

Registrer en ny ferdighet

Etter en vellykket kjøring kan LLM-en bes om å trekke ut oppskriften:

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'])))

Henting av en relevant ferdighet

Når en ny brukerforespørsel kommer inn, søker De i ferdighetsbiblioteket:

def find_skill(query):
    qvec = embed(query)
    rows = conn.execute('''
        SELECT name, steps FROM skills
        ORDER BY embedding <=> %s LIMIT 3
    ''', (qvec,))
    return rows

Ferdighetsmaler

Ferdigheter er maler med parameterplasser. Agenten fyller inn faktiske verdier for hver kjøring:

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))

Foreslå ferdigheter for LLM-en

Sett inn kandidatferdigheter i systemprompten, og la LLM-en avgjøre hvilken som skal brukes:

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.
'''

Sporing av ferdigheters suksess

Oppdater ferdighetsstatistikken etter hver bruk:

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;

Fjerne dårlige ferdigheter

Ferdigheter med lav success_rate eller lav use_count bør fjernes:

DELETE FROM skills
WHERE (success_rate < 0.5 AND use_count >= 5)
   OR (use_count = 0 AND created_at < NOW() - INTERVAL '30 days');

Voyager: Et kjent eksempel

Voyager (Wang et al. 2023) er en Minecraft-spillende agent som bygger et «ferdighetsbibliotek» med kodebiter – en banebrytende artikkel om prosedyreminne.

Sammensetning av ferdigheter

Ferdigheter kan kalle på andre ferdigheter. Agenten lærer stadig mer abstrakte prosedyrer:

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)

Personvern for ferdigheter

Ferdigheter er vanligvis generiske nok til å kunne deles mellom brukere. Men kontroller dette – noen «ferdigheter» lekker brukerspesifikke detaljer (for eksempel et bestemt kontonummer). Anonymiser opplysningene før De lagrer dem i et delt bibliotek.

Prosedyredefinisjon

Hva lagrer prosedyreminnet?

Oppsummering

Prosedyreminne = ferdighetsbibliotek. Trekk ut oppskrifter fra vellykkede kjøringer, hent relevante oppskrifter for nye forespørsler, følg med på suksessrater, og fjern de ubrukelige.

Gratis å komme i gang

Lær deg AI-agenter med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
60
Leksjoner
239

Ofte stilte spørsmål

Er leksjonen «Prosedyreminne (ferdighetsbibliotek)» gratis?

Ja – hele teksten i «Prosedyreminne (ferdighetsbibliotek)» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av AI-agenter-kurset, kan du oppgradere til CoddyKit PRO. Kurset i AI-agenter inneholder totalt 4 leksjoner.

Hva lærer jeg i «Prosedyreminne (ferdighetsbibliotek)»?

Et bibliotek med vellykkede sekvenser av prompter og verktøykall som agenten kan spille av på nytt for gjentakende oppgaver. Du øver på AI-agenter med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med AI-agenter?

Ingen tidligere erfaring er nødvendig. AI-agenter på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.

Hvor lang tid tar leksjonen «Prosedyreminne (ferdighetsbibliotek)»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne AI-agenter-leksjonen?

Ja. Alle AI-agenter-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Episodisk minne (historikk per økt)
  2. Semantisk minne (vektoriserte fakta)
  3. Prosedyreminne (ferdighetsbibliotek)
  4. Minnesvinn og søppelrydding
← Tilbake til AI-agenter