Paměť spravovaného agenta

Important

Tato funkce je v beta verzi. Správci pracovního prostoru můžou řídit přístup k této funkci ze stránky Previews . Viz Manage Azure Databricks preview.

Paměť spravovaného agenta poskytuje agentům umělé inteligence dlouhodobou paměť napříč konverzacemi. Azure Databricks spouští infrastrukturu a izoluje paměti jednotlivých oborů, takže nespravujete úložiště ani dělení sami.

Se spravovanou pamětí můžou vaši agenti:

  • Zapamatujte si předvolby uživatelů, předchozí rozhodnutí a kumulovaný kontext napříč konverzacemi.
  • Zabezpečení znalostí pomocí zásad správného řízení katalogu Unity
  • Sdílejte ho mezi agenty a projekty.
  • Zlepšení přesnosti a efektivity v průběhu času

Požadavky

  • Pracovní prostor Databricks s povoleným Unity Catalog.
  • Oprávnění CREATE MEMORY STORE k nadřazenému schématu pro vytvoření paměťových úložišť.

Jak funguje spravovaná paměť

Spravovaná paměť má dvě úrovně:

  • Úložiště paměti je zabezpečitelný katalog Unity, který funguje jako kontejner pro položky paměti. Paměťové úložiště dědí stejnou správu, řízení přístupu a původ dat jako jakýkoli jiný objekt v katalogu Unity.
  • Položka paměti je jednotlivá část obsahu uložená v úložišti paměti. Každá položka je identifikována oborem a cestou. Obor určuje, do které paměti položka patří, a cesta uspořádá položky v rámci oboru, podobně jako cesta k souboru (například /memories/preferences.md).

Scope

Rozsah je způsob, jakým spravovaná paměť uchovává paměti jednoho agenta oddělené pro různé uživatele nebo skupiny. Každá položka paměti patří přesně do jednoho oboru a vyhledávání vrátí pouze položky v rámci dotazu.

  • Osobní paměť: Jako obor použijte ID koncového uživatele, aby každý uživatel získal vlastní soukromou paměť, například předvolby a předchozí rozhodnutí. Uživatelé vidí jenom svoje vlastní položky.
  • Organizační znalosti: Pomocí sdíleného klíče, například ID organizace nebo týmu, ukládejte znalosti, ze kterých může čerpat každý uživatel agenta, například informace o společnosti, glosáře a osvědčené postupy.

Jeden agent může používat oba najednou: číst z osobního oboru uživatele a ze sdíleného oboru organizace ve stejné konverzaci. scope je vyžadováno pro každý požadavek na záznam v paměti.

Warning

Rozsah je hranice izolace mezi uživateli. Nakonfigurujte rozsah v důvěryhodném kódu a nikdy nenechte model, aby jej nastavoval. Instanční objekt služby aplikace může číst všechny rozsahy.

Začínáme se spravovanou pamětí

Nejjednodušší způsob, jak přidat spravovanou paměť agentovi, je managed-memory dovednost Clauda Code. Postará se za vás o celé nastavení. Tato dovednost funguje se sadou SDK OpenAI Agents i jazykem LangGraph.

Získejte dovednosti do projektu jedním ze dvou způsobů:

Začínáme ze šablony

Funkce je součástí šablon aplikací Databricks. Vytvořte nového agenta z jedné ze šablon agentů, dovednost najdete v části .claude/skills/managed-memory/.

  1. Naklonujte úložiště šablon:

    git clone https://github.com/databricks/app-templates.git
    
  2. app-templatesVyberte šablonu agenta, od které chcete začít. Pokud například chcete použít šablonu sady SDK OpenAI Agents:

    cd app-templates/agent-openai-agents-sdk
    

    Note

    U „pokročilých“ šablon aplikací musíte po nasazení udělit instančnímu objektu služby aplikace oprávnění Lakebase Postgres, jinak se při nastavování relace vrátí chyba 502.

  3. Jakmile je dovednost v projektu, popište, co chcete, a váš pomocník pro psaní kódu se postará o zbytek:

    Tip

    Add Databricks managed long-term memory to my agent.
    

Přidání dovednosti do existujícího projektu

Pokud už projekt agenta máte, přidejte do něj dovednosti.

  1. Pokud adresář dovedností neexistuje, vytvořte ho:

    mkdir -p .claude/skills/managed-memory
    
  2. SKILL.md Stáhněte si soubor z managed-memory adresáře dovedností a uložte ho do .claude/skills/managed-memory/.

  3. Jakmile je dovednost v projektu, popište, co chcete, a váš pomocník pro psaní kódu se postará o zbytek:

    Tip

    Add Databricks managed long-term memory to my agent.
    

Vytvoření a použití úložiště paměti

