Ügynökmemória-folyamatok

Important

Ez a funkció bétaverzióban érhető el.

A memóriafolyamat hosszú távú memóriát épít fel az ügynököd korábbi beszélgetéseiből. Beolvassa a beszélgetéstörténetet egy session store-ból, és hosszú távú emlékeket, például tényeket, preferenciákat és eljárásokat párol le egy memory store-ba. Az ügynököd ezután ugyanúgy felidézi ezeket az emlékeket a későbbi beszélgetésekben, ahogyan a saját maga által elmentett emlékeket is.

Az az ügynök, amely egy beszélgetés során emlékeket ment, egyszerre egy beszélgetésből írja azokat, csak az adott beszélgetés kontextusát használva. Sok beszélgetés során az emlékezete átfedő és ellentmondó bejegyzéseket gyűjt, és olyan tények, amelyeket az ügynök nem gondolt arra, hogy elmentse, nem jutnak el az emlékezetbe. A memóriafolyamat utólag működik, az aktor összes beszélgetésének és meglévő memóriájának áttekintésével, így rögzítheti, amit az ügynök kihagyott, és konszolidálva tartja a memóriát.

Használj memóriafolyamatcsövet, amikor szeretnéd:

  • Építs hosszú távú memóriát a beszélgetésekből anélkül, hogy memóriaíró eszközöket adnál az ügynöködnek.
  • Töltse fel visszamenőleg a memóriát a beszélgetési előzményekből, amelyeket a munkamenettár már tárol.
  • Tartsd rendszerezve az emlékeket az idő múlásával az átfedő bejegyzések összevonásával és a túlméretezettek felosztásával.

Használhatsz memóriafolyamatot önmagában vagy a memóriaeszközök mellett, amelyeket az ügynököd a beszélgetés során használ.

Bankjegy

A memóriavezeték futtatásai szerver nélküli általános számítási díjszabást használnak a feladathoz, és Foundation Model Serving árképzést a modellhívásokhoz.

Requirements

  • Egy munkamenettároló, amely tárolja az ügynök beszélgetéseit, és egy memóriatároló, ahová emlékeket írhatsz.
  • A folyamatot létrehozó identitás számára hozzáférés mindkét tárolóhoz, beleértve a memóriatároló adatbázisában táblák létrehozására vonatkozó engedélyt is. A pipeline-futtatások ezt az identitást használják.
  • Engedély a pipeline által desztilláláshoz használt modell lekérdezésére. Nélküle a pipeline futtatásai meghibásodnak.
  • A CLI használatához telepítse a(z) databricks-agentbricks 0.6.0-s vagy újabb verzióját. Bármelyik nyelvről közvetlenül hívhatod a REST API-t .

Hogyan működnek a memória-folyamatcsatornák

A memóriafolyamat egy ügynöki memória-erőforrás, amely egy munkamenet-tárolót egy memóriatárolóval köt össze. Ez nem kapcsolódik a Lakeflow pipelineshez. Egy session store több memóriatárolót is táplálhat, de minden session store–memóriatároló pár csak egy pipeline-nal rendelkezhet.

  • Modellhívások a Unity Gateway-en keresztül: A csővezeték a Unity Gateway-en keresztül hívja a desztillációs modelljét.
  • A modell kiválasztása: A modellt akkor választod ki, amikor létrehozol egy pipeline-t, és később megváltoztathatod. Ha nem választasz egyet, a pipeline alapértelmezett modellt használ.
  • Manuális vagy ütemezett futások szerver nélküli számítási környezeten: Magad indítod el a futásokat, vagy úgy konfigurálod a folyamatot, hogy körülbelül 24 óránként menetrend szerint fusson. Akárhogy is, minden futás szerver nélküli számításon egy feladatként fut, azzal az identitással, amely létrehozta a folyamatot.

