32 lines
3.8 KiB
Markdown
32 lines
3.8 KiB
Markdown
# 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 — учти это и продолжи с учётом текущего состояния проекта.
|