agent-memory
Skill0 starsChanged 7 months agoMITView on GitHub
Настройка памяти агентов OpenClaw. 3-слойная система, WAL, compaction, антипаттерны.
- Pipes a download into a shell
Files
Agent Memory — Как настроить память, чтобы агенты не забывали
Всё про память агентов: настройка, структура, антипаттерны. Из реального опыта 11 агентов за 3 месяца.
Когда использовать
- Агент забывает решения между сессиями
- Память переполняется (context overflow)
- Агент повторяет одни и те же ошибки
- Настройка памяти с нуля
- Аудит: работает ли память
Проблема
Без правильной памяти агент = золотая рыбка:
- Забывает через 1 сессию
- Повторяет ошибки
- Не учится на фидбэке
- Каждый раз "с чистого листа"
Три слоя памяти
СЛОЙ 1: MEMORY.md (оперативная)
→ Кто я, ключевые решения, ID, пути
→ Читается КАЖДУЮ сессию
→ Размер: 50-100 строк MAX
СЛОЙ 2: memory/ папка (дневники)
→ memory/2026-03-05.md
→ Что решили, что сделали, что забагалось
→ Ищется через memory_search (embeddings)
СЛОЙ 3: learning/ папка (правила)
→ learning/patterns.md — что работает
→ learning/anti-patterns.md — что НЕ работает
→ learning/corrections.md — исправления от владельца
→ Читается на старте сессииMEMORY.md — Структура
# MEMORY.md — {Имя агента}
## Владелец
- Имя: {имя}
- Telegram ID: {id}
- Timezone: {tz}
## Решения (постоянные)
- [DECISION] {что решено} → {как делать}
## Проекты
| Проект | Путь |
|--------|------|
| {name} | projects/{name}/ |
## Блокеры
- 🔴 {критичное}
- 🟡 {некритичное}Правила:
- НЕ БОЛЬШЕ 100 строк. Длинный MEMORY.md = агент путается
- Только ФАКТЫ. Никаких "мы обсуждали..."
- Обновлять регулярно: убирать устаревшее, добавлять новое
memory/ — Дневные логи
Формат файла: memory/YYYY-MM-DD.md
# Memory — YYYY-MM-DD
## Decisions
- [DECISION] {что решено} → {результат}
## Active Tasks
- [TASK] {задача} | status: done/in-progress/blocked | next: {шаг}
## Corrections
- [CORRECTION] {что пошло не так} | [CORRECT] {как правильно}
## Context for Next Session
- {факт который будущее я ДОЛЖЕН знать}Правила:
- Одна строка = один факт
- Никаких абзацев и рассуждений
- Пишется СРАЗУ когда что-то важное произошло (не в конце дня)
learning/ — Правила
learning/patterns.md (что работает)
## 2026-03-05
- Pipeline selling-meanings → headlines → copywriting даёт стабильное качество
- Threads < 500 символов получают больше охватовlearning/anti-patterns.md (что НЕ работает)
## 2026-03-05
- ❌ Генерация без voice-style → генерик-текст
- ❌ SOUL > 200 строк → агент игнорирует половину
- ❌ Память без compaction: safeguard → потеря контекстаlearning/corrections.md (исправления)
## 2026-03-05
- [RULE] [style] Без эмодзи в заголовках постов
- [RULE] [tone] На "ты", не на "Вы"
- [RULE] [content] Не придумывать факты об экспертеУстановка памяти (VPS / свежая машина)
Шаг 1: QMD (локальный поиск)
QMD — движок который индексирует все файлы памяти и даёт быстрый поиск (BM25 + vectors + rerank).
# Установка
bun install -g https://github.com/tobi/qmd
# Проверка
qmd --helpЕсли bun не установлен:
curl -fsSL https://bun.sh/install | bashШаг 2: Индексация
# Добавить коллекцию агентов
qmd collection add ~/openclaw-factory/agents --name agents --mask "**/*.md"
# Добавить shared знания
qmd collection add ~/openclaw-factory/shared --name shared --mask "**/*.md"
# Первичная индексация
qmd update
# Создать embeddings (может занять 10-30 мин)
qmd embedШаг 3: Embeddings (выбери один вариант)
Вариант A: OpenAI API (рекомендуется для VPS)
- Стоимость: $0.02 за 1M токенов (~бесплатно)
- Стабильный, быстрый, не требует GPU
"memorySearch": {
"provider": "openai",
"model": "text-embedding-3-small"
}Нужен OpenAI API ключ → platform.openai.com/api-keys
Вариант B: Локальные embeddings (без API)
- QMD использует встроенные модели (embeddinggemma-300M)
- Скачиваются автоматически при первом
qmd embed - Медленнее, но бесплатно и без внешних зависимостей
"memory": {
"backend": "qmd"
}Вариант C: Ollama (если уже стоит)
# QMD автоматически использует Ollama если доступен
export OLLAMA_URL=http://localhost:11434
qmd embedШаг 4: Автообновление индекса
Чтобы память не устаревала — cron:
# Добавить в crontab (обновление каждый день в 4:00)
crontab -e
# Вставить:
0 4 * * * cd ~ && qmd update && qmd embed >> /tmp/qmd-cron.log 2>&1Или через OpenClaw cron (если уже работает):
{
"name": "QMD reindex",
"schedule": { "kind": "cron", "expr": "0 4 * * *" },
"payload": { "kind": "systemEvent", "text": "Обнови индекс QMD: qmd update && qmd embed" },
"sessionTarget": "main"
}Шаг 5: Проверка
# Статус
qmd status
# Тест поиска
qmd search "продуктивность"
qmd query "что работает для Threads"Должно показать результаты из файлов памяти.
Настройка в конфиге
Memory Search (семантический поиск)
"memorySearch": {
"enabled": true,
"sources": ["memory"],
"provider": "openai",
"model": "text-embedding-3-small",
"query": {
"maxResults": 8,
"minScore": 0.3
}
}Compaction (ОБЯЗАТЕЛЬНО!)
"compaction": {
"mode": "safeguard",
"memoryFlush": {
"enabled": true,
"softThresholdTokens": 4000,
"prompt": "SESSION NEARING COMPACTION. Save critical context NOW..."
}
}БЕЗ compaction: safeguard:
- Контекст переполняется → агент крашится
- Память не сохраняется → всё потеряно
- ЭТО САМАЯ ЧАСТАЯ ОШИБКА
Антипаттерны (из реального опыта)
❌ "MEMORY.md на 500 строк"
Что было: Агент накопил 500 строк в MEMORY.md. Начал путаться, противоречить себе. Решение: MEMORY.md ≤ 100 строк. Остальное → memory/ папка (дневники).
❌ "Память без embeddings"
Что было: memory/ папка растёт, но агент не может найти нужное. Решение: memorySearch: enabled → семантический поиск по всей memory/ папке.
❌ "Compaction: off"
Что было: Контекст достиг 210k/200k токенов → агент перестал отвечать. Решение: compaction: "safeguard" + memoryFlush → автоматическое сохранение и сжатие.
❌ "Embeddings на стороннем API"
Что было: Voyage AI начал блокировать datacenter IP → память перестала работать. Решение: OpenAI text-embedding-3-small ($0.02/1M токенов) — стабильный, дешёвый.
❌ "Нет learning/ папки"
Что было: Агент повторял одну и ту же ошибку каждую сессию. Фидбэк "не так!" давался 5 раз. Решение: learning/anti-patterns.md → агент читает на старте → не повторяет.
❌ "Memory без структуры"
Что было: Агент писал в память свободным текстом. Через неделю — каша. Решение: Жёсткий формат: [DECISION], [TASK], [CORRECTION]. Одна строка = один факт.
❌ "Забыл сохранить перед compaction"
Что было: Контекст сжался → критичные решения потеряны навсегда. Решение: memoryFlush в compaction → агент СНАЧАЛА сохраняет, ПОТОМ сжимает.
WAL Protocol — Записывай ДО ответа
Идея из Proactive Agent (halthelobster). Адаптирована для контент-фабрики.
Проблема: Агент получает важную инфу ("используй синий, не красный"), отвечает "понял!" — и забывает. Потому что записал ПОСЛЕ или не записал вообще.
Решение: Write-Ahead Logging (WAL)
Триггеры — СКАНИРУЙ КАЖДОЕ СООБЩЕНИЕ:
| Триггер | Пример |
| ✏️ Коррекция | "Нет, не так", "На самом деле...", "Я имел в виду..." |
| 📋 Решение | "Давай сделаем так", "Используем X", "Отменяем Y" |
| 🎨 Предпочтение | "Мне нравится/не нравится", "Всегда делай так" |
| 📍 Имя/название | Люди, компании, проекты, продукты |
| 🔢 Конкретика | Числа, даты, ID, URL, цены |
Протокол:
1. СТОП — не начинай отвечать
2. ЗАПИШИ — в memory/YYYY-MM-DD.md или learning/corrections.md
3. ПОТОМ — отвечай человекуНеправильно: "Понял, синий!" (кажется очевидным — зачем записывать?)
Правильно: Записать [DECISION] Тема: синий (не красный) → потом ответить
Почему работает:
Триггер — ВХОДЯЩЕЕ сообщение, не твоя память. Не нужно "вспоминать что надо записать" — правило срабатывает автоматически на каждую коррекцию/решение.
Working Buffer — Выживание при compaction
Проблема: Между memory flush (85% контекста) и compaction — "зона смерти". Всё что сказано в этом окне может потеряться.
Решение: Файл memory/working-buffer.md — лог КАЖДОГО обмена в зоне смерти.
Как работает:
1. Контекст > 60% → ОЧИСТИТЬ старый буфер, начать новый
2. Каждое сообщение после 60% → записать:
- Что сказал человек (кратко)
- Что ответил агент (1-2 строки)
- Ключевые решения/факты
3. После compaction → ПЕРВЫМ ДЕЛОМ прочитать буфер
4. Извлечь важное → перенести в memory/YYYY-MM-DD.mdФормат буфера:
# Working Buffer
**Status:** ACTIVE
**Started:** 2026-03-05 14:00
---
## 14:05 Human
Давай используем Exa вместо Tavily
## 14:05 Agent
Подтвердил. Exa лучше по бенчмаркам (81% vs 71%).
→ [DECISION] Search API: Exa (не Tavily)
## 14:12 Human
Промпт для brain/ структуры — передай в топик скилловПосле compaction:
1. read memory/working-buffer.md → что было в зоне смерти
2. read MEMORY.md → кто я
3. read memory/YYYY-MM-DD.md → сегодняшние решения
4. memory_search по теме → релевантный контекст
5. НЕ спрашивай "о чём мы говорили?" — буфер это знаетReverse Prompting — Агент предлагает сам
Проблема: Агент ждёт задачу. Человек не знает что попросить. Время теряется.
Решение: После выполнения задачи агент предлагает ОДНУ конкретную идею.
Когда использовать:
- Задача завершена, есть свободный момент
- Агент видит паттерн/проблему которую человек мог не заметить
- При heartbeat (если не тихие часы)
Формат:
💡 Заметил: [наблюдение]
Предлагаю: [конкретное действие]
Нужно: [что от тебя] / Могу самПравила:
- ОДНА идея, не три и не пять
- Конкретная, не абстрактная ("обновить voice-style.md" вместо "улучшить контент")
- Не после 22:00
- Не когда человек занят другим
- Если отвергнуто — записать в learning/ и НЕ предлагать похожее
Startup Protocol (каждая сессия)
Каждый агент при старте ОБЯЗАН:
1. read MEMORY.md → кто я, ключевые решения
2. read learning/anti-patterns.md → чего НЕ делать
3. read learning/corrections.md → правки владельца
4. memory_search по теме первого сообщения → релевантный контекстБез этого = сессия без памяти = золотая рыбка.
Аудит памяти (чеклист)
| # | Проверка | ✅/❌ |
| 1 | MEMORY.md существует и ≤ 100 строк | |
| 2 | memory/ папка существует | |
| 3 | Дневные логи пишутся (memory/YYYY-MM-DD.md) | |
| 4 | learning/ папка существует | |
| 5 | anti-patterns.md заполняется при ошибках | |
| 6 | corrections.md заполняется при фидбэке | |
| 7 | compaction: "safeguard" включён | |
| 8 | memoryFlush включён | |
| 9 | memorySearch включён (embeddings) | |
| 10 | Startup protocol прописан в SOUL.md | |
| 11 | WAL: коррекции записываются ДО ответа | |
| 12 | Working buffer активируется при >60% контекста | |
| 13 | После compaction — чтение буфера первым делом |
Если хоть один пункт ❌ — память не работает полноценно.
Other versions36 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 36
- tigerless-labs/agent-memory★ 4.7ksame name
- databricks/app-templates★ 217same name
- OpenHands/extensions★ 167same name
- JKHeadley/instar★ 85same name
- nimadorostkar/Claude-Skills-collection★ 29same name
- VoDaiLocz/kilo-kit-mcp★ 26same name
- jayzeng/agentmemory★ 24same name
- komluk/scaffolding★ 15same name
- xChuCx/agent-memory★ 11same name
- dzianisv/skills★ 4same name
26 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
Used alongsideProjects with it also use observability, data-analysis and 9 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
OpenAISkillobservability
Vercel Observability expert guidance — Drains (logs, traces, speed insights, web analytics), Web Analytics, Speed Insights, runtime logs, custom events, OpenTelemetry integration, and monitoring dashboards. Use when instrumenting, debugging, or optimizing application performance and user experience on Vercel.
Also in 4 projects that use this
shanggqmSkilldata-analysis
数据分析技能,提供结构化的数据查询、统计分析和报告生成工作流。当用户需要查询数据库、进行数据统计分析、生成分析报告时使用。按规范输出原始数据、计算结果、Markdown报告和HTML可视化报告。
Also in 3 projects that use this
Microsoft AzureSkillskill-authoring
Write Agent Skills that comply with the agentskills.io specification. WHEN: "create a skill", "new skill", "write a skill", "skill template", "skill structure", "review skill", "skill PR", "skill compliance", "SKILL.md format", "skill frontmatter", "skill best practices". DO NOT USE FOR: general documentation. INVOKES: vally CLI.
Also in 3 projects that use this
JetBrainsSkillwebapp-testing
Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.
Also in 4 projects that use this
MicrosoftSkillapi-design
Guide for designing and documenting RESTful APIs. Use when asked to design an API, create endpoints, or document an API.
Also in 3 projects that use this
AnthropicSkillpdf
Comprehensive PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms. When Claude needs to fill in a PDF form or programmatically process, generate, or analyze PDF documents at scale.
Also in 5 projects that use this
In this repository35 other files it gives its agents.
- agent-architectSkill
- audience-lensSkill
- carouselSkill
- constructor-opsSkill
- content-repurposerSkill
- copywritingSkill
- customer-researchSkill
- editingSkill
- headlinesSkill
- heygenSkill
- learning-processorSkill
- memory-systemSkill
- nano-banana-pro-promptsSkill
- nano-bananaSkill
- openclaw-opsSkill
- personal-unpackingSkill
- prompt-engineerSkill
- reelsSkill
- selling-meaningsSkill
- seo-blog-writerSkill
- shared-learningsSkill
- skill-creatorSkill
- skill-securitySkill
- soul-masterySkill
- storytellingSkill
- swipefileSkill
- telegram-adminSkill
- telegramSkill
- text-postsSkill
- threadsSkill
- timelapse-creatorSkill
- tone-of-voiceSkill
- veo-videoSkill
- video-editorSkill
- youtubeSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