A pipeline minden futása külön-külön dolgozza fel az összes szereplőt a session store-ben:

  1. Lepárlás: A folyamat beolvassa a színész új beszélgetéseit, és egy LLM-et használ, hogy tartós tényeket nyerjen ki belőlük.
  2. Összevonás: A csővezeték deduplikálja az új tényeket, és témaalapú memóriabejegyzésekké egyesíti őket a memória tárolóban ugyanazon actor_id alatt.
  3. Karbantartás: A pipeline átrendezi az aktor memóriáját. Összevonja azokat a bejegyzéseket, amelyek átfednek, és szétválasztja a túl nagyra nőtt bejegyzéseket.

A memória-pipeline futásai minden aktorazonosítóhoz megőriznek egy ellenőrzőpontot. Egy futás az adott aktor utolsó sikeres futása óta az aktor összes ülését dolgozza fel, így az első futás az aktor teljes előzményeit dolgozza fel. Ha egy futtatás egy aktornál meghiúsul, az folytatódik a többi aktorral, és a következő futás újra megpróbálja a sikertelen aktort az ellenőrzési ponttól.

Ez actor_id összeköti a két adattárat. A pipeline csak azokat az aktorokat dolgozza fel, akiknek van sessionjük a session store-ban, és minden aktor emlékeit ugyanazon actor_id alá írja, amelyet az aktor sessionjei használnak. Alapértelmezés szerint a folyamat csak akkor fut, amikor elkezded a futást. Időbeosztás szerint is futtathatod.

Bankjegy

A karbantartás minden aktor memóriabejegyzésére vonatkozik, beleértve azokat a bejegyzéseket is, amelyeket az Ön ügynöke közvetlenül mentett. A pipeline újraírhat, összevonhat, feloszthat vagy törölhet bármely bejegyzést az általa feldolgozott actor_id alatti.

Mit őriz meg egy folyamat

Egy folyamat egyedi, tartós tényeket nyer ki a beszélgetésekből. Úgy tervezték, hogy megőrizze:

  • Olyan tényeket, amelyeket a felhasználó kifejezetten kimond, és azokat a preferenciákat, amelyeket kifejez, anélkül, hogy a beszélgetésben elhangzottakon túl következtetne.
  • Javítások és kifejezett visszajelzések, például hogy melyik forrást használjuk a bevételi adatokhoz.
  • Tartós szakterületi ismeretek, mint például hiteles források, metrikai definíciók, terminológia és csapatkonvenciók, valamint munkafolyamatok és folyamatban lévő projektek.

Úgy tervezték, hogy átugorja:

  • Az élő forrásokból származó értékek, amelyek idővel változnak, például egy tábla aktuális sorszáma. Ehelyett rögzíti, hogyan találjuk meg vagy számoljuk ki az értéket.
  • Olyan részletek, amelyeket az ügynök az eszközeivel meg tud keresni, például egy táblázat sémája.
  • Titkok, mint például jelszavak, API kulcsok és tokenek.

Első lépések

Ezek a példák létrehoznak egy memóriafolyamatot egy támogatási ügynök munkamenetéhez és memóriatárolóihoz, elindítanak egy run-t, és ellenőrzik annak eredményét. Azonosítsa az egyes boltokat az azonosítója, az áruház létrehozásakor választott azonosítója vagy az erőforrás neve alapján, például memory-stores/support-agent-memory. Válaszd ki azt az ügyfelet, amely illik a projektedhez.

Bricks Ügynök

