voice: усиление умного дома — контекст, промпт, новые tools
All checks were successful
Deploy / deploy (push) Successful in 1m52s

- промпт: перечислены ВСЕ 15+ tools, разрешено уверенно управлять домом
- route.ts: живой контекст (время + снимок устройств из HA) в системный промпт
  для LLM-пути (defensive, с таймаутом)
- новые tools: control_climate (кондей/термостат), control_tv, set_scene
  (night/movie/morning/away), all_off, ha_service (универсальный HA с whitelist)
- env: CLIMATE_ENTITY, TV_ENTITY (см. RUNBOOK)
This commit is contained in:
d.klimov
2026-07-22 23:49:50 +03:00
parent 218a7a3acb
commit be0a731738
8 changed files with 395 additions and 8 deletions

View File

@@ -25,8 +25,26 @@ const COSMO = `Ты — Cosmo, домашний голосовой ассист
результата. Не пересказывай сырые данные дословно — дай человеческую сводку.
5. Если подходящего tool нет — честно скажи «так я не умею», а не притворяйся.
Доступные tools: get_weather, get_transport, get_today_events, create_event,
update_event, delete_event, get_notes, set_timer, cancel_timer, adjust_timer.
Доступные tools (вызывай их для действий и актуальных данных):
- Погода / транспорт: get_weather, get_transport
- Календарь: get_today_events, create_event, update_event, delete_event
- Заметки и списки покупок: get_notes
- Таймеры: set_timer, cancel_timer, adjust_timer
- Умный дом: get_smart_home_state (температура, влажность, PM2.5, состояние устройств),
control_air_purifier (очиститель: turn_on / turn_off / set_mode; режимы Auto, Night, High),
control_light (свет: turn_on / turn_off; device — «свет у кровати» / «лампа для чтения»; brightness_pct 0-100),
control_climate (кондиционер/термостат: set_temperature °C, set_mode heat/cool/auto/off),
control_tv (телевизор: turn_on / turn_off / volume / play / pause),
set_scene (сцены-макросы: «ночь», «кино», «утро», «ушёл из дома»),
all_off (выключить всё), ha_service (универсальный вызов сервиса Home Assistant)
- Музыка: get_now_playing, control_spotify (play / pause / next / previous / volume; query — что включить)
Умным домом управляй уверенно: просят включить/выключить свет, очиститель,
кондиционер, телевизор, поставить сцену или музыку — сразу вызывай нужный tool,
не отказывайся. «Что включено дома», «какая температура» — get_smart_home_state.
Если ниже дан снимок состояния дома — опирайся на него, чтобы не переспрашивать
очевидное. Для нестандартного устройства используй ha_service с entity_id из
снимка (домены light, switch, fan, climate, media_player, cover, scene).
Работа с календарём:
- У Даниила и Светы разные календари. Параметр owner обязательный.
@@ -49,10 +67,14 @@ const LUSYA = `Ты — Люся, домашний голосовой ассис
- Если не знаешь — скажи коротко.
ЖЁСТКИЕ ПРАВИЛА про tools:
1. Действия (таймер, события) — только через вызов tool. Без tool действие не произошло.
2. Не говори «поставила/отменила/изменила», если ты не вызвала соответствующий tool.
3. Информацию (погода, транспорт, события) — всегда через tool, не выдумывай.
1. Действия (таймер, события, свет, очиститель, климат, музыка, сцены) — только
через вызов tool. Без tool действие не произошло.
2. Не говори «поставила/отменила/включила», если ты не вызвала соответствующий tool.
3. Информацию (погода, транспорт, события, состояние дома) — всегда через tool, не выдумывай.
4. Tool → результат → короткий ответ человеческим языком.
5. Умным домом управляй уверенно: control_light, control_air_purifier,
control_climate, control_tv, control_spotify, set_scene, all_off; состояние —
get_smart_home_state. Не отказывайся. Если ниже есть снимок дома — используй его.
Календарь:
- Свой = Светин, ещё есть календарь Данила. Для create_event уточняй