INTEGRITY Документация

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:

worker-configuration.d.ts
interface Env {
	MEMORY: AgentMemoryNamespace;
}

Методы пространства имён

Используйте методы пространства имён у привязки, чтобы получать доступ к профилям памяти и управлять ими.

getProfile(profileName)

Возвращает профиль памяти по имени. Если профиль не существует, Agent Memory создаёт его.

Первые getProfile() вызов для нового профиля может занять больше времени, пока Agent Memory создаёт профиль.

deleteProfile(profileName)

Помечает профиль и все связанные с ним воспоминания и сообщения для удаления.

Методы профиля

Вызывайте методы профиля после того, как получите его через привязку.

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 автоматически определяет факты, события, инструкции и задачи, поэтому вам не нужно указывать, что именно запоминать.

type AgentMemoryMessage = {
	role: "system" | "user" | "assistant";
	content: string; // Max 32 KB
	timestamp?: Date;
};

ingest() идемпотентен. Повторная загрузка того же разговора не создаёт дублирующиеся записи памяти.

remember(memory)

Явно сохраняет одно воспоминание. Используйте remember() когда ваше приложение или агент уже знает, что нужно сохранить, вместо передачи разговора в ingest() для извлечения.

recall(query, options?)

Выполняет поиск по сохранённым воспоминаниям в профиле и возвращает обобщённый ответ, основанный на сохранённом содержимом.

type AgentMemoryRecallResult = {
	count: number;
	answer: string;
	candidates: AgentMemoryScoredCandidate[];
};

type AgentMemoryScoredCandidate = {
	id: string;
	summary: string;
	sessionId: string | null;
	score: number;
};

Если ни одна запись не соответствует запросу, recall() возвращает пустой ответ.

list(options?)

Возвращает список воспоминаний, сохранённых в профиле. Предоставляет постраничное представление сохранённых воспоминаний с возможностью фильтрации. Используйте возвращённый cursor (если присутствует) для получения следующей страницы.

type AgentMemoryMemoryListEntry = Omit<AgentMemoryMemory, "content">;

type AgentMemoryListMemoriesResult = {
	memories: AgentMemoryMemoryListEntry[];
	cursor?: string;
};

Записи списка не включают content. Используйте get(memoryId) чтобы получить полную запись памяти.

get(memoryId)

Возвращает воспоминание по идентификатору.

Выбрасывает ошибку, если воспоминание не существует.

delete(memoryId)

Удаляет запись по идентификатору. Удаляет саму запись и все связанные с ней исходные сообщения. Возвращает удалённую запись.

Выбрасывает ошибку, если воспоминание не существует.

deleteSession(sessionId)

Помечает для удаления все воспоминания и сообщения в профиле, помеченные указанным идентификатором сессии. Записи других сессий в том же профиле не затрагиваются. Операция идемпотентна: удаление идентификатора сессии, для которого нет записей, ничего не делает.

getSummary(options?)

Формирует структурированную сводку в формате Markdown обо всём, что хранится в профиле памяти. Используйте её, чтобы посмотреть, что Agent Memory помнит о профиле.

type AgentMemoryGetSummaryResponse = {
	summary: string;
};

Лимиты

Параметр Лимит
Сообщений на ingest() вызов 500
Размер содержимого сообщения 32 КБ (32,768 байта UTF-8)
Длина идентификатора сессии 64 символа
recall() размер запроса 1 КБ (1,024 байта UTF-8)

См. Лимиты для полного списка ограничений.

Следующие шаги

HTTP API

Используйте Agent Memory из служб, которые напрямую вызывают Cloudflare API.

Начало работы

Добавьте агенту приём и извлечение долговременной памяти.