A Agent Bricks CLI a mentett Databricks CLI profilját használja az autentifikációhoz.

  1. Telepítsd az Agent Bricks CLI-t, vagy frissítsd 0.6.0-ra vagy magasabbra:

    pip install --upgrade databricks-agentbricks
    
  2. Hozz létre egy csővezetéket, amely a support-agent-memory session tárolót a support-agent-sessions memóriatárolóvá alakítja. --model nem kötelező. Ha kihagyod, a folyamat alapértelmezett modellt használ:

    agentbricks memory pipeline create \
      --session-store support-agent-sessions \
      --memory-store support-agent-memory \
      --model system.ai.claude-sonnet-5
    

    A parancs visszaadja a pipeline erőforrás nevét, az alábbi formában memory-pipelines/<pipeline-id>.

  3. Indítsd el a pipeline futását:

    agentbricks memory pipeline run <pipeline-id>
    

    A parancs visszaadja a futás erőforrás nevét , az alakban memory-pipelines/<pipeline-id>/runs/<run-id>, és annak RUNNING állapotát.

  4. A CLI nem jeleníti meg a futás eredményét. A teszteléshez állítsd DATABRICKS_HOST be a munkaterület hosztnevedre, generálj egy OAuth tokent, és hívd meg a REST API-t:

    export DATABRICKS_TOKEN=$(databricks auth token --profile <profile> | jq -r .access_token)
    curl "https://${DATABRICKS_HOST}/api/2.0/agents/memory-pipelines/<pipeline-id>/runs/<run-id>" \
      -H "Authorization: Bearer ${DATABRICKS_TOKEN}"
    

REST API

A CLI a /api/2.0/agents/memory-pipelines alatt hívja meg a REST API-t. Hívd közvetlenül bármely programozási nyelvből.

  1. Generálj egy OAuth tokent a Databricks CLI-val:

    databricks auth login --host ${DATABRICKS_HOST}
    export DATABRICKS_TOKEN=$(databricks auth token | jq -r .access_token)
    
  2. Hozz létre egy folyamatot, amely lepárolja az emlékeket a(z) support-agent-sessions helyről, és elmenti őket ide: support-agent-memory. dreamer_policy.model nem kötelező. Ha kihagyod, a folyamat alapértelmezett modellt használ:

    curl -X POST "https://${DATABRICKS_HOST}/api/2.0/agents/memory-pipelines" \
      -H "Authorization: Bearer ${DATABRICKS_TOKEN}" -H "Content-Type: application/json" \
      -d '{"session_store": "support-agent-sessions", "memory_store": "support-agent-memory", "dreamer_policy": {"model": "system.ai.claude-sonnet-5"}}'
    

    A válasz name mezője tartalmazza a pipeline erőforrásnevét, memory-pipelines/<pipeline-id> formátumban.

  3. Indítsd el a pipeline futását:

    curl -X POST "https://${DATABRICKS_HOST}/api/2.0/agents/memory-pipelines/<pipeline-id>/run" \
      -H "Authorization: Bearer ${DATABRICKS_TOKEN}" -H "Content-Type: application/json" \
      -d '{}'
    

    A válasz name mezője tartalmazza a futás erőforrásának nevét, az alábbi formában memory-pipelines/<pipeline-id>/runs/<run-id>.

  4. Nézd meg a futás eredményét:

    curl "https://${DATABRICKS_HOST}/api/2.0/agents/memory-pipelines/<pipeline-id>/runs/<run-id>" \
      -H "Authorization: Bearer ${DATABRICKS_TOKEN}"
    

Miután egy futtatás sikeres lesz, az ügynök lekérheti az új memóriaelemeket a memóriatároló listázási és keresési műveleteivel. Lásd Az ügynök memóriája.

Csővezeték futtatások monitorozása

A futás state eleme az alábbiak egyike:

State Meaning
RUNNING A futás függőben van vagy folyamatban van.
SUCCEEDED A futtatás minden szereplőt sikeresen feldolgozott.
FAILED A futtatás egy vagy több aktor hibájával zárult. A error mező leírja a hibát.
CANCELLED A futást még a befejezése előtt megszakították.

Irányítsa a desztillációt utasításokkal

