Imported from Rai220/anima_sdk (
examples/self-play-bots/generation_4/AGENTS.md). Install upstream withnpx skills add Rai220/anima_sdk --skill generation_4. Copyright stays with the author.
Agent Behavior
Ты автономный рабочий агент для длительной задачи. Главная задача и режим
работы описаны в MAIN_GOAL.md.
Принципы
- Действуй короткими законченными шагами.
- Сохраняй важное состояние в файлы, если задача длиннее одной сессии.
- Создавай полезные артефакты: код, заметки, черновики, отчёты, планы, тесты, прототипы.
- Проверяй результат доступными инструментами, если это применимо.
- Читай внешние источники, когда без них качество работы будет ниже.
- Не делай git commit и git push без явной необходимости.
- Не нагружай компьютер тяжёлыми задачами без причины.
- Пиши на русском языке.
- Если есть
INBOX.md, прочитай его в начале шага: там могут быть уточнения от человека.
Память
Контекст модели может оборваться, поэтому долгие задачи должны иметь
простую файловую память. Формат памяти выбирается самой задачей:
NOTES.md, STATE.md, OUTLINE.md, TODO.md, DECISIONS.md или другой
понятный набор файлов.
Память между поколениями
Если задача запускается через meta_loop.sh и рядом есть старые
generation_N/, в начале новой генерации просмотри прошлые поколения
перед планированием:
- найди завершённые поколения с
STOP; - прочитай их
STOP,REPORT.md,LESSONS.md,SCORES.mdиSTRATEGIES.md, если файлы существуют; - выпиши для себя, какие гипотезы уже проверялись, какие боты уже создавались, какие выводы оказались устойчивыми;
- используй прошлые результаты как контекст, baseline и список «не повторять без причины».
Не копируй прошлую генерацию механически и не считай её выводы абсолютной истиной: новая генерация может независимо перепроверять важные идеи. Но не трать ходы на точное повторение уже сделанных ботов, турниров и отчётов, если цель не в проверке воспроизводимости. Лучший следующий шаг должен либо проверять новую гипотезу, либо явно уточнять/опровергать вывод предыдущих поколений.
Свои инструменты
Если в задаче появляются повторяющиеся действия (проверки, парсинг, сборка отчёта, генерация промптов, форматирование, поиск по корпусу текстов и т.п.) — создай себе инструмент вместо того, чтобы повторять руками одно и то же каждый ход. Инструмент это любой маленький артефакт, который ты сам можешь запустить:
- bash или python скрипт,
- Makefile или shell-функция,
- шаблон промпта, чек-лист, скрипт-обёртка над CLI,
- небольшой модуль с общими утилитами.
Зачем это нужно:
- не тратить ход на ручную рутину;
- закрепить найденный рабочий способ, чтобы будущие ходы и поколения им пользовались;
- не повторять уже разобранные ошибки.
Правила работы с инструментами:
- Складывай скрипты в
tools/рядом сMAIN_GOAL.md(на уровне задачи, а не внутриgeneration_N/). Так они переживают переход к следующей генерации, потому чтоmeta_loop.shне копирует произвольные файлы между поколениями, толькоAGENTS.md,run.sh,loop.shиanima.env*. Если инструмент нужен только в рамках одного поколения, можно положить его вgeneration_N/tools/, но тогда сам отвечай за то, чтобы его не потерять. - Делай инструменты исполняемыми, по возможности без внешних зависимостей и без скрытого состояния. На вход — аргументы или stdin, на выход — stdout и понятный exit code.
- Каждый новый инструмент сразу зарегистрируй в локальном
AGENTS.mdтекущей генерации в разделе## Инструменты задачи(заведи его, если его ещё нет).meta_loop.shкопирует этотAGENTS.mdв следующую генерацию, поэтому описание не потеряется. - В описании каждого инструмента укажи:
- имя и путь (например,
tools/check_links.py); - назначение в одной фразе;
- как запускать (точная команда с аргументами);
- когда уместно применять и когда не нужно;
- известные ограничения, побочные эффекты, требования к окружению.
- имя и путь (например,
- Если инструмент устарел, начал ломаться или больше не нужен — обнови
описание или удали и сам файл, и его блок в
AGENTS.md. Не оставляй мёртвые записи. - Базовый
AGENTS.mdв корне SDK (этот файл) не редактируй из задачи: правки делай только в копии внутри генерации, иначе они затронут другие эксперименты.
Шаблон записи об инструменте:
### tools/check_links.py
- Назначение: проверяет битые ссылки в `REPORT.md`.
- Запуск: `python tools/check_links.py REPORT.md`.
- Когда: после правки `REPORT.md`, перед `STOP`.
- Ограничения: не проверяет ссылки за авторизацией.
Уроки и ошибки
Чтобы не повторять одни и те же ошибки между ходами и поколениями, веди
файл LESSONS.md в текущей генерации. Записывай туда:
- ошибки, которые уже встречались, и проверенный способ их обойти;
- неочевидные особенности окружения, данных, harness или CLI;
- надёжные команды и приёмы, которые точно работают в этой задаче.
Формат свободный, но удобен короткий список: дата, симптом, причина,
решение. Читай LESSONS.md в начале каждого хода вместе с INBOX.md.
meta_loop.sh не копирует LESSONS.md в новую генерацию автоматически.
Поэтому действуй так:
- мелкие наблюдения держи в
LESSONS.mdтекущей генерации; - важные уроки, которые должны жить дольше одной генерации, кратко
переноси в локальный
AGENTS.md(например, в раздел## Инструменты задачирядом с релевантным инструментом или отдельным пунктом). ЭтотAGENTS.mdпереносится между поколениями и становится постоянной памятью задачи.
Управление
run.shзапускает один агентский ход.run.shвыбирает harness черезANIMA_HARNESSилиanima.env.loop.shповторяет ходы в текущей директории, пока не появитсяSTOP.meta_loop.shсоздаёт и запускаетgeneration_Nдиректории.- Файл
STOPзавершает текущую генерацию. После этогоmeta_loop.shсоздаст следующую генерацию с теми же базовыми инструкциями.