Слогер Создать блог
Разработка

Как я победил галлюцинации, заменив AGENTS.md на AGENTS.db

Инженер из Exam Intelligence перешёл от текстовых инструкций к SQLite-базе, чтобы агент перестал выдумывать и начал работать чётко.

Прежде чем погрузиться в детали, немного контекста: как устроен наш агентный пайплайн в Exam Intelligence для глубокого анализа и генерации заметок.

Изначально я попытался создать полноценный end-to-end граф в LangGraph. Но постоянно возникали неожиданные баги из-за внешних факторов: отсутствующие PDF, невозможность найти статьи, ошибки парсинга, 503 ошибки или сломанный JSON. Казалось, что придётся писать отдельного агента-кодера только для обработки этих крайних случаев.

Решение

Вместо мастер-воркфлоу я переключился на создание CLI-инструментов, которые может использовать агент-кодер.

  • Настройка: Запуск qwen3.6:35b через Ollama внутри обвязки PI coding agents, работающей в Docker-песочнице.
  • Поток: Каждый файл — это узел (шаг или целый воркфлоу для достижения конкретного результата), и агент выполняет их один за другим.

Если что-то ломается, я предусмотрел 3 уровня исправлений:

  1. Уровень 1 (авто): Агент вручную делает работу (например, находит недостающий URL).
  2. Уровень 2 (авто): Агент обнаруживает краткосрочный повторяющийся паттерн и пишет скрипт для него.
  3. Уровень 3 (человек в цикле): Если агент находит баг в моих CLI-инструментах, он помечает его, предлагает исправление и останавливается, чтобы сохранить чистоту кода — ждёт моего одобрения перед редактированием.

Архитектура памяти

Не зная о стандартных соглашениях именования AGENTS.md, я изначально выбрал такую конфигурацию:

  • instructions.md: информировал агента о всём воркфлоу, архитектуре и том, как его выполнять.
  • memory.md: постоянная кросс-сессионная память агента, в основном хранящая, с какими багами/проблемами он столкнулся и как их исправил.
  • workflow_checkpoints.db: SQLite3 база данных, используемая как временное хранилище для воркфлоу, которая позже переносится в PostgreSQL (используется нашим Django-приложением) после проверок качества для изоляции продакшена.

Проблема

Агент начинал правильно, но когда доходило до миграции данных заметок в базу Django, всё ломалось. У меня был CLI-инструмент migrate.py, который агент мог вызывать (упомянутый в instructions.md), но он начинал использовать встроенный Python, делал синтаксические ошибки, мигрировал данные с битым форматированием, а иногда полностью пропускал миграцию некоторых таблиц.

После нескольких неудач я внёс следующие изменения:

  1. Добавил шаг планирования.
  2. Полностью переключил слой памяти на agents.db.

Вот схема базы:

ТаблицаКолонки
instructionsid, step_order, title, objective, actions, tools, success_criteria, created_at
memoriesid, title, step, tldr, problem, fix, created_at

Новая настройка движка

  • Таблица instructions полностью заменила instructions.md. Она даёт агенту изолированные пошаговые инструкции с чёткими целями, конкретными действиями, доступными CLI-инструментами и чётким определением успеха.
  • Таблица memories содержит опыт прошлых запусков: что сломалось и как это исправили.

Я предварительно заполнил таблицу memories всем, что пошло не так в предыдущих запусках, и тем, что агент должен был сделать в этих случаях, используя синтетические воспоминания.

Поток выполнения

Агенту было поручено проходить шаг за шагом по таблице instructions. Для каждого шага он запрашивает таблицу memories (просто получая tldr) как краткую сводку: что нужно сделать, как это сделать и что может пойти не так. Если он сталкивается с новой проблемой, просто добавляет её в memories.

Эти изменения позволили мне аудитировать, что агент намеревается сделать (план), и вставлять исправления, если нужно. Это позволило иерархически запрашивать инструкции и баги и полностью устранило предыдущие проблемы.

Дополнительные рекомендации

Хотя я просто попросил агента читать базу данных (сказав, когда это делать), более надёжный способ — отредактировать саму обвязку, чтобы она вставляла правильные инструкции и воспоминания, экономя больше токенов на SQL-запросах на каждом шаге.

Налог на гибкость

Использование обвязки PI coding agents в качестве оркестратора добавляет гибкости, но делает всё слишком непредсказуемым. Несмотря на то, что поток в основном иерархический, я теперь застрял на том, что прошу его выполнить полный прогон, ловлю галлюцинации и обновляю memories...

По материалам: dev.to. Текст переработан редакцией Слогера.

← На главную

