Руководство по Memory Service
Краткое руководство пользователя по использованию управляемого сервиса памяти агентов.
Для кого это руководство
Memory Service предназначен для трёх ролей:
| Роль | Как использует память |
|---|---|
| Разработчик агентов | Подключает память к агенту через SDK или ноду LangFlow |
| Пользователь агента | Видит, что агент о нём помнит; редактирует и удаляет записи |
| Администратор | Настраивает квоты, ретеншн-политики и контролирует объём |
Что даёт Memory Service
Memory Service запоминает факты о пользователях, сессиях и агентах, чтобы агент мог обращаться к ним в будущем. Агент выполняет поиск релевантных фактов перед ответом и сохраняет новые факты после ответа.
Это не RAG. RAG Service работает с корпусом документов, а Memory Service — с знаниями о пользователях и контексте диалога.
Путь 1: Подключение памяти к агенту (SDK)
Разработчик подключает Memory Service к агенту через Platform SDK.
1. Установить клиент
from platform_memory import MemoryClient
client = MemoryClient(base_url="https://memory.platform.local")2. Добавить память
Отправьте ход диалога — платформа извлечёт атомарные факты, проведёт дедупликацию и проиндексирует их.
result = client.add(
messages=[
{"role": "user", "content": "Отчёты нужны в xlsx"},
{"role": "assistant", "content": "Понял, буду присылать xlsx"}
],
agent_id="procurement-assistant",
run_id="01J9X2K7...",
infer=True
)
# → {"event_id": "01J9X2K8...", "status": "PENDING"}Извлечение выполняется асинхронно. Проверьте статус:
status = client.get_event(result["event_id"])
# → {"status": "SUCCEEDED", "memory_ids": ["..."]}3. Поиск памяти
Перед вызовом LLM агент ищет релевантные факты:
results = client.search(
query="в каком формате присылать отчёт",
filters={"agent_id": "procurement-assistant"},
top_k=20,
token_budget=4000
)
# → {"results": [...], "tokens_returned": 312}Результаты ранжированы по семантике и BM25, уложены в бюджет токенов.
4. Управление записями
# Список всех записей
all_memories = client.get_all(agent_id="procurement-assistant")
# Обновить запись
client.update(memory_id="...", text="Отчёты теперь в PDF")
# Удалить запись
client.delete(memory_id="...")
# История изменений
history = client.history(memory_id="...")5. Рабочая память сессии
Сохраняйте и восстанавливайте состояние сессии:
# Сохранить чекпоинт
client.save_session_state(
session_id="sess-123",
state={"current_step": "review"},
ttl_seconds=86400
)
# Восстановить
state = client.get_session_state(session_id="sess-123")Путь 2: Нода PlatformMemory в Low-code IDE
Low-code разработчик добавляет память в пайплайн одной нодой.
1. Добавить ноду PlatformMemory
В палитре компонентов Low-code IDE выберите ноду PlatformMemory
и перетащите её в схему.
2. Настроить поиск
Подключите ноду перед узлом PlatformLLM. Нода выполнит
search и подставит релевантные факты в контекст LLM.
3. Настроить запись
Подключите ноду после узла PlatformLLM. Нода выполнит
add и сохранит новые факты в память платформы.
Авторизация и скоупы настраиваются внутри ноды — отдельная настройка не требуется.
Путь 3: Прозрачность для пользователя
Пользователь может видеть, что агент о нём помнит, и управлять записями.
1. Открыть экран «Память агента»
В интерфейсе T1GPT откройте экран «Что агент обо мне помнит».
2. Просмотреть записи
Увидите список фактов с датой создания и категорией.
3. Редактировать или удалить
- Нажмите «Удалить» на неверной записи.
- Нажмите «Редактировать» на записи, которую нужно исправить.
Изменения немедленно отражаются в поиске.
Скоупы памяти
Память разграничивается по трём скоупам:
| Скоуп | Описание | Кто задаёт |
|---|---|---|
user_id | Память конкретного пользователя | Из JWT автоматически |
agent_id | Память конкретного агента | Разработчик агента |
run_id | Память конкретного запуска | Разработчик агента |
По умолчанию поиск и запись выполняются в рамках скоупов вызывающего агента и пользователя.
Категории и инструкции извлечения
Администратор рабочей области может задать категории памяти:
preferences— предпочтения пользователя;projects— информация о проектах;constraints— ограничения и запреты.
Также можно задать кастомные инструкции извлечения — что именно запоминать и что запоминать запрещено.
Ограничения
- Запись памяти выполняется асинхронно. После вызова
addфакт становится доступен для поиска через несколько секунд. - Поиск возвращает результаты в пределах заданного бюджета токенов. Если релевантных фактов нет, возвращается пустой список.
- Для приватных рабочих областей действует политика изоляции: агент не может прочитать память другой рабочей области.
- Устаревшие записи (с истёкшей
expiration_date) не возвращаются по умолчанию.
Безопасная работа
- Не передавайте токены и FileRef через сообщения, снимки экрана и журналы.
- Сообщая об ошибке, передавайте безопасный
traceId, время, версию агента и код ошибки, но не исходный токен и не полный текст запроса. - Не включайте персональные данные в поля схемы, если они не проходят через Guardrails.
Перед началом работы ознакомьтесь с известными ограничениями.