Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Important
Tato funkce je v beta verzi.
Agentní paměť dává agentům dlouhodobou paměť, která přetrvává napříč konverzacemi. Azure Databricks ukládá paměť do Lakebase a spravuje za vás úložiště, indexaci a sémantické vyhledávání, takže vaši agenti si mohou pamatovat uživatelské preference, minulá rozhodnutí a nashromážděný kontext bez toho, abyste databázi provozovali.
Note
Během období Preview jsou vám účtovány poplatky za podkladovou instanci Lakebase, která ukládá vaše záznamy v paměti. Za samotnou paměť agenta nejsou účtovány žádné další poplatky. Ceny se mohou v průběhu ukázky měnit.
Používejte paměť agenta, když chcete, aby vaši agenti mohli:
- Pamatujte na uživatelské preference, fakta a rozhodnutí v různých konverzacích.
- Personalizujte odpovědi na základě toho, co se agent naučil v předchozích sezeních.
- Sdílejte nahromaděné znalosti napříč agenty a projekty.
- Zlepšení přesnosti a efektivity v průběhu času
Paměť agentů funguje s agenty postavenými na jakémkoli frameworku. Pro krátkodobou historii konverzace v rámci jedné interakce použijte relace agenta.
Požadavky
- Nainstalujte Python 3.10 nebo novější, abyste mohli používat AgentKit SDK. AgentKit SDK je Databricks Python klient pro agentní API, který používají níže uvedené příklady. REST API můžete také volat přímo z jakéhokoliv jazyka, bez nutnosti Python.
Jak funguje agentní paměť
Paměť agenta má dvě úrovně:
-
Paměťové úložiště je kontejner v rámci pracovního prostoru pro paměti agenta. Vytvoření obchodu automaticky zajišťuje zálohující úložiště Lakebase. Obchod adresujete pomocí jeho
display_name. -
Paměťový záznam je samostatná položka obsahu v úložišti. Každý záznam má volný text
content, zkratkudescriptionpoužívanou pro vyhledávání a sadu polí, která jej organizují a rozdělují:-
actor_id(povinné): komu paměť patří, například koncovému uživateli nebo jinému agentovi. -
session_id(volitelné): zaznamenává, ze které relace byla paměť zachycena, pro účely dohledatelnosti a určení původu. Nechte to nenastavené pro paměť, která není vázaná na konkrétní seanci. -
path(vyžadováno): Cesta podobná souborovému systému, která organizuje položky uvnitř aktéra, například/preferences/response-style.md.
-
Prvek je jednoznačně identifikován kombinací actor_id, session_id, a path.
Záznamy se dostanou do úložiště dvěma způsoby: váš agent nebo aplikace je zapíše přímo, nebo je paměťová pipeline destiluje z konverzací v úložišti relací.
Vyhledávání
Vyvolejte paměť dvěma způsoby:
-
Položky pro herce v seznamu , volitelně filtrované podle
session_idnebo prefixupath. Použijte to k prohlížení nebo zobrazení indexu toho, co agent ví. - Vyhledejte záznamy o herci pomocí dotazu v přirozeném jazyce. Vyhledávání vrací nejrelevantnější položky seřazené podle skóre relevance v plném textu (BM25).
Začínáme
Tyto příklady nastavují paměť agenta pro agenta podpory: vytvoří úložiště paměti, uloží uživatelovu preferenci a vyvolají ji v pozdější konverzaci. Vyberte si klienta, který odpovídá vašemu projektu. Paměťové display_name úložiště musí mít 3 až 56 znaků, začínat malým písmenem, končit písmenem nebo číslem a obsahovat pouze malá písmena, čísla a pomlčky.
AgentKit SDK
AgentKit SDK je Python klient Databricks pro agentní API, distribuovaný v balíčkudatabricks-agentbricks. Autentizuje se pomocí Databricks SDK WorkspaceClient.
Nainstalujte AgentKit SDK:
pip install databricks-agentbricksVytvořte paměťové úložiště pro svého agenta.
AgentKitClientAutentizuje se svýmiWorkspaceClientpřihlašovacími údaji:from databricks.sdk import WorkspaceClient from databricks_agentkit import AgentKitClient client = AgentKitClient(WorkspaceClient()) memory_store = client.memory_stores.create("support-agent-memory")Uložte vzpomínku poté, co agent zjistí něco trvalého o uživateli.
actor_idurčuje, čí je tato paměť,pathji uspořádává v rámci daného aktéra adescriptionzlepšuje vybavení:memory_store.add( actor_id="user-123", path="/preferences/communication.md", content="Prefers email over phone. Timezone: PST. Enterprise subscription.", description="User 123 communication preferences", )Vzpomínky uživatele si vybavte v pozdější konverzaci pomocí vyhledávání v přirozeném jazyce:
results = memory_store.search(actor_id="user-123", query="communication preferences", limit=10)
REST API
Klienti volají REST API pod adresou /api/2.0/agents/memory-stores. Volejte ji přímo v jiných jazycích než v Pythonu.
Vygenerujte OAuth token pomocí Databricks CLI:
databricks auth login --host ${DATABRICKS_HOST} export DATABRICKS_TOKEN=$(databricks auth token | jq -r .access_token)Vytvořte paměťové úložiště pro svého agenta:
curl -X POST "https://${DATABRICKS_HOST}/api/2.0/agents/memory-stores" \ -H "Authorization: Bearer ${DATABRICKS_TOKEN}" -H "Content-Type: application/json" \ -d '{"display_name": "support-agent-memory", "description": "Support agent memory"}'Uložte uživateli paměťový záznam.
actor_idurčuje, čí paměť to je,pathji organizuje adescriptionzlepšuje vybavování:curl -X POST "https://${DATABRICKS_HOST}/api/2.0/agents/memory-stores/support-agent-memory/entries" \ -H "Authorization: Bearer ${DATABRICKS_TOKEN}" -H "Content-Type: application/json" \ -d '{"actor_id": "user-123", "path": "/preferences/communication.md", "content": "Prefers email over phone.", "description": "Communication preferences"}'Vyvolejte vzpomínky uživatele pomocí vyhledávání v přirozeném jazyce:
curl -X POST "https://${DATABRICKS_HOST}/api/2.0/agents/memory-stores/support-agent-memory/entries:search" \ -H "Authorization: Bearer ${DATABRICKS_TOKEN}" -H "Content-Type: application/json" \ -d '{"actor_id": "user-123", "query": "communication preferences"}'
Dejte svému agentovi paměťové nástroje
Aby agent mohl rozhodnout, kdy uložit a odvolat paměť, zabalte klientské operace do nástrojů a instruujte agenta, kdy je má použít, ve svém systémovém promptu. Nastavte v důvěryhodném aplikačním kódu hodnotu actor_id z ověřené identity koncového uživatele. Nikdy nenechte model vybírat, čí paměť bude číst nebo zapisovat.
Následující příklad zahrnuje AgentKit SDK memory_store z Get Start jako nástroje pro OpenAI Agents SDK.
from agents import Agent, function_tool
def make_memory_tools(memory_store, actor_id: str):
@function_tool
def search_memory(query: str) -> str:
"""Search long-term memory for relevant facts about the user."""
results = memory_store.search(actor_id=actor_id, query=query, limit=10)
return "\n\n".join(f"{r.memory.path}: {r.memory.content}" for r in results) or "No memory found."
@function_tool
def save_memory(path: str, content: str, description: str = "") -> str:
"""Save a durable, long-term memory about the user."""
memory_store.add(actor_id=actor_id, path=path, content=content, description=description)
return f"Saved memory at {path}"
return [search_memory, save_memory]
agent = Agent(
name="Support agent",
instructions="Save durable user preferences and recall them when relevant.",
tools=make_memory_tools(memory_store, actor_id="user-123"),
)
Stejný vzorec funguje i s Claude Agent SDK a dalšími frameworky: zabalit vyhledávání v úložišti a přidat operace jako typ nástroje frameworku.
Pokud také spustíte paměťovou pipeline na stejném paměťovém úložišti, pipeline může přepsat, sloučit, rozdělit nebo smazat záznamy, které agent ukládá pro jakéhokoli aktéra, kterého zpracovává.
Oddělená a zabezpečená paměť
V úložišti pomocí actor_id rozlišíte, komu které vzpomínky patří. Každý seznam i každé vyhledávání jsou omezeny na jedno actor_id, takže zvolte strategii, která odpovídá tomu, co si váš agent potřebuje pamatovat:
-
Soukromá paměť pro každého uživatele: Nastavena
actor_idna ověřenou identitu koncového uživatele. Každý uživatel dostane svůj vlastní oddíl a agent si vybaví pouze záznamy tohoto uživatele.- Příklad: Agent podpory si pamatuje komunikační preference jednoho uživatele a jeho předchozí tikety.
-
Sdílená paměť pro skupinu: Nastavte
actor_idpevný klíč, který si zvolíte, například ID týmu, projektu nebo organizace. Všichni čtou a píší stejné vzpomínky.- Příklad: Týmový agent si pamatuje sdílený slovník firemních termínů a interních konvencí.
-
Rozdělení paměti podle něčeho jiného: Vytvořte
actor_idz vlastních hodnot, například z ID tenanta nebouser:projectkompozitu.-
Příklad: Aplikace s více tenanty nastaví
actor_idna{tenant}:{user}, aby uživatelé každého zákazníka zůstali navzájem izolovaní.
-
Příklad: Aplikace s více tenanty nastaví
Nastavte actor_id v aplikačním kódu v kontextu důvěryhodného volajícího: ověřenou identitu koncového uživatele pro paměť pro jednotlivé uživatele nebo důvěryhodný klíč týmu nebo projektu pro sdílenou paměť. Nikdy nenechte modelku to zvolit. Pokud vaše strategie závisí na identitě koncového uživatele, odmítejte požadavky, které ji neobsahují, namísto použití sdílené actor_id jako záložní možnosti.
Warning
actor_id odděluje vzpomínky, ale není to kontrola přístupu. Paměťová úložiště jsou omezena na pracovní prostor, takže jakýkoli principal, který se dostane do úložiště, může číst a zapisovat každý záznam napříč všemi aktéry. Obchod, ne herec, je bezpečnostní hranicí. Pro přísnou izolaci mezi nájemci a uživateli vytvořte samostatné paměťové úložiště pro každou hranici.
Aby jiný principál, například zástupce vašeho agenta, mohl použít úložiště, udělte mu přístup pomocí operacememory_store.grant_permission(principal_id) grant-permission (v AgentKit SDK).
Limitations
- Paměť agenta poskytuje pouze dlouhodobou paměť. Historii krátkodobých konverzací naleznete v části relace agentů.
- Vyhledávání je fulltextová operace (BM25) řazená podle relevance, která vrací nejvýše N výsledků, maximálně však 100 položek. Nepodporuje stránkování ani vyhledávání podle podobnosti vektorů.
- Kontrola přístupu je vynucována na úrovni obchodu. Řízení přístupu pro jednotlivé záznamy a jednotlivé aktéry není dostupné.
- Obchod
display_nameje po vytvoření neměnný. Aktualizovat lze pouzedescription.