API управления: управлять ботами извне (скрипты и ИИ)
Локальный HTTP-интерфейс приложения — включить, скопировать токен, читать статус и журнал, а также загружать, запускать, приостанавливать и останавливать ботов из PowerShell, своей программы или ИИ-ассистента.
После этой статьи вы сможете управлять FlowBotCommander извне: из PowerShell, из собственной программы или из ИИ-ассистента, который запускает и останавливает ваших ботов через «function calling». Знания программирования не нужны — примеры ниже можно копировать как есть.
Что такое API управления
В приложении есть небольшой HTTP-сервер. Он работает только на вашем компьютере (адрес 127.0.0.1), по
умолчанию выключен и никого не пускает без вашего токена. Через этот интерфейс скрипт может
- запрашивать состояние (работает, на паузе, какой бот загружен),
- следить за журналом,
- получать список ботов в папке ботов,
- загружать, запускать, приостанавливать и останавливать бота.
Чего он намеренно не умеет: редактировать ботов, задавать переменные или создавать узлы — это остаётся в редакторе. Клавиша паники (Pause) останавливает бота в любой момент, что бы ни делал API.
Шаг 1 — Включить и скопировать токен
- Откройте меню Инструменты → API управления….
- Поставьте флажок Включить API управления (по согласию).
- Оставьте порт (8765) или измените его, если он занят другой программой.
- Нажмите Копировать рядом с токеном — он сейчас понадобится. Создать делает новый токен; старый перестаёт действовать.
- Применить. Внизу появится «● Работает на http://127.0.0.1:8765», а в журнале — строка 🌐 с адресом.

Настройка сохраняется: при следующем запуске приложения API снова работает, пока вы не снимете флажок. Токен хранится на вашем компьютере в зашифрованном виде — никогда внутри бота и никогда на нашем сервере.
Шаг 2 — Положить ботов в папку ботов
API показывает и загружает ботов только из папки %AppData%\FlowBotCommander\bots. Как туда попасть:
Win+R, введите %AppData%\FlowBotCommander\bots, Enter (в первый раз создайте
папку). Сохраняйте туда ботов через Файл → Сохранить как… — каждый называется имя.bot.json.
Шаг 3 — Первый запрос
Откройте PowerShell и вставьте свой токен:
$token = "ВАШ-ТОКЕН"
$h = @{ Authorization = "Bearer $token" }
Invoke-RestMethod http://127.0.0.1:8765/api/health # работает без токена
Invoke-RestMethod -Headers $h http://127.0.0.1:8765/api/status # всё остальное — только с токеном
Ответ на /api/status выглядит так:
{ "running": false, "paused": false, "nodeCount": 6, "logCount": 12, "loadedBot": "clicker-heroes-komplett.bot.json" }
Токен передаётся в заголовке Authorization: Bearer <токен> — с пробелом после «Bearer». Если его нет или он
неверный, API отвечает 401 и {"error":"unauthorized"}.
Шаг 4 — Загрузить, запустить, приостановить, остановить бота
# Какие боты есть?
Invoke-RestMethod -Headers $h http://127.0.0.1:8765/api/bots
# Загрузить бота — имя с .bot.json или без, достаточно части имени
Invoke-RestMethod -Headers $h -Method Post -ContentType "application/json" `
-Body '{ "name": "clicker-heroes-komplett" }' http://127.0.0.1:8765/api/bot/load
# Запустить
Invoke-RestMethod -Headers $h -Method Post http://127.0.0.1:8765/api/run
# Приостановить и продолжить
Invoke-RestMethod -Headers $h -Method Post -ContentType "application/json" `
-Body '{ "paused": true }' http://127.0.0.1:8765/api/pause
Invoke-RestMethod -Headers $h -Method Post -ContentType "application/json" `
-Body '{ "paused": false }' http://127.0.0.1:8765/api/pause
# Остановить
Invoke-RestMethod -Headers $h -Method Post http://127.0.0.1:8765/api/stop
Каждое действие отвечает { "ok": true, "message": "…" } или { "ok": false, "message": "причина" } — например
«Läuft bereits.» (уже работает) или «Bot 'xyz' nicht gefunden.» (бот не найден). Сообщения пока на немецком.
Чтение журнала
/api/logs?since=N возвращает строки журнала начиная со строки N (0 = все). Запомните, сколько строк вы
прочитали, и в следующий раз запрашивайте с этого места — так вы получите только новое:
$stroki = Invoke-RestMethod -Headers $h "http://127.0.0.1:8765/api/logs?since=0"
$stroki.Count # например 12
Invoke-RestMethod -Headers $h "http://127.0.0.1:8765/api/logs?since=12" # только новые строки
Все конечные точки
| Вызов | Назначение | Нужен токен |
|---|---|---|
GET /api/health |
признак жизни приложения | нет |
GET /api/status |
работает/на паузе, число узлов и строк журнала, загруженный бот | да |
GET /api/logs?since=N |
строки журнала начиная с N | да |
GET /api/bots |
боты в папке ботов (имя, путь, размер, дата изменения) | да |
POST /api/bot/load { "name": "…" } |
загрузить бота в редактор | да |
POST /api/run |
запустить загруженного бота | да |
POST /api/stop |
остановить выполнение | да |
POST /api/pause { "paused": true/false } |
приостановить или продолжить | да |
GET /api/tools/openai |
готовый манифест function-calling для ИИ-ассистентов | да |
Подключение ИИ-ассистента
GET /api/tools/openai возвращает готовый список инструментов в формате OpenAI («tools»). Он описывает каждую
функцию — get_status, get_logs, list_bots, load_bot, run_bot, stop_bot, pause_bot — так, чтобы
языковая модель сама вызывала их правильно. Обычная схема:
- Ваш скрипт получает манифест и передаёт его ИИ-сервису как инструменты.
- Вы пишете ИИ: «Запусти бота clicker-heroes-komplett и сообщи, если в журнале появится ошибка».
- ИИ отвечает вызовом инструмента (например
run_bot); ваш скрипт выполняет соответствующий HTTP-запрос и возвращает результат.
Само приложение не обращается ни к какому ИИ-сервису — мостом между ИИ и API служит ваш скрипт. Так ваш токен остаётся на вашем компьютере.
Безопасность
- API доступен только с вашего собственного компьютера. Другие устройства в сети не могут к нему подключиться — это сделано намеренно и не меняется.
- Токен — как пароль: не передавайте его, не вставляйте в ботов или снимки экрана. При сомнениях нажмите Создать и Применить.
- Выключайте API, когда он не нужен.
- Pause всегда останавливает бота — даже посреди действия API.
Если не работает
- «Соединение отклонено» — API не включён, приложение не запущено или порт другой (см. окно API управления…).
- 401 unauthorized — токена нет, он неверный или в заголовке отсутствует слово «Bearer».
- Строка «❌ Steuer-API: …» в журнале при применении — обычно порт занят. Укажите другой порт (например 8766) и примените снова.
- «Bot 'xyz' nicht gefunden.» — бота нет в
%AppData%\FlowBotCommander\botsили он называется иначе.GET /api/botsпоказывает, что видит API. - «Start nicht möglich (kein Start-Node?)» — у загруженного бота нет узла «Старт» или он уже работает.