{агентное безумие} - воркфлоу + memory guide
Пару недель назад Anthropic выкатили Workflows - оркестрацию сабагентов прямо в терминале Claude Code. Пишешь в чате слово «workflow» и описываешь задачу — Claude сам генерирует JS-скрипт оркестрации и разворачивает десятки агентов: fan-out на параллельные задачи, pipeline без барьеров, adversarial verify, где один агент пытается опровергнуть находки другого. Скрипт сохраняется, его можно править, перезапускать с середины и положить в `.claude/workflows/` как именованную команду. Раньше такой harness я собирал руками поверх SDK неделю.
{docs — https://code.claude.com/docs/en/workflows}
Первая реакция у всех одинаковая: круто, запустил, посмотрел на красивое дерево прогресса, забыл. Потому что сам по себе Workflow = диспетчер. Он отлично раздаёт работу, но каждый запуск начинает с чистого листа. Агент с амнезией, размноженный на шестнадцать ядер, остаётся агентом с амнезией.
Интересное начинается, когда к оркестрации подключаешь персистентную память — ту, что переживает чаты и хранит контекст бизнеса: какие клиенты, что обещали, что уже пробовали и почему не взлетело.
Тогда циклы становятся автономными по-настоящему: ночной запуск стартует с того места, где закончил вчерашний, а не с постоянного объяснения ваших объективных целей.
Модель вы поменяете через полгода. Тулзы поменяете через месяц. Накопленный контекст - единственный слой, который остаётся вашим активом.
Поэтому память и есть та часть конструкции, в которую стоит вкладываться инженерно.
Два решения для памяти
Walrus Memory — https://memory.walrus.xyz/
Запустился буквально неделю назад, 3 июня. Это Mysten Labs — те самые, что сделали Sui, а Walrus — их верифицируемое хранилище данных. Идея: память агента портативная, шифрованная и принадлежит вам, а не провайдеру. Один и тот же контекст таскается между Claude, ChatGPT и Gemini агентами, плюс поддержка агентских фреймворков типа OpenClaw. Ownership и доступы решаются на Sui, под капотом MemWal SDK. Если вас напрягает, что память живёт внутри одного вендора и умрёт вместе с подпиской — это ответ. {к тому же газ стоит 0}
GBrain — https://github.com/garrytan/gbrain
Garry Tan из Y Combinator, который построил это для собственных агентов: 146 тысяч страниц, 24 тысячи людей, 66 кронов, работающих пока он спит. От обычного RAG-в-коробке отличается двумя вещами.
Первая — synthesis layer: на вопрос «что мне нужно знать перед встречей с Алисой» ты получаешь не десять чанков, а готовый ответ с цитатами и честной припиской «вот чего мозг не знает».
Вторая — knowledge graph, который строится сам при каждой записи: типизированные рёбра `works_at`, `invested_in`, `founded` без единого LLM-вызова. На бенчмарках это даёт +31 пункт точности против чистого векторного поиска.
Как задеплоить GBrain и сделать из него тулзу
Локально мозг поднимается за две секунды без Docker и сервера:
bun install -g github:garrytan/gbrain
Всё, у Claude Code появилась память. Но локальный мозг живёт на одном ноутбуке, а нам нужен общий — для ночных воркфлоу, для телефона, для команды.
На сервере (любой VPS за пять евро, ovhcloud.com):
Это поднимает HTTP MCP-сервер с OAuth 2.1, scope-gated токенами (`read` / `write` / `admin`) и админкой на `/admin`. Дальше с любой машины:
gbrain connect https://your-host/mcp --token gbrain_xxx --install
Флаг `--install` сам прописывает конфиг и смоук-тестит токен. Есть готовые гайды под Railway и Fly.io, а если лень — паста `INSTALL_FOR_AGENTS.md` в любого агента, и он развернёт всё сам, включая 43 скилла и ночной dream cycle, который консолидирует память и чинит цитаты, пока вы спите.
Тулза «сохранить в GBrain» уже есть из коробки:
gbrain capture "клиент Х просил перенести деплой на четверг"
А для вебхуков — обычный POST на `/ingest` с bearer-токеном, так что Zapier, Apple Shortcuts и телеграмм-бот подключаются за вечер.
В связке со скиллами это превращается в рефлекс: скилл в конце каждой сессии прогоняет «что из сегодняшнего стоит запомнить» и складывает выжимку через capture. Следующая сессия — хоть в чате, хоть в ночном Workflow — стартует уже с этим контекстом.
Как подключить Walrus Memory
Тут деплоить нечего — хранение и шифрование берёт на себя релэйер Walrus, вы держите только ключи. Регистрируетесь на memory.walrus.xyz, получаете account ID и delegate key. Дальше два пути.
Путь первый, для агентов: одна команда подключает память к Claude Code или Cursor через нативный MCP, без адаптеров:
Путь второй, для кода - SDK. TypeScript:
import { MemWal } from "@mysten-incubation/memwal";
const memwal = MemWal.create({
key: process.env.MEMWAL_PRIVATE_KEY,
accountId: process.env.MEMWAL_ACCOUNT_ID,
const job = await memwal.remember("Клиент Х просил перенести деплой на четверг");
await memwal.waitForRememberJob(job.job_id);
const memories = await memwal.recall({ query: "что обещали клиенту Х?" });
Python-версия ставится через `pip install memwal`, API тот же: `remember` / `recall` / `restore`. Под капотом каждая запись живёт в границе owner + namespace: релэйер делает эмбеддинг, шифрует через Seal, заливает блоб в Walrus, а векторные метаданные кладёт в Postgres. Recall ищет по вашему namespace и возвращает плейнтекст — расшифровать чужое без ваших ключей нельзя.
Namespace = удобная единица изоляции: один под бизнес-контекст, другой под проект, третий под личное, и агенты не подмешивают одно в другое.
Есть и middleware для Vercel AI SDK (`@mysten-incubation/memwal/ai`), если память нужна внутри своего продукта, и плагин для OpenClaw с автоматическими хуками на recall и capture. На запуске всё бесплатно, {доки тут - https://docs.wal.app/walrus-memory/getting-started/what-is-memwal}
Учтите: проект в бете, и это честно написано прямо в README.
GBrain - если хотите мозг на своём железе, с графом, синтезом и полным контролем над пайплайном.
Walrus - если важна портативность между провайдерами и верифицируемость, а инфраструктуру держать не хочется.
Подводные камни
Главный — мусор. Память усиливает то, что в неё положили, и мусор она усиливает с тем же энтузиазмом, что и факты. Если capture дёргается на каждый чих — «юзер поздоровался», «запушил коммит», сырые логи без контекста - через пару недель гибридный поиск начнёт тащить этот шум в каждый промпт, и агенты будут уверенно строить выводы на ваших же артефактах. Самое неприятное, что деградация тихая: мозг не падает, он просто постепенно глупеет.
Что с этим делать?
- Во-первых, фильтр на входе: перед capture кандидат проходит проверку - это неочевидно? переживёт неделю? повлияет на будущие решения? Нет — не пишем. У меня это отдельный judge-агент с тремя критериями, скучнее некуда, но именно он держит базу чистой.
- Во-вторых, не отключайте dream cycle: ночная консолидация в GBrain = встроенная уборка, она склеивает дубли и помечает протухшее.
- В-третьих, синтез с gap analysis — ваш детектор гнили: когда `gbrain think` начинает писать «эти две страницы противоречат друг другу», это не баг, это сигнал, что пора чистить.
И второй камень, поменьше: не складывайте в общий мозг то, что не должно утечь между контекстами. GBrain умеет скоупить доступ по логину (и это фаззили на утечки), в Walrus под это есть namespaces - но дизайн «кому какой срез виден» в обоих случаях ваша работа, не дефолт.
Итог простой. Workflows закрывают параллелизм, GBrain или Walrus закрывают контекст, скиллы склеивают одно с другим. По отдельности каждая часть - игрушка на вечер. Вместе — система, которая утром приносит результат, а не вопрос «скажи мне кто ты».
Разверни GBrain на этом устройстве - https://raw.githubusercontent.com/garrytan/gbrain/master/INSTALL_FOR_AGENTS.md Для Walrus есть аналогичный SKILL.md в репо MemWal и curl -sL https://memory.walrus.xyz/skills/setup