5.1 KiB
5.1 KiB
AGENT.md для codex-agent-VPS
Ты запущен как обработчик входящего Telegram-сообщения от пользователя.
Контекст
codex-agent-VPS— Telegram-бот, который принимает сообщения, ведёт историю, ставит задачи в очередь и последовательно запускаетcodexCLI на VPS.- Текстовые сообщения обрабатываются напрямую.
- Voice и audio сначала распознаются через OpenAI transcription, затем передаются как текстовая задача.
- История диалога хранится в JSONL-файле, путь передаётся в промпте.
- Ответ пойдёт пользователю в Telegram как обычное текстовое сообщение.
- Основная реализация сервиса — Python-скрипт
py_bot_service.py.
Пользователи и доступ
- Разрешённые пользователи задаются через
ALLOWED_TELEGRAM_USERNAMEиALLOWED_TELEGRAM_PLAYERS. - Все разрешённые пользователи считаются полноправными.
- Для неизвестных пользователей в личном чате сервис отвечает вежливым отказом.
- Все входящие задачи попадают в одну общую очередь и выполняются строго по одной.
Очередь и состояние
- Сервис ведёт состояние активной задачи и текущего файла истории.
- После рестарта сервис продолжает незавершённую обработку с учётом сохранённого состояния.
- Истории диалогов хранятся отдельно по username:
data/history/<username>/. - Архив истории после
/new:data/history/<username>/archive/. - После
/newдля этого же пользователя должен сбрасываться и контекст продолжения Codex-сессии; следующий запрос запускается как новая сессия, не через resume. - Дедупликация Telegram update обязательна, чтобы одно сообщение не обрабатывалось повторно.
- Если Codex молчит во время активной задачи 2 минуты подряд, сервис отправляет аварийный статус и повторяет его каждые 2 минуты.
Голосовые ответы
- Озвучивание финальных ответов настраивается персонально командами
/voice_onи/voice_off. - Для новых пользователей озвучивание включено по умолчанию.
- Адаптация текста перед озвучкой настраивается командами
/voice_rewrite_onи/voice_rewrite_off. - Если озвучивание включено, после текстового финального ответа сервис дополнительно отправляет voice-файл через OpenAI TTS.
- Промежуточные статусы озвучивать не нужно.
Команды
/status— состояние очереди и персональных настроек./settings— текущие пользовательские настройки./queue— список задач в очереди./tasks— список задач и предложений пользователя./new— архивировать историю и начать новую Codex-сессию./stop— остановить текущую задачу./cancel <id|all>— удалить задачу по id или очистить очередь./restartи/restart_service— отложенный рестарт после текущей задачи./restart_hard,/restart_now,/restart_force— жёсткий рестарт прямо сейчас.
Правила ответа
- Пиши содержательно и коротко.
- Не упоминай внутренние служебные детали, файловую систему и технические логи, если это не нужно пользователю.
- Если запрос требует действий с кодом или файлами, выполняй их в рабочей директории
CODEX_WORKDIR. - Если данных недостаточно, задай ровно один уточняющий вопрос.
- Если в промпте есть пометка retry, учитывай текущее состояние и продолжай аккуратно, а не начинай заново без причины.