Добавить переносимый шаблон codex-agent-VPS

This commit is contained in:
AidarKC
2026-06-18 15:18:07 +04:00
parent 653f1268a6
commit b16a23243e
7 changed files with 3158 additions and 2 deletions
+86
View File
@@ -0,0 +1,86 @@
# AGENTS
## Назначение
- `codex-agent-VPS` — переносимая версия Telegram-бота для запуска `codex` CLI на VPS.
- Папку можно ставить в любое место на Linux-сервере, если там есть `python3`, `systemd`, `codex` и доступ в интернет.
- Конфигурация делается через `.env`.
## Состав папки
- `py_bot_service.py` — основная реализация сервиса.
- `AGENT.md` — инструкции, которые бот передаёт в промпт Codex.
- `.env.example` — пример конфигурации.
- `scripts/systemd/shine-agent-bot-coder.service` — шаблон systemd unit.
## Требования к VPS
- Linux-сервер с `systemd`.
- Установленные `python3`, `curl`, `ffmpeg`.
- Установленный `codex` CLI.
- Выполненный `codex login` под тем пользователем, от которого будет работать сервис.
- Telegram bot token.
- Telegram usernames разрешённых пользователей.
## Установка через Codex
1. Скопировать папку `codex-agent-VPS` на сервер в нужное место, например:
- `/home/your_user/codex-agent`
2. Установить `codex` CLI под рабочим пользователем.
3. Выполнить под этим же пользователем:
- `codex login`
4. Установить системные зависимости:
- `python3`
- `ffmpeg`
5. Скопировать `.env.example` в `.env`.
6. В `.env` заполнить:
- `TELEGRAM_BOT_TOKEN`
- `ALLOWED_TELEGRAM_USERNAME`
- `ALLOWED_TELEGRAM_PLAYERS`
- `BOT_USERNAME`
- `CODEX_BIN`
- `CODEX_WORKDIR`
7. Если нужны voice/audio и голосовые ответы, дополнительно задать:
- `OPENAI_API_KEY`
8. В `scripts/systemd/shine-agent-bot-coder.service` заменить:
- `your_user`
- `/home/your_user/codex-agent`
на реальные значения.
9. Скопировать unit в:
- `/etc/systemd/system/shine-agent-bot-coder.service`
10. Выполнить:
- `sudo systemctl daemon-reload`
- `sudo systemctl enable --now shine-agent-bot-coder`
11. Проверить:
- `sudo systemctl status shine-agent-bot-coder --no-pager`
- `sudo journalctl -u shine-agent-bot-coder -f`
## Настройка доступа
- `ALLOWED_TELEGRAM_USERNAME` — основной разрешённый пользователь.
- `ALLOWED_TELEGRAM_PLAYERS` — дополнительные разрешённые пользователи:
- `username1:Имя 1,username2:Имя 2`
- Все пользователи из whitelist в этой версии считаются полноправными.
- Все входящие задачи попадают в одну общую очередь и выполняются строго последовательно.
## Поведение агента
- Бот принимает текст, voice и audio.
- Для каждого пользователя ведётся отдельная история.
- Все задачи запускаются через `codex exec`.
- Рабочая директория задаётся через `CODEX_WORKDIR`.
- Вызов идёт без sandbox/approval ограничений: `--dangerously-bypass-approvals-and-sandbox`.
## Что обычно меняют при переносе
- `.env`
- `scripts/systemd/shine-agent-bot-coder.service`
- при необходимости `AGENT.md`
## Полезные команды
- Проверка установки Codex:
- `codex --version`
- `codex doctor`
- Self-test без Telegram:
- `python3 py_bot_service.py --selftest-codex "Ответь одной строкой: Codex работает"`
- Проверка сервиса:
- `sudo systemctl status shine-agent-bot-coder --no-pager`
- `sudo journalctl -u shine-agent-bot-coder -f`
## Примечания
- Если `codex doctor` пишет, что credentials не найдены, нужно выполнить `codex login`.
- Если `OPENAI_API_KEY` пустой, текстовые задачи через `codex` будут работать, а voice/audio и TTS-функции — нет.
- Если у пользователя в Telegram нет username, whitelist по username его не пропустит.