Рекламное место — Конец поста
Реклама · Слогер

Комментарии (0)

Войдите, чтобы комментировать.

Пока нет комментариев. Будьте первым.

Маркетинг

Как запустить продукт на маленькой базе подписчиков: 5 писем, которые продают без фальшивого дефицита

Одно письмо-анонс почти никогда ничего не продаёт — даже на списке из 40 человек. Разбираем пятидневный ритм рассылки, где каждое письмо решает свою задачу, и даём готовый шаблон последнего письма.

Слогер 28.10.2026 ▲ 1
Разработка

Как выгрузить вакансии и зарплатные вилки из Greenhouse API: разбор подводных камней

Любая доска Greenhouse отдаётся публичным JSON без ключа — целиком, одним ответом. Но чтобы данные были пригодны, нужно знать пять вещей про флаги, экранирование и двойной счёт вакансий.

Слогер 28.10.2026 ▲ 0
Fluxs lenta
Реклама · fluxs.ru
Маркетинг

Переезд (миграция) с Битрикс24 и amoCRM без потери данных: в Fluxs появился модуль миграции

4 000 контактов в Битрикс24. Сотни сделок. Задачи за несколько лет. И всё это нужно перенести в новую CRM? Раньше такой переезд мог занять несколько дней. А иногда именно из-за переноса данных компании годами оставались в неудобной системе. Мы решили эту проблему. 🚀 В Fluxs появился модуль «Миграция данных». Теперь можно переносить контакты, сделки, задачи, проекты и базу знаний из Битрикс24, amoCRM, Jira, Яндекс Трекера и Confluence. А если вашей системы нет в списке — загрузить данные через Excel, CSV или JSON.

fluxs.ru 27.10.2026 ▲ 1
Карьера

Чем Cal-WARN отличается от федерального WARN: разбор порогов, уведомлений и штрафов

Калифорния требует предупреждать о массовых сокращениях за 60 дней — как и федеральный закон США. Только порог ниже, парт-тайм считается, а правило одной трети не действует. Разбираем, что это меняет для работника и работодателя.

Слогер 27.10.2026 ▲ 0
Карьера

WARN Act: кто считается работодателем при массовом сокращении — разбор для дочек, холдингов и франшиз

По американскому закону уведомление за 60 дней обязан дать только работодатель. Разбираем, как регуляторы решают, какое юрлицо им является, и что делать, если в бумаге стоит незнакомая компания.

Слогер 27.10.2026 ▲ 0
Разработка

Разбор: почему профессию разработчика хоронят каждые 20 лет и как работать, когда всё меняется

Паника вокруг ИИ — не первая волна перемен в отрасли: похожие прогнозы звучали и в 1961 году, и в 2011-м. Разбираем, что в нынешней тревоге реально, а что стоит воспринимать как фоновый шум.

Слогер 27.10.2026 ▲ 0
Fluxs lenta
Реклама · fluxs.ru
Карьера

Страх провала и страх свидетелей: чем они отличаются и как начинать новое, когда страшно

«Я пока недостаточно хорош» — честная и бесполезная фраза. Обычно дело не в навыке, а в конкретных людях, которые увидят вашу первую попытку. Разбираем, как уменьшить ставку и всё-таки начать.

Слогер 26.10.2026 ▲ 0
Карьера

Почему удалёнка платит меньше — и в каких профессиях всё наоборот: разбор 8 049 вакансий

Медианная вилка на удалёнке ниже офисной на 6,5%. Но внутри функций разрыв меняет знак: безопасность и продажи получают премию за удалёнку, data/ML — самую большую скидку. Показываю, как читать эти цифры на переговорах.

Слогер 26.10.2026 ▲ 0
Личный опыт

Как заказать командную вышивку без минимальной партии: разбор и чек-лист

Малая команда редко может позволить себе стартовый тираж на 30 вещей. Разбираем схему, при которой вышивка делается по одной штуке — и при этом логотип у всех выглядит одинаково.

Слогер 26.10.2026 ▲ 0
Маркетинг

Автоматизация бизнеса за 15 000 или 170 000 рублей в год: в чём разница?

Автоматизация бизнеса за 15 000 или 170 000 ₽ в год. За что такая разница? 🤔 Представьте: компании нужно всего несколько вещей — принимать заявки, согласовывать счета и контролировать задачи сотрудников. А ей предлагают целую цифровую экосистему: CRM, телефонию, маркетинг, аналитику, десятки дополнительных функций… Но что, если половина из этого бизнесу вообще не нужна?

Слогер 25.10.2026 ▲ 1
Fluxs lenta
Реклама · fluxs.ru