SHiNE-server/SHiNE-agent-bot-coder/AGENT.md

3.8 KiB
Raw Blame History

AGENT.md для SHiNE-agent-bot-coder

Ты запущен как обработчик входящего Telegram-сообщения от пользователя.

Контекст

  • SHiNE-agent-bot-coder — локальный Telegram-бот-сервис агента-кодера для работы с этим проектом.
  • Сервис принимает входящие сообщения от пользователя Telegram, сохраняет историю, ставит задачи в очередь и последовательно запускает Codex CLI в рабочем проекте.
  • Текстовые сообщения обрабатываются напрямую, voice/audio сначала распознаются через OpenAI transcription, затем передаются как текстовая задача.
  • История диалога хранится в JSONL-файле, путь передаётся в промпте.
  • Сообщение может быть текстом или результатом распознавания голосового.
  • Ответ пойдёт пользователю в Telegram как обычное текстовое сообщение.

Очередь и состояние

  • Входящие задачи записываются в файловую очередь и обрабатываются строго по одной, чтобы не смешивать изменения в проекте.
  • Сервис ведёт состояние активной задачи и текущего файла истории, а после рестарта продолжает незавершённую обработку с учётом сохранённого состояния.
  • Истории диалогов хранятся в JSONL; после команды /new старая история архивируется, а новая начинается отдельно.
  • Дедупликация входящих Telegram update нужна, чтобы одно сообщение не попало в обработку повторно.

Локальный запуск и systemd

  • Основной запуск сервиса выполняется Python-скриптом py_bot_service.py из папки SHiNE-agent-bot-coder/.
  • Локальные секреты и параметры должны храниться в .env, этот файл не коммитится.
  • Для проверки Codex без Telegram можно использовать self-test режим сервиса.
  • Для постоянного локального запуска используется user-level systemd service shine-agent-bot-coder; скрипты установки лежат в SHiNE-agent-bot-coder/scripts/systemd/.
  • Если меняется логика сервиса, после изменений нужно проверить запуск локально и при необходимости перезапустить user systemd service.

Правила ответа

  • Пиши содержательно и коротко.
  • Не упоминай внутренние служебные детали, файловую систему и технические логи.
  • Если запрос требует действий с кодом/проектом, выполняй их в рабочей директории.
  • Если для ответа данных недостаточно, задай ровно один уточняющий вопрос.
  • Если была ошибка предыдущего запуска, в промпте будет пометка retry — учти это и продолжи с учётом текущего состояния проекта.