Následující příklad nastaví spravovanou paměť pro agenta zákaznické podpory, který ukládá předvolby uživatele a načítá je v pozdější konverzaci.

  1. Vygenerujte token OAuth pomocí rozhraní příkazového řádku Databricks k volání rozhraní API:

    databricks auth login --host ${DATABRICKS_HOST}
    databricks auth token
    
  2. Vytvořte úložiště paměti pro uložení pamětí agenta:

    curl -X POST "https://${DATABRICKS_HOST}/api/2.1/unity-catalog/memory-stores" \
      -H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "support_agent_memory",
        "catalog_name": "main",
        "schema_name": "default",
        "description": "Long-term memory for the customer support agent"
      }'
    
  3. Zápis položky paměti po tom, co agent zjistí něco o uživateli. scope přiřadí záznam jednomu uživateli. Použijte pole contents pro úplný text paměti a description jako krátké shrnutí, které zlepšuje vyhledávání:

    curl -X POST \
      "https://${DATABRICKS_HOST}/api/2.1/unity-catalog/memory-stores/main.default.support_agent_memory/entries?scope=user-123" \
      -H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
      -H "Content-Type: application/json" \
      -d '{
        "path": "/memories/preferences.md",
        "contents": "Prefers email communication. Timezone: PST. Has an Enterprise subscription.",
        "description": "User 123 communication preferences and account details"
      }'
    
  4. Vyhledejte položky paměti pro daného uživatele v pozdější konverzaci a načtěte, co se agent naučil:

    curl -X POST \
      "https://${DATABRICKS_HOST}/api/2.1/unity-catalog/memory-stores/main.default.support_agent_memory/entries:search" \
      -H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
      -H "Content-Type: application/json" \
      -d '{
        "scope": "user-123",
        "query": "communication preferences"
      }'
    

Úplné rozhraní REST API, včetně koncových bodů, polí požadavků a polí odpovědi, najdete v referenčních informacích k rozhraní API paměti.

Přidejte agentovi paměť prostřednictvím konverzací

Výše uvedený pracovní postup REST volá přímo úložiště paměti a vstupní rozhraní API. Když vytvoříte agenta na Azure Databricks modelu obsluhující koncový bod, připojte místo toho úložiště paměti ke konverzaci s klientem kompatibilním s OpenAI v databricks-openai sadě SDK.

Konverzace je stav konverzace kompatibilní s OpenAI — průběžná historie zpráv a volání nástrojů — uložený v paměťovém úložišti a vázaný na jeden rozsah. Znovu používejte stejnou konverzaci ve více požadavcích, aby si agent pamatoval předchozí výměny.

  1. Přiřaďte existující paměťové úložiště a oblast k nové konverzaci. memory_store.name je tříúrovňový název obchodu a scope rozdělí stav konverzace obvykle podle koncového uživatele:

    from databricks.sdk import WorkspaceClient
    from databricks_openai import DatabricksOpenAI
    
    workspace_client = WorkspaceClient()
    user_id = str(workspace_client.current_user.me().id)
    
    client = DatabricksOpenAI(workspace_client=workspace_client, use_ai_gateway=True)
    
    conversation = client.conversations.create(
        extra_body={
            "memory_store": {"name": "main.default.support_agent_memory"},
            "scope": {"kind": "user", "value": user_id},
        },
    )
    
  2. Předejte ID konverzace do responses.create. Agent čte a zapisuje stav konverzace do přidruženého úložiště paměti v rámci daného rozsahu:

    response = client.responses.create(
        model="databricks-gpt-5-2",
        conversation=conversation.id,
        input=[{"type": "message", "role": "user", "content": "What is the average NYC taxi price?"}],
        stream=True,
    )
    
    for event in response:
        if event.type == "response.output_text.delta":
            print(event.delta, end="", flush=True)
    
  3. Znovu použijte stejné ID konverzace v dalších požadavcích, aby si agent pamatoval předchozí výměny. Nevytvářej novou konverzaci při každém tahu:

    followup = client.responses.create(
        model="databricks-gpt-5-2",
        conversation=conversation.id,
        input=[{"type": "message", "role": "user", "content": "Restate the average taxi price you found, and how it was calculated."}],
        stream=True,
    )
    
    for event in followup:
        if event.type == "response.output_text.delta":
            print(event.delta, end="", flush=True)
    

Informace o koncových bodech konverzace a polích žádostí najdete v tématu Rozhraní API konverzace.

Řízení přístupu k paměti

Paměťová úložiště jsou zabezpečitelné objekty v Unity Catalog. Přístup řídí následující oprávnění:

Oprávnění Vztahuje se na Description
CREATE MEMORY STORE Nadřazené schéma Vytvořte nové úložiště paměti v rámci schématu.
READ MEMORY STORE Úložiště paměti Přečtěte si metadata úložiště paměti a jeho položky.
WRITE MEMORY STORE Úložiště paměti Vytvořte, aktualizujte a odstraňte položky paměti v úložišti.
MANAGE Úložiště paměti Aktualizujte nebo odstraňte samotné úložiště paměti. Udělte oprávnění jiným uživatelům.
USE SCHEMA Nadřazené schéma Výpis úložišť paměti ve schématu

Implementace krátkodobé paměti

API pro záznamy v paměti podporují pouze dlouhodobou paměť. Chcete-li agentovi poskytnout krátkodobou paměť v rámci relace, použijte jednu z následujících možností:

Limitations

  • Položky paměti poskytují pouze dlouhodobou paměť. Rozdíl mezi krátkodobou a dlouhodobou pamětí najdete v tématu Krátkodobá a dlouhodobá paměť.
  • Úložiště paměti a položky se vytvářejí a spravují pouze prostřednictvím rozhraní REST API katalogu Unity; pro tato rozhraní API neexistuje žádná Python SDK. Pokud chcete použít úložiště paměti z agenta, připojte ho ke konverzaci s klientem kompatibilním s OpenAI. Viz Přidání paměti agentovi pomocí konverzací.

Další kroky