Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Important
Ta funkcja jest dostępna w wersji beta.
Potok pamięci buduje pamięć długoterminową na podstawie wcześniejszych rozmów twojego agenta. Odczytuje historię rozmów z repozytorium sesji i wyodrębnia długotrwałe wspomnienia, takie jak fakty, preferencje i procedury, a następnie zapisuje je w repozytorium pamięci. Twój agent następnie przypomina sobie te wspomnienia w późniejszych rozmowach tak samo, jak przypomina sobie te, które sam sobie zapisał.
Agent, który zapisuje wspomnienia podczas rozmowy, zapisuje je po jednej rozmowie na raz, korzystając wyłącznie z kontekstu tej rozmowy. W trakcie wielu rozmów jego pamięć zbiera nakładające się i sprzeczne wpisy, a fakty, których agent nie pomyślał zapisać, nie docierają do pamięci. Potok pamięci działa po fakcie, mając wgląd we wszystkie rozmowy podmiotu i istniejącą pamięć, dzięki czemu może uchwycić to, co agent przeoczył, i utrzymywać konsolidację pamięci.
Używaj potoku w pamięci, gdy chcesz:
- Buduj pamięć długoterminową na podstawie rozmów, nie dodając narzędzi do zapisywania pamięci do swojego agenta.
- Uzupełnij kontekst na podstawie historii rozmów, który magazyn sesji już przechowuje.
- Utrzymuj pamięć uporządkowaną z upływem czasu, łącząc nakładające się wpisy i dzieląc te za duże.
Możesz używać potoku pamięci samodzielnie lub razem z narzędziami do zarządzania pamięcią, które agent wywołuje podczas rozmowy.
Note
Uruchomienia potoku pamięci wykorzystują cennik ogólnych zasobów obliczeniowych serverless dla zadania oraz ceny Foundation Model Serving dla wywołań modelu.
Requirements
- Magazyn sesji, który przechowuje rozmowy agenta, oraz magazyn pamięci do zapisywania pamięci.
- Dostęp do obu magazynów dla tożsamości tworzącej potok, w tym uprawnienia do tworzenia tabel w bazie danych magazynu w pamięci. Uruchomienia potoku używają tej tożsamości.
- Uprawnienie do odpytywania modelu, którego potok używa do destylacji. Bez niego uruchomienia potoku zawodzą.
- Aby korzystać z CLI, zainstaluj
databricks-agentbrickswersję 0.6.0 i nowszą. Możesz też wywołać REST API bezpośrednio w dowolnym języku programowania.
Jak działają potoki pamięci
potok pamięci to zasób pamięci agenta, który łączy jeden magazyn sesji z jednym magazynem pamięci. Nie jest to powiązane z potokami Lakeflow. Magazyn sesji może zasilać więcej niż jeden magazyn pamięci, ale każda para magazynu sesji i magazynu pamięci może mieć tylko jeden potok.
- Wywołania modelu przez Unity Gateway: Potok wywołuje swój model destylacji przez Unity Gateway.
- Twój wybór modelu: Model wybierasz podczas tworzenia pipeline'u i możesz go później zmienić. Jeśli nie wybierzesz żadnego, pipeline korzysta z domyślnego modelu.
- Ręczne lub zaplanowane uruchomienia w środowisku bezserwerowym: Samodzielnie uruchamiasz przebiegi lub konfigurujesz pipeline tak, by działał według harmonogramu co około 24 godziny. W każdym przypadku każde uruchomienie wykonuje się jako zadanie na bezserwerowych zasobach obliczeniowych, wykorzystując tożsamość, która stworzyła potok.
Każde uruchomienie potoku przetwarza każdego aktora w magazynie sesji osobno:
- Wyodrębnianie: Pipeline odczytuje nowe rozmowy aktora i wykorzystuje LLM do wydobycia z nich trwałych faktów.
-
Scalanie: Potok deduplikuje nowe fakty i łączy je z wpisami pamięci tematycznej pod tym samym
actor_idw magazynie pamięci. - Konserwacja: Potok przetwarzania reorganizuje pamięć aktora. Łączy wpisy, które się nakładają, i dzieli wpisy, które stają się zbyt duże.
Uruchomienia potoku Memory utrzymują punkt kontrolny dla każdego identyfikatora aktora. Run przetwarza wszystkie sesje aktora od ostatniego udanego uruchomienia, więc pierwszy run przetwarza pełną historię aktora. Jeśli przebieg nie uda się dla jednego aktora, jest kontynuowany dla pozostałych aktorów, a następny przebieg ponawia nieudanego aktora od punktu kontrolnego.
actor_id łączy oba sklepy. Potok przetwarza tylko aktorów, którzy mają sesje w magazynie sesji, i zapisuje wspomnienia każdego aktora pod tą samą actor_id, z której korzystają sesje aktora. Domyślnie pipeline uruchamia się tylko wtedy, gdy rozpoczęjesz uruchomienie. Możesz też uruchomić go według harmonogramu.
Note
Utrzymanie dotyczy wszystkich wpisów pamięci aktora, w tym wpisów zapisanych bezpośrednio przez agenta. Potok może przepisywać, scalać, dzielić lub usuwać dowolny wpis pod elementem actor_id, które przetwarza.
Co przechowuje pipeline
Potok przetwarzania wyodrębnia indywidualne, trwałe fakty z rozmów. Jest zaprojektowany tak, by utrzymać:
- Fakty, które użytkownik wyraźnie stwierdza, i preferencje, które wyraża, bez wyciągania wniosków poza to, co wynika z rozmowy.
- Poprawki i jednoznaczne informacje zwrotne, takie jak to, którego źródła użyć dla danych o przychodach.
- Trwała wiedza dziedzinowa, taka jak autorytatywne źródła, definicje metryk, terminologia i konwencje zespołowe, a także procesy pracy i trwające projekty.
Jest zaprojektowany tak, by pomijać:
- Wartości z żywych źródeł, które zmieniają się w czasie, takie jak aktualna liczba wierszy tabeli. Zamiast tego zapisuje, jak znaleźć lub obliczyć tę wartość.
- Szczegóły, które agent może sprawdzić za pomocą swoich narzędzi, takich jak schemat tabeli.
- Sekrety, takie jak hasła, klucze API i tokeny.
Wprowadzenie
Te przykłady tworzą potok pamięci dla sesji agenta wsparcia i magazynów pamięci, uruchamiają przebieg i sprawdzają jego wynik. Zidentyfikuj każdy sklep po jego ID, identyfikatorze wybranym podczas tworzenia sklepu lub po nazwie zasobu, takiej jak memory-stores/support-agent-memory. Wybierz klienta, który pasuje do Twojego projektu.
Agent Bricks
Agent Bricks CLI używa zapisanego profilu Databricks CLI do uwierzytelniania.
Zainstaluj CLI Agent Bricks lub zaktualizuj go do wersji 0.6.0 i nowszych:
pip install --upgrade databricks-agentbricksStwórz potok, który destyluje magazyn sesji
support-agent-sessionsdo magazynu pamięcisupport-agent-memory. Element--modeljest opcjonalny. Jeśli go pominiesz, pipeline używa domyślnego modelu:agentbricks memory pipeline create \ --session-store support-agent-sessions \ --memory-store support-agent-memory \ --model system.ai.claude-sonnet-5Polecenie zwraca nazwę zasobu potoku w postaci
memory-pipelines/<pipeline-id>.Uruchom potok:
agentbricks memory pipeline run <pipeline-id>Polecenie zwraca nazwę zasobu przebiegu w formie
memory-pipelines/<pipeline-id>/runs/<run-id>oraz jego stanRUNNING.CLI nie podaje wyniku uruchomienia. Aby to sprawdzić, ustaw
DATABRICKS_HOSTna nazwę hosta obszaru roboczego, wygeneruj token OAuth i wywołaj interfejs API REST: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}"
interfejs API REST
CLI wywołuje interfejs API REST pod /api/2.0/agents/memory-pipelines. Wywołaj to bezpośrednio z dowolnego języka.
Wygeneruj token OAuth za pomocą Databricks CLI:
databricks auth login --host ${DATABRICKS_HOST} export DATABRICKS_TOKEN=$(databricks auth token | jq -r .access_token)Stwórz potok, który destyluje wspomnienia z
support-agent-sessionsi zapisuje je dosupport-agent-memory. Elementdreamer_policy.modeljest opcjonalny. Jeśli go pominiesz, pipeline używa domyślnego modelu: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"}}'Pole
nameodpowiedzi zawiera nazwę zasobu potoku w postacimemory-pipelines/<pipeline-id>.Uruchom potok:
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 '{}'Pole
nameodpowiedzi zawiera nazwę zasobu przebiegu w postacimemory-pipelines/<pipeline-id>/runs/<run-id>.Sprawdź wynik biegu:
curl "https://${DATABRICKS_HOST}/api/2.0/agents/memory-pipelines/<pipeline-id>/runs/<run-id>" \ -H "Authorization: Bearer ${DATABRICKS_TOKEN}"
Po udanym uruchomieniu agent może przywołać nowe wpisy pamięci za pomocą operacji listowania i wyszukiwania w magazynie pamięci. Zobacz pamięć agenta.
Monitorowanie przebiegów potoków
state uruchomienia to jedna z następujących rzeczy:
| State | Meaning |
|---|---|
RUNNING |
Uruchomienie oczekuje lub jest w trakcie. |
SUCCEEDED |
Uruchomienie przetworzyło każdego aktora pomyślnie. |
FAILED |
Uruchomienie zakończyło się z błędem dla jednego lub większej liczby aktorów. Pole error opisuje awarię. |
CANCELLED |
Uruchomienie zostało anulowane przed zakończeniem. |
Sterowanie destylacją z instrukcjami
Instrukcje określają, co potok ma zachować i jak to zorganizować. Pipeline stosuje je na każdym etapie. Używaj ich do ogólnych wskazówek, takich jak:
- Tematy, na których warto się skupić, takie jak preferencje klientów i szczegóły konta.
- Treść do pominięcia, na przykład jednorazowe kroki rozwiązywania problemów.
- Ścieżki, pod którymi organizowane są wpisy.
Bez instrukcji dotyczących układu pipeline podąża za układem istniejących wpisów sklepu lub tworzy układ oparty na tematach, gdy sklep jest pusty. Nie zmienia nazw istniejących wpisów, aby pasowały do nowego układu. Aby zmienić konkretny wpis, edytuj go za pomocą operacji aktualizacji store pamięci zamiast używać instrukcji.
Możesz ustawić instrukcje podczas tworzenia pipeline'u i później je zmieniać. Następne uruchomienie wykorzystuje nowe instrukcje.
Agent Bricks
Aby ustawić instrukcje podczas tworzenia pipeline, przekaż --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/."
Aby załadować dłuższe instrukcje z pliku UTF-8, zamiast tego podaj --instructions @<path-to-file>.
Aby zmienić instrukcje istniejącego potoku, wykonaj następujące czynności:
agentbricks memory pipeline update <pipeline-id> \
--instructions "Keep only durable customer preferences."
interfejs API REST
W API REST obiekt potoku dreamer_policy zawiera ustawienia destylacji: instructions, trigger, oraz model. Aby ustawić instrukcje podczas tworzenia potoku, uwzględnij je w 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/."}}'
Aby zmienić instrukcje istniejącego potoku przetwarzania, zaktualizuj 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."}}'
Uruchom pipeline według harmonogramu
Zaplanowany pipeline uruchamia się automatycznie mniej więcej co 24 godziny. Możesz ustawić wyzwalacz podczas tworzenia pipeline lub zmienić go później. Harmonogram decyduje, kiedy rozpocznie się pierwsze zaplanowane uruchomienie. Aby od razu destylować istniejące rozmowy, rozpocznij uruchomienie ręcznie.
Agent Bricks
Aby utworzyć zaplanowany potok, przekaż --trigger scheduled. Wartość domyślna to --trigger manual:
agentbricks memory pipeline create \
--session-store support-agent-sessions \
--memory-store support-agent-memory \
--trigger scheduled
Aby zmienić wyzwalacz istniejącego potoku, wykonaj następujące czynności:
agentbricks memory pipeline update <pipeline-id> --trigger scheduled
Jeśli masz zaplanowany pipeline, możesz go wstrzymać:
agentbricks memory pipeline pause <pipeline-id>
Aby wznowić zaplanowane uruchomienia, wznów je:
agentbricks memory pipeline resume <pipeline-id>
interfejs API REST
Aby utworzyć zaplanowany potok, ustaw dreamer_policy.trigger na SCHEDULED:
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"}}'
Aby zmienić wyzwalacz istniejącego potoku, zmień wartość dreamer_policy.trigger na SCHEDULED lub 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"}}'
Możesz też ręcznie rozpocząć uruchomienie zaplanowanego potoku danych, o ile nie trwa żadne inne uruchomienie.
Zarządzanie potokami
Poniższe polecenia wymieniają, kontrolują, aktualizują i usuwają potoki danych. Każde polecenie CLI akceptuje albo identyfikator potoku, albo jego pełną memory-pipelines/<pipeline-id> nazwę zasobu.
| Task | Agent Bricks CLI | interfejs API REST |
|---|---|---|
| Lista potoków | agentbricks memory pipeline list |
GET /api/2.0/agents/memory-pipelines |
| Utwórz pipeline | agentbricks memory pipeline get <pipeline-id> |
GET /api/2.0/agents/memory-pipelines/<pipeline-id> |
| Aktualizować potok danych |
agentbricks memory pipeline update <pipeline-id> z --display-name, --model, --trigger, lub --instructions |
PATCH /api/2.0/agents/memory-pipelines/<pipeline-id> z update_mask równym display_name, dreamer_policy.model, dreamer_policy.trigger lub dreamer_policy.instructions |
| Usuń potok danych | agentbricks memory pipeline delete <pipeline-id> |
DELETE /api/2.0/agents/memory-pipelines/<pipeline-id> |
Jeśli nie ustawisz nazwy wyświetlanej, pipeline otrzymuje ją na podstawie nazw magazynu sesji i pamięci. Aby przełączyć potok z powrotem do modelu domyślnego, zaktualizuj jego model do wartości pustej, takiej jak --model "". Zmiany modelu i polecenia obowiązują przy następnym uruchomieniu.
Usunięcie pipeline'u usuwa jego powiązane zadanie i zatrzymuje kolejne uruchomienia. Uruchomienie, które już trwa, trwa do końca. Wpisy pamięci, które pipeline już zapisał, pozostają w magazynie danych pamięci.
Limitations
- Magazyn sesji i magazyn pamięci są ustalane podczas tworzenia pipeline'u. Aby zmienić którykolwiek z nich, usuń pipeline i stwórz nowy. Nowy potok nie wykorzystuje ponownie punktów kontrolnych starego potoku, więc jego pierwsze uruchomienie przetwarza pełną historię każdego aktora, nawet dla tej samej pary repozytoriów.
- Jeśli potok już łączy ten sam magazyn sesji i magazyn pamięci, utworzenie kolejnego kończy się błędem
ALREADY_EXISTS. - Potok przetwarzania ma jednocześnie jedno uruchomienie w toku. Rozpoczęcie uruchomienia, gdy inne trwa, kończy się błędem
ABORTED. - Zaplanowane potoki uruchamiają się mniej więcej co 24 godziny. Nie możesz ustawić innego interwału ani harmonogramu crona.
- Potok przetwarzania przetwarza tylko aktory, które mają sesje w magazynie sesji. Wpisy pamięci dla aktorów bez sesji pozostają bez zmian.
- Jeśli magazyn sesji zawiera więcej niż około 1 200 aktorów z identyfikatorami aktorów UUID, uruchomienie kończy się niepowodzeniem. Limit wynosi 48 KiB serializowanych identyfikatorów aktora, więc krótsze identyfikatory pozwalają na większą liczbę aktorów.