← Agent Memory / agent-memory / api
API Workers
Используйте Workers API, чтобы получать доступ к Agent Memory из вашего Worker. Привязка соединяет ваш Worker с пространство имён содержащее профили, которые представляют собой изолированные хранилища памяти для вашего агента.
Настройка привязки
Добавьте agent_memory запись в конфигурацию Wrangler. binding поле задаёт имя переменной, которую вы используете в коде Worker, а namespace поле указывает пространство имён Agent Memory, к которому выполняется привязка.
{
"$schema": "./node_modules/wrangler/config-schema.json",
"agent_memory": [
{
"binding": "MEMORY",
"namespace": "<NAMESPACE_NAME>"
}
]
}[[agent_memory]]
binding = "MEMORY"
namespace = "<NAMESPACE_NAME>"Чтобы привязать несколько пространств имён, добавьте несколько записей в agent_memory массив.
Сгенерированные типы
Запустите npx wrangler types чтобы сгенерировать тип привязки в worker-configuration.d.ts:
interface Env {
MEMORY: AgentMemoryNamespace;
}Методы пространства имён
Используйте методы пространства имён у привязки, чтобы получать доступ к профилям памяти и управлять ими.
getProfile(profileName)
Возвращает профиль памяти по имени. Если профиль не существует, Agent Memory создаёт его.
profileNamestringобязательно: имя профиля для доступа. Максимум 100 символов.- Возвращает
Promise<AgentMemoryProfile>
Первые getProfile() вызов для нового профиля может занять больше времени, пока Agent Memory создаёт профиль.
deleteProfile(profileName)
Помечает профиль и все связанные с ним воспоминания и сообщения для удаления.
profileNamestringобязательно: имя профиля для удаления. Максимум 100 символов.- Возвращает
Promise<void>
Методы профиля
Вызывайте методы профиля после того, как получите его через привязку.
type AgentMemoryMemory = {
id: string;
type: "fact" | "event" | "instruction" | "task";
summary: string;
content: string;
sessionId: string | null;
createdAt: Date;
updatedAt: Date;
};ingest(messages, options?)
Обрабатывает разговор и извлекает из него структурированные воспоминания. Agent Memory автоматически определяет факты, события, инструкции и задачи, поэтому вам не нужно указывать, что именно запоминать.
messagesIterable<AgentMemoryMessage>обязательно: сообщения разговора для обработки.options.sessionIdstring | nullнеобязательно: идентификатор сессии разговора. Максимум 64 символа. Если не указан, Agent Memory формирует его на основе содержимого сообщения.- Возвращает
Promise<void>
type AgentMemoryMessage = {
role: "system" | "user" | "assistant";
content: string; // Max 32 KB
timestamp?: Date;
};ingest() идемпотентен. Повторная загрузка того же разговора не создаёт дублирующиеся записи памяти.
remember(memory)
Явно сохраняет одно воспоминание. Используйте remember() когда ваше приложение или агент уже знает, что нужно сохранить, вместо передачи разговора в ingest() для извлечения.
memory.contentstringобязательно: содержимое записи памяти для сохранения. Сервис автоматически классифицирует его и формирует краткое описание.memory.sessionIdstring | nullнеобязательно: идентификатор связанной сессии разговора.- Возвращает
Promise<AgentMemoryMemory>
recall(query, options?)
Выполняет поиск по сохранённым воспоминаниям в профиле и возвращает обобщённый ответ, основанный на сохранённом содержимом.
querystringобязательно: вопрос или поисковый запрос на естественном языке. Максимум 1 КБ (1,024 байта UTF-8).options.thinkingLevel"low" | "medium" | "high"необязательно (по умолчанию: "low"): управляет широтой поиска. Более высокие уровни просматривают больше кандидатов, но работают дольше.options.responseLength"short" | "medium" | "long"необязательно (по умолчанию: "medium"): управляет подробностью сформированного ответа.options.referenceDateDate | stringнеобязательно: опорная точка по времени для запросов, зависящих от даты.- Возвращает
Promise<AgentMemoryRecallResult>
type AgentMemoryRecallResult = {
count: number;
answer: string;
candidates: AgentMemoryScoredCandidate[];
};
type AgentMemoryScoredCandidate = {
id: string;
summary: string;
sessionId: string | null;
score: number;
};Если ни одна запись не соответствует запросу, recall() возвращает пустой ответ.
list(options?)
Возвращает список воспоминаний, сохранённых в профиле. Предоставляет постраничное представление сохранённых воспоминаний с возможностью фильтрации. Используйте возвращённый cursor (если присутствует) для получения следующей страницы.
options.limitnumberнеобязательно (по умолчанию: 20, максимум: 500): максимальное количество записей памяти для возврата.options.cursorstringнеобязательно: непрозрачный курсор с предыдущей страницы.options.sessionIdstringнеобязательно: фильтр по точному совпадению сессии.options.type"fact" | "event" | "instruction" | "task"необязательно: фильтр по точному совпадению типа записи памяти.- Возвращает
Promise<AgentMemoryListMemoriesResult>
type AgentMemoryMemoryListEntry = Omit<AgentMemoryMemory, "content">;
type AgentMemoryListMemoriesResult = {
memories: AgentMemoryMemoryListEntry[];
cursor?: string;
};Записи списка не включают content. Используйте get(memoryId) чтобы получить полную запись памяти.
get(memoryId)
Возвращает воспоминание по идентификатору.
memoryIdstringобязательно: ID записи памяти.- Возвращает
Promise<AgentMemoryMemory>
Выбрасывает ошибку, если воспоминание не существует.
delete(memoryId)
Удаляет запись по идентификатору. Удаляет саму запись и все связанные с ней исходные сообщения. Возвращает удалённую запись.
memoryIdstringобязательно: ID записи памяти.- Возвращает
Promise<AgentMemoryMemory>
Выбрасывает ошибку, если воспоминание не существует.
deleteSession(sessionId)
Помечает для удаления все воспоминания и сообщения в профиле, помеченные указанным идентификатором сессии. Записи других сессий в том же профиле не затрагиваются. Операция идемпотентна: удаление идентификатора сессии, для которого нет записей, ничего не делает.
sessionIdstringобязательно: ID сессии для удаления. Максимум 64 символа.- Возвращает
Promise<void>
getSummary(options?)
Формирует структурированную сводку в формате Markdown обо всём, что хранится в профиле памяти. Используйте её, чтобы посмотреть, что Agent Memory помнит о профиле.
options.sessionIdstring | nullнеобязательно: ID сессии, определяющий раздел "Last Session" в сводке. Если не указан, Agent Memory использует последнюю сессию.- Возвращает
Promise<AgentMemoryGetSummaryResponse>
type AgentMemoryGetSummaryResponse = {
summary: string;
};Лимиты
| Параметр | Лимит |
|---|---|
Сообщений на ingest() вызов |
500 |
| Размер содержимого сообщения | 32 КБ (32,768 байта UTF-8) |
| Длина идентификатора сессии | 64 символа |
recall() размер запроса |
1 КБ (1,024 байта UTF-8) |
См. Лимиты для полного списка ограничений.