Backend (runtime.uc, agent_api.uc, tachyon CLI): - Enrich AI Doctor LLM context with Watchdog state (OOM, streaks, active repairs) and last 15 critical log lines - Support multi-fix parsing (quick_fixes array) and comma-separated FIX tags - Add persistent history saving to /tmp/ai_doctor_last.json and ai_doctor_last endpoint - Expand quick fix codes from 9 to 13 (added clear_dns_cache, update_subscriptions, reset_firewall, restart_network) - Implement apply_quick_fix CLI command and REST API endpoint Frontend (fe-app-tachyon, LuCI main.js): - Add AI Doctor action button in Diagnostics tab - Add shell methods aiDoctor, aiDoctorLast, applyQuickFix - Render AI Doctor modal with Multi-Fix buttons and 'Fix All' option - Integrate toast notifications and state updates
10 KiB
Tachyon AI & Agent API Integration
Tachyon предоставляет встроенные инструменты интеграции с искусственным интеллектом:
- AI Doctor — автоматическая диагностика системы с участием LLM (OpenAI, Anthropic, DeepSeek или локальные/кастомные модели), обогащенная логами Watchdog, и поддержка цепочек быстрого исправления (Multi-Fix).
- HTTP REST Agent API & CLI — программный интерфейс для внешних ИИ-агентов (Claude, GPT, Open-WebUI, Cursor, AutoGPT и т.д.).
- Автономный Watchdog — работающая из коробки система самодиагностики и самовосстановления без внешних зависимостей.
1. AI Doctor (Встроенная LLM-диагностика)
AI Doctor собирает снимок состояния роутера (проверки sing-box, nftables, DNS, WAN, памяти, uptime, активные сбои Watchdog и 15 последних критических строк системного лога), передаёт его в выбранную LLM и выдаёт вердикт на русском языке. При наличии проблем AI Doctor генерирует цепочку кодов авто-исправления (FIX: код1, код2). Результат сохраняется в /tmp/ai_doctor_last.json.
1.1. Настройка AI Doctor
Настройка выполняется в LuCI Web UI (Настройки → Дополнительные → AI Doctor) или через UCI CLI:
# 1. Включить модуль AI Doctor
uci set tachyon.settings.enable_ai_doctor='1'
# 2. Выбрать провайдера: openai | anthropic | deepseek | custom
uci set tachyon.settings.ai_doctor_provider='openai'
# 3. Выказать модель (опционально - если пустое, используется дефолт провайдера)
uci set tachyon.settings.ai_doctor_model='gpt-4o-mini'
# 4. Указать API Key
uci set tachyon.settings.ai_doctor_api_key='sk-proj-...'
# 5. Для custom-провайдера (опционально)
uci set tachyon.settings.ai_doctor_custom_url='https://openrouter.ai/api/v1/chat/completions'
# Сохранить изменения
uci commit tachyon
1.2. Поддерживаемые провайдеры и модели
| Провайдер | UCI ai_doctor_provider |
Модель по умолчанию | Примеры моделей (ai_doctor_model) |
|---|---|---|---|
| OpenAI | openai |
gpt-4o-mini |
gpt-4o, gpt-4.1-mini, o4-mini |
| Anthropic | anthropic |
claude-3-5-haiku-20241022 |
claude-3-5-sonnet-20241022, claude-3-7-sonnet-20250219 |
| DeepSeek | deepseek |
deepseek-chat |
deepseek-reasoner |
| Custom API | custom |
gpt-4o-mini |
Любая модель вашего сервера (llama-3.3-70b, qwen-2.5-72b) |
1.3. Коды быстрого исправления (Quick Fix Codes — 13 кодов)
AI Doctor может вернуть один или несколько кодов быстрого исправления через запятую:
start_singbox— перезапуск упавшего сервиса sing-boxrebuild_rules— пересборка и сброс nftables-правил фильтрацииfix_dnsmasq— перезапуск и восстановление службы dnsmasqfix_resolv_symlink— исправление повреждённого символического звена/etc/resolv.confstart_watchdog— перезапуск службы Watchdogrestart_singbox_dns— перезапуск DNS-модуля sing-box при сбое ответовfix_uci_config— восстановление конфигурации Tachyon из бэкапаfix_wan_interface— перезапуск сетевого интерфейса WAN (ifup wan)fix_gateway— перезапуск сетевого стека для восстановления системного шлюзаclear_dns_cache— очистка кэша DNS и база данных sing-boxcache.dbupdate_subscriptions— принудительный запуск обновления прокси-подписокreset_firewall— полный перезапуск фаервола роутера (/etc/init.d/firewall restart)restart_network— полный перезапуск сетевой службы (/etc/init.d/network restart)
Применение кодов из CLI:
tachyon apply_quick_fix clear_dns_cache,start_singbox
2. Автономная самодиагностика и Watchdog
Watchdog Tachyon работает автономно на роутере каждые 5–15 секунд без использования внешних API.
Полезные CLI-команды:
tachyon ai_doctor # запуск анализа AI Doctor (вызывает LLM и сохраняет в /tmp/ai_doctor_last.json)
tachyon ai_doctor_last # получение последнего сохраненного отчета AI Doctor
tachyon apply_quick_fix # выполнение кода(ов) быстрого исправления
tachyon ai_heal # ручной запуск полного цикла авто-починки Watchdog
tachyon ai_status # краткий JSON-статус Watchdog
tachyon ai_status_full # полный JSON-статус с метриками и таймерами
tachyon doctor # текстовый отчёт встроенного доктора (без LLM)
tachyon diagnose_json # структурированный JSON отчёт для сторонних агентов
3. HTTP REST Agent API (для внешних ИИ-агентов)
Для работы внешних ИИ-агентов (Cursor, Open-WebUI, Claude Desktop, AutoGPT) Tachyon поднимает CGI эндпоинт через uhttpd:
http://<ip-роутера>/cgi-bin/tachyon-agent/<endpoint>
3.1. Настройка токена доступа (Agent API Token)
WRITE-операции (изменение настроек, перезапуск сервисов, применение фиксов) требуют Bearer-авторизации:
uci set tachyon.settings.agent_api_token='СЕКРЕТНЫЙ_ТОКЕН_АГЕНТА'
uci commit tachyon
3.2. Эндпоинты API
READ (Без авторизации в LAN):
| Метод | Путь | Описание |
|---|---|---|
| GET | /cgi-bin/tachyon-agent/health |
Быстрая проверка работоспособности служб |
| GET | /cgi-bin/tachyon-agent/snapshot |
Полный снимок системы для LLM |
| GET | /cgi-bin/tachyon-agent/diagnose |
Результаты диагностики + предложения по ремонту |
| GET | /cgi-bin/tachyon-agent/logs |
Последние 100 строк системного лога Tachyon |
| GET | /cgi-bin/tachyon-agent/config |
Конфигурация UCI (секреты скрыты) |
| GET | /cgi-bin/tachyon-agent/tools |
Схема инструментов в формате OpenAI Function Calling / MCP |
| GET | /cgi-bin/tachyon-agent/ai-doctor/last |
Последний отчёт AI Doctor с меткой времени |
WRITE (Обязателен заголовок Authorization: Bearer <токен>):
| Метод | Путь | Тело запроса | Описание |
|---|---|---|---|
| POST | /cgi-bin/tachyon-agent/heal |
{} |
Принудительный запуск авто-ремонта |
| POST | /cgi-bin/tachyon-agent/ai-doctor/fix |
{"fix":"clear_dns_cache,start_singbox"} |
Применение кодов исправления |
| POST | /cgi-bin/tachyon-agent/restart |
{"service":"singbox"} |
Перезапуск службы (singbox, watchdog, dnsmasq) |
| POST | /cgi-bin/tachyon-agent/reload |
{} |
Перезагрузка правил и конфигурации |
| POST | /cgi-bin/tachyon-agent/config/set |
{"section":"settings","option":"dns_type","value":"doh"} |
Изменение параметров UCI |
| POST | /cgi-bin/tachyon-agent/section/toggle |
{"section":"имя_секции"} |
Включение / выключение правил обхода |
| POST | /cgi-bin/tachyon-agent/domain/add |
{"section":"имя_секции","domain":"example.com"} |
Добавление домена в списки |
4. Примеры вызовов и интеграции
4.1. Примеры cURL
# Проверка здоровья
curl http://192.168.1.1/cgi-bin/tachyon-agent/health
# Получение последнего отчёта AI Doctor
curl http://192.168.1.1/cgi-bin/tachyon-agent/ai-doctor/last | jq .
# Применение исправления от ИИ с токеном
curl -X POST \
-H "Authorization: Bearer СЕКРЕТНЫЙ_ТОКЕН_АГЕНТА" \
-H "Content-Type: application/json" \
-d '{"fix":"clear_dns_cache,start_singbox"}' \
http://192.168.1.1/cgi-bin/tachyon-agent/ai-doctor/fix
4.2. CLI вызовы через SSH
# Вызов AI Doctor
tachyon ai_doctor
# Вызов последнего отчета
tachyon ai_doctor_last
# Выполнение фиксов
tachyon apply_quick_fix clear_dns_cache
5. Безопасность
- READ-эндпоинты не передают пароли, приватные ключи подписчиков и бот-токены.
- WRITE-эндпоинты всегда блокируются без валидного Bearer-токена.
- По умолчанию WAN-доступ к HTTP API закрыт брандмауэром OpenWrt.