← Agent Memory / agent-memory / api
Workers API
Pomocí Workers API přistupujte k Agent Memory z vašeho Worker. Binding propojuje váš Worker s namespace obsahující profily, což jsou izolovaná úložiště paměti pro vašeho agenta.
Nakonfigurujte binding
Přidejte agent_memory položku do konfigurace Wrangler. Pole binding je název proměnné, kterou používáte v kódu Workeru, a pole namespace je jmenný prostor Agent Memory, ke kterému se má připojit.
{
"$schema": "./node_modules/wrangler/config-schema.json",
"agent_memory": [
{
"binding": "MEMORY",
"namespace": "<NAMESPACE_NAME>"
}
]
}[[agent_memory]]
binding = "MEMORY"
namespace = "<NAMESPACE_NAME>"Chcete-li navázat více jmenných prostorů, přidejte více položek do agent_memory pole.
Vygenerované typy
Spustit npx wrangler types pro vygenerování typu bindingu v worker-configuration.d.ts:
interface Env {
MEMORY: AgentMemoryNamespace;
}Metody jmenného prostoru
K přístupu k paměťovým profilům a jejich správě používejte metody jmenného prostoru na bindingu.
getProfile(profileName)
Získá paměťový profil podle názvu. Pokud profil neexistuje, Agent Memory ho vytvoří.
profileNamestringpovinné: Název profilu, ke kterému se přistupuje. Maximálně 100 znaků.- Vrátí
Promise<AgentMemoryProfile>
První getProfile() volání pro nový profil může trvat déle, protože Agent Memory profil vytváří.
deleteProfile(profileName)
Označí profil a všechny jeho paměťové záznamy a zprávy ke smazání.
profileNamestringpovinné: Název profilu, který se má odstranit. Maximálně 100 znaků.- Vrátí
Promise<void>
Metody pro práci s profily
Metody profilu volejte poté, co profil získáte z bindingu.
type AgentMemoryMemory = {
id: string;
type: "fact" | "event" | "instruction" | "task";
summary: string;
content: string;
sessionId: string | null;
createdAt: Date;
updatedAt: Date;
};ingest(messages, options?)
Zpracuje konverzaci a extrahuje z ní strukturované paměťové záznamy. Agent Memory automaticky rozpoznává fakta, události, pokyny a úkoly, takže nemusíte určovat, co si má zapamatovat.
messagesIterable<AgentMemoryMessage>povinné: Zprávy z konverzace ke zpracování.options.sessionIdstring | nullvolitelné: Identifikátor relace konverzace. Maximálně 64 znaků. Pokud není uveden, Agent Memory jej odvodí z obsahu zprávy.- Vrátí
Promise<void>
type AgentMemoryMessage = {
role: "system" | "user" | "assistant";
content: string; // Max 32 KB
timestamp?: Date;
};ingest() je idempotentní. Opakovaný import stejné konverzace nevytváří duplicitní záznamy paměti.
remember(memory)
Explicitně uloží jeden paměťový záznam. Použijte remember() když vaše aplikace nebo agent již ví, co se má uložit, místo předávání konverzace do ingest() pro extrakci.
memory.contentstringpovinné: Obsah záznamu paměti k uložení. Služba jej automaticky klasifikuje a shrne.memory.sessionIdstring | nullvolitelné: Identifikátor související relace konverzace.- Vrátí
Promise<AgentMemoryMemory>
recall(query, options?)
Prohledá paměťové záznamy uložené v profilu a vrátí syntetizovanou odpověď založenou na uloženém obsahu.
querystringpovinné: Otázka nebo vyhledávací dotaz v přirozeném jazyce. Maximálně 1 KB (1,024 bajtů UTF-8).options.thinkingLevel"low" | "medium" | "high"volitelné (výchozí: "low"): Řídí šířku vyhledávání. Vyšší úrovně prohledávají více kandidátů, ale trvají déle.options.responseLength"short" | "medium" | "long"volitelné (výchozí: "medium"): Řídí podrobnost syntetizované odpovědi.options.referenceDateDate | stringvolitelné: Časová kotva pro dotazy vztažené k datu.- Vrátí
Promise<AgentMemoryRecallResult>
type AgentMemoryRecallResult = {
count: number;
answer: string;
candidates: AgentMemoryScoredCandidate[];
};
type AgentMemoryScoredCandidate = {
id: string;
summary: string;
sessionId: string | null;
score: number;
};Pokud dotazu neodpovídá žádný paměťový záznam, recall() vrátí prázdnou odpověď.
list(options?)
Vypíše paměťové záznamy uložené v profilu. Vrátí stránkovaný a filtrovatelný výpis uložených záznamů. Použijte vrácený cursor (pokud je přítomen) pro načtení další stránky.
options.limitnumbervolitelné (výchozí: 20, max: 500): Maximální počet záznamů paměti k vrácení.options.cursorstringvolitelné: Neprůhledný kurzor z předchozí stránky.options.sessionIdstringvolitelné: Filtr podle přesné shody relace.options.type"fact" | "event" | "instruction" | "task"volitelné: Filtr podle přesné shody typu paměti.- Vrátí
Promise<AgentMemoryListMemoriesResult>
type AgentMemoryMemoryListEntry = Omit<AgentMemoryMemory, "content">;
type AgentMemoryListMemoriesResult = {
memories: AgentMemoryMemoryListEntry[];
cursor?: string;
};Položky výpisu neobsahují content. Použijte get(memoryId) pro načtení celého záznamu paměti.
get(memoryId)
Načte paměťový záznam podle ID.
memoryIdstringpovinné: ID záznamu paměti.- Vrátí
Promise<AgentMemoryMemory>
Vyvolá chybu, pokud paměťový záznam neexistuje.
delete(memoryId)
Smaže paměťový záznam podle ID. Odstraní paměťový záznam i všechny zdrojové zprávy, které jsou s ním propojené. Vrátí smazaný paměťový záznam.
memoryIdstringpovinné: ID záznamu paměti.- Vrátí
Promise<AgentMemoryMemory>
Vyvolá chybu, pokud paměťový záznam neexistuje.
deleteSession(sessionId)
Označí ke smazání všechny paměťové záznamy a zprávy v daném profilu, které jsou opatřeny daným ID relace. Záznamy z jiných relací ve stejném profilu zůstanou nedotčené. Operace je idempotentní: smazání ID relace, ke kterému neexistují žádné záznamy, nemá žádný účinek (no-op).
sessionIdstringpovinné: ID relace, kterou chcete odstranit. Maximálně 64 znaků.- Vrátí
Promise<void>
getSummary(options?)
Vygeneruje strukturovaný souhrn v Markdownu se vším, co je uloženo v paměťovém profilu. Použijte ho ke kontrole toho, co si Agent Memory o daném profilu pamatuje.
options.sessionIdstring | nullvolitelné: ID relace, na kterou se má omezit sekce „Poslední relace“ v souhrnu. Pokud ho vynecháte, Agent Memory použije nejnovější relaci.- Vrátí
Promise<AgentMemoryGetSummaryResponse>
type AgentMemoryGetSummaryResponse = {
summary: string;
};Limity
| Parametr | Limit |
|---|---|
Počet zpráv na ingest() volání |
500 |
| Velikost obsahu zprávy | 32 KB (32,768 bajtů UTF-8) |
| Délka ID relace | 64 znaků |
recall() velikost dotazu |
1 KB (1,024 bajtů UTF-8) |
Viz Limity pro úplný seznam omezení.