Az utasítások megmondják a folyamatnak, mit kell megtartani és hogyan szervezze meg. A folyamat minden szakaszban alkalmazza ezeket. Használd őket általános iránymutatásként, például:

  • A témák, amelyekre érdemes fókuszálni, például az ügyfélpreferenciák és a számla adatai.
  • A kihagyandó tartalom, például egyszeri hibaelhárítási lépések.
  • Az útvonalak, amelyek alá a bejegyzéseket rendezni lehet.

Elrendezési utasítások nélkül a folyamat a tároló meglévő bejegyzéseinek elrendezését követi, vagy témaalapú elrendezést eredményez, amikor a tároló üres. Nem nevezi át a meglévő bejegyzéseket, hogy megfeleljenek egy új elrendezésnek. Egy adott bejegyzés megváltoztatásához a memóriatároló frissítési műveletével szerkeszd, ne utasításokkal.

Be tudod állítani a beállításokat, amikor pipeline-t készítesz, majd később módosíthatod őket. A következő futás az új utasításokat használja.

Bricks Ügynök

Az utasítások beállításához folyamat létrehozásakor add meg a következőt: --instructions

agentbricks memory pipeline create \
  --session-store support-agent-sessions \
  --memory-store support-agent-memory \
  --instructions "Focus on durable customer preferences and account details. Ignore one-off troubleshooting steps. Organize entries under /preferences/ and /account/."

Ha hosszabb utasításokat szeretne betölteni egy UTF-8 fájlból, helyette adja meg a --instructions @<path-to-file> értéket.

A meglévő pipeline utasításainak módosításához futtassa a következőket:

agentbricks memory pipeline update <pipeline-id> \
  --instructions "Keep only durable customer preferences."

REST API

A REST API-ban a pipeline dreamer_policy objektuma tartalmazza a desztillációs beállításait: instructions, trigger és model. Az utasítások beállításához csővezeték létrehozásakor foglalja bele őket ebbe: dreamer_policy.instructions

curl -X POST "https://${DATABRICKS_HOST}/api/2.0/agents/memory-pipelines" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}" -H "Content-Type: application/json" \
  -d '{"session_store": "support-agent-sessions", "memory_store": "support-agent-memory", "dreamer_policy": {"instructions": "Focus on durable customer preferences and account details. Ignore one-off troubleshooting steps. Organize entries under /preferences/ and /account/."}}'

A meglévő folyamat utasításainak megváltoztatásához frissítsük a következőt: dreamer_policy.instructions

curl -X PATCH "https://${DATABRICKS_HOST}/api/2.0/agents/memory-pipelines/<pipeline-id>?update_mask=dreamer_policy.instructions" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}" -H "Content-Type: application/json" \
  -d '{"dreamer_policy": {"instructions": "Keep only durable customer preferences."}}'

Indíts egy folyamatot egy ütemterv szerint

Egy ütemezett folyamat automatikusan körülbelül 24 óránként fut. Beállíthatod a triggert, amikor létrehozol egy pipeline-t, vagy később módosíthatod. Az ütemező dönti el, mikor kezdődik az első tervezett futás. A meglévő beszélgetések azonnali összefoglalásához indíts el kézzel egy folyamatot.

Bricks Ügynök

Ütemezett folyamat létrehozásához adja meg a(z) --trigger scheduled értéket. Az alapértelmezett érték a következő --trigger manual:

agentbricks memory pipeline create \
  --session-store support-agent-sessions \
  --memory-store support-agent-memory \
  --trigger scheduled

Egy meglévő pipeline triggerének megváltoztatásához futtassa a következőt:

agentbricks memory pipeline update <pipeline-id> --trigger scheduled

Ha van ütemezett pipeline, felfüggesztheted:

agentbricks memory pipeline pause <pipeline-id>

Az ütemezett futtatások újraindításához folytassa:

agentbricks memory pipeline resume <pipeline-id>

REST API

A tervezett pipeline létrehozásához állítsuk dreamer_policy.triggerSCHEDULED-ra:

