agentleFS
Dimks777Dimks777/aiclub/skills/agent-memory/SKILL.md

agent-memory

Skill0 starsChanged 7 months agoMITView on GitHub

Настройка памяти агентов OpenClaw. 3-слойная система, WAL, compaction, антипаттерны.

  • Pipes a download into a shell
Files
SKILL.md

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 по теме первого сообщения → релевантный контекст

Без этого = сессия без памяти = золотая рыбка.

Аудит памяти (чеклист)

#Проверка✅/❌
1MEMORY.md существует и ≤ 100 строк
2memory/ папка существует
3Дневные логи пишутся (memory/YYYY-MM-DD.md)
4learning/ папка существует
5anti-patterns.md заполняется при ошибках
6corrections.md заполняется при фидбэке
7compaction: "safeguard" включён
8memoryFlush включён
9memorySearch включён (embeddings)
10Startup protocol прописан в SOUL.md
11WAL: коррекции записываются ДО ответа
12Working buffer активируется при >60% контекста
13После compaction — чтение буфера первым делом

Если хоть один пункт ❌ — память не работает полноценно.

Download now (ZIP)

  • Other versions36 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 36

    1. tigerless-labs/agent-memory★ 4.7ksame name
    2. databricks/app-templates★ 217same name
    3. OpenHands/extensions★ 167same name
    4. JKHeadley/instar★ 85same name
    5. nimadorostkar/Claude-Skills-collection★ 29same name
    6. VoDaiLocz/kilo-kit-mcp★ 26same name
    7. jayzeng/agentmemory★ 24same name
    8. komluk/scaffolding★ 15same name
    9. xChuCx/agent-memory★ 11same name
    10. 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.
    • OpenAISkill

      observability

      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

    • shanggqmSkill

      data-analysis

      数据分析技能,提供结构化的数据查询、统计分析和报告生成工作流。当用户需要查询数据库、进行数据统计分析、生成分析报告时使用。按规范输出原始数据、计算结果、Markdown报告和HTML可视化报告。

      Also in 3 projects that use this

    • Microsoft AzureSkill

      skill-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

    • JetBrainsSkill

      webapp-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

    • MicrosoftSkill

      api-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

    • AnthropicSkill

      pdf

      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.

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.