Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Important
Эта функция доступна в бета-версии.
Конвейер памяти формирует долгосрочную память на основе прошлых разговоров вашего агента. Он считывает историю разговоров из хранилища сессий и выделяет долгосрочные воспоминания, такие как факты, предпочтения и процедуры, и сохраняет их в хранилище памяти. Ваш агент затем вспоминает эти воспоминания в последующих разговорах так же, как вспоминает воспоминания, которые сохранил сам.
Агент, который сохраняет данные памяти во время разговора, записывает их отдельно для каждого разговора, учитывая только контекст этого разговора. В ходе многих разговоров его память собирает пересекающиеся и противоречивые записи, и факты, которые агент не подумал сохранить, не доходят до памяти. Конвейер памяти работает постфактум, имея доступ ко всем разговорам актора и существующей памяти, чтобы он мог выявить то, что агент упустил, и сохранить память консолидированной.
Используйте конвейер в памяти, когда хотите:
- Создавайте долгосрочную память на основе разговоров, не добавляя инструменты для записи памяти вашему агенту.
- Заполнить память данными из истории разговора, которая уже хранится в хранилище сессий.
- Поддерживайте память в упорядоченном состоянии с течением времени, объединяя перекрывающиеся записи и разделяя слишком крупные записи.
Вы можете использовать конвейер памяти отдельно или вместе с инструментами памяти , которые ваш агент вызывает во время разговора.
Note
Запуски конвейера памяти используют цены на бессерверные вычисления общего назначения для задания и цены Foundation Model Serving для вызовов моделей.
Требования
- Хранилище сессий, где хранятся разговоры вашего агента, и хранилище воспоминаний для записи в него воспоминаний.
- Доступ к обоим хранилищам для удостоверения, создающего пайплайн, включая разрешение на создание таблиц в базе данных хранилища в памяти. Конвейерные запуски используют эту учетную запись.
- Разрешение на запрос к модели, используемой конвейером для дистилляции. Без него запуски конвейера завершаются сбоем.
- Чтобы использовать CLI, установите
databricks-agentbricksверсию 0.6.0 и выше. Вы также можете вызывать REST API напрямую из любого языка.
Как работают конвейеры памяти
Конвейер памяти — это ресурс памяти агента, который соединяет одно хранилище сессии с одним хранилищем памяти. Это не связано с пайплайнами Lakeflow. Хранилище сессий может передавать данные в более чем одно хранилище памяти, но каждая пара хранилища сессии и хранилища памяти может иметь только один конвейер обработки.
- Вызовы модели через Unity Gateway: Конвейер вызывает свою модель дистилляции через Unity Gateway.
- Ваш выбор модели: Вы выбираете модель при создании пайплайна и можете изменить её позже. Если ничего не выбрать, конвейер использует стандартную модель.
- Ручные или запланированные запуски в бессерверной среде: Вы сами запускаете задания или настраиваете конвейер на выполнение по расписанию примерно каждые 24 часа. В любом случае каждый запуск выполняется как задача на бессерверных вычислительных ресурсах с использованием учетных данных, создавших конвейер.
Каждый запуск конвейера обрабатывает каждого актора в хранилище сессий отдельно:
- Извлечение: Конвейер читает новые разговоры актёра и использует LLM для извлечения из них устойчивых фактов.
-
Слияние: Конвейер дедуплицирует новые факты и объединяет их в тематические записи памяти под тем же
actor_idв хранилище памяти. - Поддержание: Конвейер реорганизует память актора. Он объединяет перекрывающиеся записи и разделяет записи, которые становятся слишком большими.
Запуски конвейера памяти сохраняют чекпоинт для каждого идентификатора актёра. Запуск обрабатывает все сессии актёра после последнего успешного запуска этого актёра, поэтому первый запуск обрабатывает полную историю актёра. Если запуск завершается сбоем для одного актёра, он продолжается с остальными, а в следующем запуске сбойный актёр повторно выполняется с контрольной точки.
actor_id связывает два магазина. Конвейер обрабатывает только тех актёров, у которых есть сессии в хранилище сессий, и записывает память каждого актора под тем же actor_id, что и сессии актёра. По умолчанию конвейер запускается только тогда, когда вы запускаете выполнение. Вы также можете запускать её по расписанию.
Note
Обслуживание/очистка памяти применяется ко всем записям памяти актёра, включая записи, сохранённые вашим агентом напрямую. Конвейер может переписывать, объединять, разделять или удалять любую запись под actor_id, который он обрабатывает.
Что сохраняет пайплайн
Пайплайн извлекает из разговоров индивидуальные, устойчивые факты. Он помогает поддерживать:
- Факты, которые пользователь явно указывает, и какие предпочтения он выражает, не делая выводов за пределами того, что сказано в разговоре.
- Исправления и явная обратная связь, например, какой источник использовать для показателей выручки.
- Устойчивые доменные знания, такие как авторитетные источники, определения метрик, терминология и командные нормы, а также рабочие процессы и текущие проекты.
Предназначено для пропуска:
- Значения из живых источников, которые меняются со временем, например, текущее количество строк в таблице. Вместо этого он записывает, как найти или вычислить значение.
- Детали, которые агент может найти с помощью своих инструментов, например, схему таблицы.
- Секреты, такие как пароли, API-ключи и токены.
Get started
Эти примеры создают конвейер памяти для сессии и хранилищ памяти агента поддержки, запускают выполнение и проверяют его результат. Укажите магазин по его идентификатору, идентификатору, выбранному при создании магазина, или по имени ресурса, например memory-stores/support-agent-memory. Выбирайте клиента, который подходит вашему проекту.
Агент Брикс
Agent Bricks CLI использует ваш сохранённый профиль CLI Databricks для аутентификации.
Установите CLI Agent Bricks или обновите его до версии 0.6.0 и выше:
pip install --upgrade databricks-agentbricksСоздайте конвейер, который извлекает данные из
support-agent-sessionsхранилища сессии в хранилище памятиsupport-agent-memory.--modelявляется необязательным. Если её опустить, конвейер использует модель по умолчанию:agentbricks memory pipeline create \ --session-store support-agent-sessions \ --memory-store support-agent-memory \ --model system.ai.claude-sonnet-5Команда возвращает имя ресурса конвейера в виде
memory-pipelines/<pipeline-id>.Начните запуск конвейера:
agentbricks memory pipeline run <pipeline-id>Команда возвращает имя ресурса этого запуска в виде
memory-pipelines/<pipeline-id>/runs/<run-id>, а также его состояниеRUNNING.CLI не сообщает результат запуска. Чтобы проверить это, установите для
DATABRICKS_HOSTимя хоста рабочего пространства, сгенерируйте токен OAuth и вызовите REST API: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
CLI вызывает REST API через /api/2.0/agents/memory-pipelines. Вызывайте это напрямую из любого языка программирования.
Генерируйте токен OAuth с помощью CLI Databricks:
databricks auth login --host ${DATABRICKS_HOST} export DATABRICKS_TOKEN=$(databricks auth token | jq -r .access_token)Создайте пайплайн, который дистиллирует воспоминания из
support-agent-sessionsи сохраняет их вsupport-agent-memory.dreamer_policy.modelявляется необязательным. Если её опустить, конвейер использует модель по умолчанию: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"}}'Поле ответа
nameсодержит имя ресурса конвейера в видеmemory-pipelines/<pipeline-id>.Начните запуск конвейера:
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 '{}'Поле ответа
nameсодержит имя ресурса запуска в видеmemory-pipelines/<pipeline-id>/runs/<run-id>.Посмотрите результат запуска:
curl "https://${DATABRICKS_HOST}/api/2.0/agents/memory-pipelines/<pipeline-id>/runs/<run-id>" \ -H "Authorization: Bearer ${DATABRICKS_TOKEN}"
После успешного запуска ваш агент может извлечь новые воспоминания с помощью операций списка и поиска хранилища памяти. См. память агента.
Мониторинг запусков конвейера
Свойство запуска state — одно из следующих:
| State | Meaning |
|---|---|
RUNNING |
Запуск в ожидании или выполняется. |
SUCCEEDED |
Запуск успешно обработал каждого актора. |
FAILED |
Выполнение завершилось ошибкой для одного или нескольких исполнителей. Поле error описывает сбой. |
CANCELLED |
Запуск был отменён до завершения. |
Управляйте дистилляцией с помощью инструкций
Инструкции указывают конвейеру обработки, что оставлять и как это организовать. Конвейер применяет их на каждом этапе. Используйте их для общего руководства, например:
- Темы, на которые стоит сосредоточиться, такие как предпочтения клиентов и детали аккаунта.
- Контент, который можно пропустить, например, разовые шаги по устранению неполадок.
- Пути, в рамках которых упорядочиваются записи.
Без инструкций по верстке конвейер обработки следует расположению существующих записей магазина или формирует тематическую структуру, когда магазин пуст. Он не переименовывает существующие записи в соответствии с новой структурой. Чтобы изменить конкретную запись, отредактируйте её с помощью операции обновления хранилища памяти, а не с помощью инструкций.
Вы можете задавать инструкции при создании конвейера и менять их позже. В следующем запуске используются новые инструкции.
Агент Брикс
Чтобы задать инструкции при создании конвейера, передайте --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/."
Чтобы загрузить более длинные инструкции из файла UTF-8, вместо этого передайте --instructions @<path-to-file>.
Чтобы изменить инструкции существующего конвейера, выполните следующее:
agentbricks memory pipeline update <pipeline-id> \
--instructions "Keep only durable customer preferences."
REST API
В API REST объект конвейера dreamer_policy хранит свои настройки дистилляции: instructions, trigger, и model. Чтобы задать инструкции при создании конвейера, включите их в 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/."}}'
Чтобы изменить инструкции существующего конвейера, обновите 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."}}'
Запускайте пайплайн по расписанию
Запланированный конвейер запускается автоматически примерно каждые 24 часа. Вы можете установить триггер при создании пайплайна или изменить его позже. Планировщик выбирает, когда начнётся первый запланированный запуск. Чтобы сразу суммировать существующие разговоры, начните запуск вручную.
Агент Брикс
Чтобы создать запланированный конвейер, передайте --trigger scheduled. Значение по умолчанию :--trigger manual
agentbricks memory pipeline create \
--session-store support-agent-sessions \
--memory-store support-agent-memory \
--trigger scheduled
Чтобы изменить триггер существующего конвейера, выполните следующее:
agentbricks memory pipeline update <pipeline-id> --trigger scheduled
Если у вас есть запланированный конвейер, вы можете его приостановить:
agentbricks memory pipeline pause <pipeline-id>
Чтобы перезапустить запланированные запуски, возобновите их:
agentbricks memory pipeline resume <pipeline-id>
REST API
Для создания запланированного конвейера установите dreamer_policy.trigger на 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"}}'
Чтобы изменить триггер существующего пайплайна, измените значение dreamer_policy.trigger на SCHEDULED или 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"}}'
Вы также можете начать запуск запланированного пайплайна вручную, если в данный момент не выполняется другой запуск.
Управление конвейерами
Следующие команды позволяют перечислять, проверять, обновлять и удалять конвейеры. Каждая команда CLI принимает либо идентификатор конвейера, либо полное memory-pipelines/<pipeline-id> имя ресурса.
| Задача | Агент Брик CLI | REST API |
|---|---|---|
| Список конвейеров | agentbricks memory pipeline list |
GET /api/2.0/agents/memory-pipelines |
| Создайте пайплайн | agentbricks memory pipeline get <pipeline-id> |
GET /api/2.0/agents/memory-pipelines/<pipeline-id> |
| Обновление конвейера |
agentbricks memory pipeline update <pipeline-id> с --display-name, --model, --trigger, или --instructions |
PATCH /api/2.0/agents/memory-pipelines/<pipeline-id> с update_maskdisplay_name, dreamer_policy.model, dreamer_policy.trigger или dreamer_policy.instructions |
| Удаление конвейера | agentbricks memory pipeline delete <pipeline-id> |
DELETE /api/2.0/agents/memory-pipelines/<pipeline-id> |
Если вы не устанавливаете отображаемое имя, конвейер получает имя на основе имён сессионного хранилища и хранилища памяти. Чтобы вернуть конвейер к стандартной модели, установите для его модели пустое значение, например --model "". Изменения моделей и инструкций применяются к следующему запуску.
Удаление конвейера удаляет его связанное задание и останавливает будущие запуски. Запуск, который уже выполняется, продолжается до завершения. Записи памяти, которые конвейер уже записал, остаются в хранилище памяти.
Limitations
- Хранилище сессий и хранилище памяти фиксируются при создании конвейера. Чтобы изменить любой из них, удалите пайплайн и создайте новый. Новый конвейер не использует контрольные точки старого конвейера, поэтому его первый запуск обрабатывает полную историю каждого актора, даже для одной и той же пары хранилищ.
- Если конвейер уже соединяет то же хранилище сессий и хранилище памяти, создание нового завершается ошибкой
ALREADY_EXISTS. - В каждый момент времени в пайплайне может выполняться только один запуск. Запуск, пока выполняется другой запуск, завершается ошибкой
ABORTED. - Запланированные пайплайны выполняются примерно каждые 24 часа. Нельзя установить другой интервал или расписание cron.
- Конвейер обрабатывает только тех акторов, у которых есть сессии в хранилище сессий. Записи памяти актёров без сессий остаются без изменений.
- Если в хранилище сессий более 1 200 акторов с UUID actor ID, выполнение завершается ошибкой. Лимит — 48 KiB сериализированных идентификаторов акторов, поэтому более короткие идентификаторы позволяют увеличить количество актёров.