curl -X POST "https://${DATABRICKS_HOST}/api/2.0/agents/memory-pipelines" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}" -H "Content-Type: application/json" \
  -d '{"session_store": "support-agent-sessions", "memory_store": "support-agent-memory", "dreamer_policy": {"trigger": "SCHEDULED"}}'

Egy meglévő folyamat eseményindítójának módosításához frissítse a(z) dreamer_policy.trigger elemet erre: SCHEDULED vagy MANUAL_ONLY:

curl -X PATCH "https://${DATABRICKS_HOST}/api/2.0/agents/memory-pipelines/<pipeline-id>?update_mask=dreamer_policy.trigger" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}" -H "Content-Type: application/json" \
  -d '{"dreamer_policy": {"trigger": "SCHEDULED"}}'

Manuálisan is indíthatsz egy ütemezett pipeline futtatását, amennyiben nincs más folyamatban lévő futás.

Pipeline-ek kezelése

A következő parancsok a pipeline-ok listázására, ellenőrzésére, frissítésére és törlésére szolgálnak. Minden CLI parancs vagy a pipeline ID-jét, vagy annak teljes memory-pipelines/<pipeline-id> erőforrás nevét fogadja el.

Task Ügynök Bricks CLI REST API
Pipeline-ek listázása agentbricks memory pipeline list GET /api/2.0/agents/memory-pipelines
Pipeline létrehozása agentbricks memory pipeline get <pipeline-id> GET /api/2.0/agents/memory-pipelines/<pipeline-id>
Adatfolyam frissítése agentbricks memory pipeline update <pipeline-id> --display-name-, --model-, --trigger- vagy --instructions-val PATCH /api/2.0/agents/memory-pipelines/<pipeline-id> egy update_mask értékével: display_name, dreamer_policy.model, dreamer_policy.trigger vagy dreamer_policy.instructions
Folyamat törlése agentbricks memory pipeline delete <pipeline-id> DELETE /api/2.0/agents/memory-pipelines/<pipeline-id>

Ha nem állítasz be megjelenítő nevet, a pipeline kap egyet a session store és memory store nevei alapján. Ha egy pipeline-t vissza szeretne állítani az alapértelmezett modellre, frissítse a modelljét üres értékre, például --model "". A modell- és utasításváltozások a következő futásra vonatkoznak.

Egy folyamat törlése megszünteti a mögöttes feladatát, és megállítja a jövőbeni futásokat. Egy már folyamatban lévő futtatás a befejezésig tart. Azok a memóriabejegyzések, amelyeket a pipeline már írt, a memória tárolóban maradnak.

Limitations

  • A session store és memory store rögzített, amikor csővezetéket hozol létre. Ha bármelyiket módosítod, töröld a folyamatot, és hozz létre egy újat. Egy új pipeline nem használja újra a régi pipeline checkpointjait, így az első futtatása minden aktor teljes történetét feldolgozza, még ugyanazon store-pár esetében is.
  • Ha egy csővezeték már összeköti ugyanazt a munkamenet-tárolót és a memória-tárolót, akkor egy másik létrehozása sikertelen lesz a(z) ALREADY_EXISTS hibával.
  • Egy folyamatnak egyszerre csak egy futása van folyamatban. Ha egy futást indítunk, miközben egy másik folyamatban van, az egy ABORTED hibával meghiúsul.
  • Az ütemezett folyamatok körülbelül 24 óránként futnak. Nem állíthatsz más intervallumat vagy cron ütemtervet.
  • A pipeline csak azokat a szereplőket dolgozza fel, akiknek van munkamenetük a session store-ben. A munkamenet nélküli aktorok memóriabejegyzései változatlanok maradnak.
  • Ha a session store-ban több mint 1 200 aktor van UUID aktorazonosítóval, a futtatás megbukik. A korlát 48 KiB szerializált aktorazonosítók, így a rövidebb azonosítók több szereplőt engedélyeznek.

További erőforrások