Як оцінити пам’ять AI-агента: практичний чекліст
Відтворюваний протокол перевірки пам’яті AI-агента: запис, retrieval, часові конфлікти, забування, ізоляція, видалення, task outcome і безпечний rollback.
Зміст статті
- 01Почніть із memory contract, а не з одного benchmark score
- 02Зберіть risk-sliced corpus із позитивними й негативними випадками
- 03Gate 1: перевірте write path і provenance
- 04Gate 2: розділіть retrieval quality і grounded answer
- 05Gate 3: конфлікти, забування та deletion мають власні тести
- 06Gate 4: ізоляція, poisoning і authority перевіряються adversarially
- 07Gate 5: вимірюйте task lift, cost і latency чесним ablation
- 08Release decision: promote, restrict, reject або roll back
Передумови
Почніть із memory contract, а не з одного benchmark score
Пам’ять агента не є однією функцією. Вона вирішує, що записати, як нормалізувати подію, що повернути для нового запиту, як обробити оновлення і коли видалити похідні записи. До тесту зафіксуйте типи пам’яті, дозволені джерела, власника істини, tenant boundary, строки зберігання та задачі, яким recall справді має допомагати. Conversation history, runtime checkpoint, довгострокова memory і domain database оцінюються окремо.
Публічний benchmark корисний як зовнішній fixture, але не доводить готовність вашого workflow. LongMemEval перевіряє extraction, multi-session reasoning, temporal reasoning, knowledge updates та abstention у довгих діалогах; LongMemEval-V2 додає пам’ять про стан середовища, workflows і повторювані failure modes. Власний release gate має також охопити ACL, privacy, deletion, poisoning, side effects і business outcome. Не переносіть чужий score між іншими моделями, judges, corpus versions або retrieval budgets.
- Contract → що можна записати, хто є source of truth і коли запис протухає.
- Fixture → історія подій, запит, дозволені докази й очікувана поведінка.
- Verdict → retrieve, ignore, abstain, ask, update або delete.
- Outcome → чи допомогла пам’ять виконати задачу без порушення authority.
architecture
Карта системи: Як оцінити пам’ять AI-агента: практичний чекліст
timeline
Контрольні точки для практичного застосування
- Contract → що можна записати, хто є source of truth і коли запис протухає.
Контрольна теза з матеріалу статті.
- Fixture → історія подій, запит, дозволені докази й очікувана поведінка.
Контрольна теза з матеріалу статті.
- Verdict → retrieve, ignore, abstain, ask, update або delete.
Контрольна теза з матеріалу статті.
- Outcome → чи допомогла пам’ять виконати задачу без порушення authority.
Контрольна теза з матеріалу статті.
- agent-evaluation
- llm-observability
Зберіть risk-sliced corpus із позитивними й негативними випадками
Побудуйте corpus із реальних, очищених сценаріїв: явне прохання запам’ятати preference, факт із підтвердженим джерелом, повторювана робоча процедура, рішення з датою, correction старого факту та подія, яку зберігати заборонено. Для кожного fixture задайте subject, tenant, event time, valid time, source ID, sensitivity, TTL, expected memory operations і допустимі відповіді. Додайте paraphrase та language variants, бо точний збіг формулювання приховує слабкий retrieval.
Негативні fixtures важливіші за ще десять простих recall-питань: секрет у tool output, prompt injection у документі, непідтверджене припущення моделі, чужий tenant, відкликаний consent, видалений запис, майбутня дата, суперечливі джерела та запит без достатніх доказів. Окремо перевіряйте distractors — правдоподібні, але нерелевантні записи. Corpus версіонується, а production incident після очищення стає regression case.
Gate 1: перевірте write path і provenance
Memory writer оцінюйте до retrieval. Для кожної події перевірте рішення write, reject, merge або quarantine; тип запису; нормалізований subject; source pointer; valid_from і valid_to; confidence як metadata, а не істину; ACL; TTL та версію extractor. Precision запису часто критичніша за coverage: один збережений секрет або шкідлива інструкція може отруїти багато майбутніх сесій.
Тестуйте повторну доставку й зміну порядку подій. Одна подія з однаковим idempotency key не повинна породжувати кілька facts, а пізній correction має створити зрозумілий temporal transition замість безслідного перезапису. Summary та embedding є похідними артефактами: harness повинен уміти простежити їх до джерела, перестворити після зміни policy й позначити stale, якщо canonical record змінився.
Gate 2: розділіть retrieval quality і grounded answer
Записуйте retrieved IDs, ranks, scores, filters і query transformation до того, як модель сформує відповідь. На цьому шарі корисні Recall@k для потрібних доказів, precision або частка distractors, coverage temporal slices та filter violations. Але retrieval metric не є фінальним результатом: потрібний факт може бути в top-k, а модель його проігнорує; неправильний запис може не потрапити в answer випадково.
На answer layer перевіряйте supported claim, правильне поєднання кількох сесій, часову відповідь, застосування найновішого чинного факту і abstention за відсутності доказів. Judge отримує reference evidence та rubric, а не прихований доступ до всієї історії. Детерміновані checks перевіряють IDs, дати, tenant і заборонені claims; model grader калібрується на людській розмітці та не є єдиним release authority.
Gate 3: конфлікти, забування та deletion мають власні тести
Створіть послідовність: користувач задає preference A, згодом замінює його на B, а потім питає про поточне й попереднє значення. Правильна поведінка залежить від запиту: current answer використовує B, historical answer може назвати A з часовою межею, а неоднозначний запит уточнюється. Last-write-wins без event time та provenance не проходить цей gate, як і відповідь, що змішує обидва значення.
Deletion test починається з відомого canary record. Після запиту на видалення перевірте primary store, summaries, vector index, cache, graph relations, export і дозволені backup semantics. Потім повторіть прямий, paraphrased і multi-hop retrieval та переконайтеся, що система не відновила запис із старого summary. Audit evidence може зберігати факт виконання deletion без самого видаленого payload. Зафіксуйте measured propagation time лише для власної системи, не вигадуйте універсальний SLA.
Gate 5: вимірюйте task lift, cost і latency чесним ablation
Порівняйте щонайменше три режими на тих самих fixtures: без довгострокової пам’яті, з oracle evidence і з реальною memory pipeline. Різниця між no-memory та oracle показує можливий task lift, а розрив між pipeline та oracle допомагає локалізувати extraction або retrieval bottleneck. Заморозьте model, prompt, tools, corpus version, top-k, reranker, judge і retry policy; інакше зміна score не належить пам’яті.
Звітуйте task success і critical failures за slices, а не лише середнє. Додайте write latency, retrieval latency, tokens із memory context, storage та indexing cost, stale-read rate, abstention, manual review і cost per verified task. Public benchmark results залишайте атрибутованими до конкретного paper та protocol. Для власної системи публікуйте лише відтворювані runs із manifest; один локальний прогін не стає vendor-independent рейтингом.
Release decision: promote, restrict, reject або roll back
Decision record називає дозволені memory types, tenants, data classes, workflows, model та extractor versions, corpus revision, thresholds, owner і review date. `Promote` стосується конкретного slice; `restrict` може дозволити preference recall, але заборонити procedural memory або sensitive data; `reject` залишає stateless чи session-only baseline. Critical ACL, deletion або unauthorized-action failure не компенсується високим recall average.
Rollout проходить offline replay, shadow write без читання, read-only canary і лише потім bounded use у діях із окремою authorization. Rollback вимикає new writes і reads незалежними switches, повертає known-good extractor/index snapshot, quarantine-ить записи несумісної версії та не видаляє audit trail. Після model, embedding, schema, retention policy або corpus change повторіть critical slices; memory quality є lifecycle, а не одноразовим benchmark.
- Promote → визначений тип пам’яті й workflow пройшли всі critical gates.
- Restrict → звузити data class, TTL, retrieval або action scope.
- Reject → повернути session-only чи stateless baseline.
- Roll back → вимкнути reads/writes, відновити сумісний snapshot і reconcile.
Практичні приклади
Асистент пам’ятає зміну робочого графіка
Fixture спочатку задає графік 09:00–17:00, потім датоване оновлення 10:00–18:00 і distractor з іншого tenant. Harness перевіряє temporal write, current та historical answers, provenance, відсутність leakage і abstention, якщо запит не уточнює часову зону.
Видалення персональної preference
Canary preference записується в primary store, summary та vector index. Після deletion workflow тести повторюють exact, paraphrased і multi-hop queries, перевіряють caches та graph edges і підтверджують лише audit receipt без відновлення payload.
FAQ
Який benchmark підходить для пам’яті AI-агента?
LongMemEval корисний для довгої conversational memory, а LongMemEval-V2 — для досвіду агента в середовищі. Обидва слід доповнювати власними ACL, deletion, poisoning, action і business-outcome fixtures.
Чи достатньо Recall@k для оцінювання memory?
Ні. Він діагностує retrieval, але не вимірює grounded answer, temporal correctness, abstention, isolation, deletion або вплив пам’яті на перевірений результат задачі.
Як зрозуміти, що проблема у retrieval, а не в моделі?
Порівняйте real pipeline з oracle-evidence режимом на тому самому model і prompt, а також окремо збережіть retrieved IDs. Розрив локалізує retrieval, тоді як помилка з oracle вказує на reading або reasoning layer.
Коли треба повторювати memory eval?
Після зміни model, extractor, embedding, index, reranker, schema, retention чи authorization policy, а також після інциденту або появи нового production slice.
Пов’язані матеріали
Як розділити короткостроковий контекст, довгострокову пам’ять, журнал подій і канонічні факти, щоб агент не плутав власні припущення з реальністю.
Оцінювання AI-агентівОцінювання AI-агентів — практичний розбір production-архітектури: вимірювання не лише фінальної відповіді, а всієї траєкторії рішень, дій, витрат і безпечного завершення. Матеріал охоплює контракти, межі повноважень, failure modes, оцінювання та контрольований rollout.
Оцінювання LLM-систем у productionЯк побудувати evaluation set, автоматичні та людські метрики, regression gates і спостережуваність для промптів, RAG та агентів.
Context engineering для AI-агентів: практичний дизайн контекстуЯк проєктувати контекст AI-агента: від system prompt, tools і retrieval до пам’яті, compaction, permissions, evals та керованого rollout без бездумного заповнення context window.
State machines для агентівState machines для агентів — практичний розбір production-архітектури: відокремлення ймовірнісного рішення моделі від детермінованого життєвого циклу виконання. Матеріал охоплює контракти, межі повноважень, failure modes, оцінювання та контрольований rollout.
Guardrails і захист від prompt injectionЧому інструкції не є межею безпеки та як ізолювати недовірені дані, обмежувати інструменти, перевіряти вихід і тестувати прямі та непрямі атаки.
Observability для LLM-системЯкі traces, metrics, logs і evaluation signals потрібні для LLM: prompts, retrieval, tool calls, usage, quality, privacy, cardinality і розслідування інцидентів.
Human-in-the-loop для AIHuman-in-the-loop для AI — практичний розбір production-архітектури: залучення людини в конкретній точці ризику з достатнім контекстом для реального, а не формального контролю. Матеріал охоплює контракти, межі повноважень, failure modes, оцінювання та контрольований rollout.