Narzędzia Layer 2 (Dev Mode)#

Oprócz podstawowych narzędzi sterowania (Layer 1), vCLU udostępnia rozszerzone narzędzia dla agentów AI w trybie Dev Mode. Wymagają włączenia Dev Mode w panelu MCP.

Warstwy narzędzi#

WarstwaWymaganiaCel
Layer 1Bot + API keySterowanie urządzeniami, sceny
Layer 2Bot + Dev ModeEksploracja kodu, konfiguracja, deployment
Exec ModeBot + Dev Mode + ExecWykonywanie dowolnego kodu Lua

Włączanie Dev Mode#

  1. Przejdź do MCP w panelu webowym
  2. Włącz Dev Mode (globalny przełącznik)
  3. Przy bocie włącz Sandbox access (opcjonalnie Exec Mode)

Eksploracja kodu#

vclu_read_file#

Odczytuje plik z katalogu vCLU (kod Lua, dokumentacja, moduły).

ParametrTypOpis
pathstringŚcieżka względna, np. modules/init.lua, ai/house.md

Agent używa tego do zrozumienia istniejącego kodu przed wprowadzeniem zmian.

vclu_list_files#

Lista plików pasujących do wzorca glob.

ParametrTypOpis
patternstringWzorzec, np. modules/*.lua, plugins/**/init.lua

vclu_grep#

Wyszukiwanie wzorca regex w plikach.

ParametrTypOpis
patternstringWyrażenie regularne
globstringFiltr plików (domyślnie *.lua)
max_resultsnumberLimit wyników (domyślnie 50, max 200)

vclu_logs#

Ostatnie logi systemowe - agent używa do diagnostyki problemów.

ParametrTypOpis
limitnumberLiczba wpisów (domyślnie 100, max 1000)
filterstringRegex filtr wiadomości

Przykład: agent szuka błędów MQTT → vclu_logs(filter: "MQTT.*error", limit: 50)


Konfiguracja i status#

vclu_config#

Zwraca konfigurację systemu (bez sekretów). Agent widzi jakie boty istnieją, czy Dev Mode jest włączony.

vclu_registry#

Pełny rejestr urządzeń z metadanymi - obszar, grupa, tagi, opis. Bogatsze dane niż vclu_devices.

ParametrTypOpis
filterobjectFiltr: type, area, group, tag, text

Przykład: vclu_registry(filter: {area: "Salon", type: "switch"}) - wszystkie przełączniki w salonie.

vclu_runtime_schema#

Schemat runtime: typy obiektów, API dashboardów, metody pluginów, zainstalowane pluginy z ich sensorami i kontrolkami. Agent odczytuje to przed pisaniem kodu.

vclu_plugin_config#

Konfiguracja pluginów (sekrety zamaskowane). Agent widzi jakie pluginy są zainstalowane i jak skonfigurowane.

ParametrTypOpis
idstringFiltr po ID pluginu (opcjonalnie)

vclu_device_history#

Ostatnie zmiany stanów urządzeń - agent widzi co się działo.

ParametrTypOpis
pathstringFiltr po urządzeniu (opcjonalnie)
limitnumberLiczba wpisów (domyślnie 50, max 500)

vclu_dashboards#

Lista zarejestrowanych dashboardów z widgetami - agent widzi co jest wyświetlane.

vclu_metrics#

Metryki i dane historyczne do wykresów.

ParametrTypOpis
pathstringŚcieżka metryki (pomiń = lista wszystkich)
rangestringZakres: 30m, 2h, 24h, 7d (domyślnie 2h)

MQTT Discovery#

vclu_mqtt_discover#

Skanuje brokery MQTT w poszukiwaniu urządzeń smart home. Rozpoznaje Zigbee2MQTT, Tasmota, ESPHome, Shelly i Home Assistant Discovery.

ParametrTypOpis
sourcestringall (domyślnie), broker (tylko wbudowany), lub ID instancji klienta

Zwraca listę odkrytych urządzeń z:

  • Nazwa, typ, model, producent, IP, firmware
  • Topici MQTT (state/command)
  • Flaga exposed - czy urządzenie jest już skonfigurowane w vCLU
  • suggestedLua - gotowy snippet kodu integracji

Typowy flow agenta po discovery:

  1. vclu_mqtt_discover → lista urządzeń
  2. Łączy snippety w moduł Lua
  3. vclu_draft_write → zapisuje draft
  4. vclu_draft_test → testuje w sandbox
  5. vclu_draft_promote → wdraża na produkcję

Sandbox pipeline#

Bezpieczny pipeline do wdrażania kodu - agent nigdy nie wgrywa kodu bezpośrednio.

vclu_draft_write#

Zapisuje plik draftu (tylko modules/*.lua).

ParametrTypOpis
pathstringŚcieżka, np. modules/mqtt_devices.lua
contentstringKod Lua

vclu_draft_read#

Odczytuje plik draftu.

ParametrTypOpis
pathstringŚcieżka draftu

vclu_draft_list#

Lista wszystkich plików w workspace draftu.

vclu_draft_delete#

Usuwa plik draftu.

ParametrTypOpis
pathstringŚcieżka draftu

vclu_draft_validate#

Sprawdza składnię Lua i listę zablokowanych funkcji.

ParametrTypOpis
pathstringŚcieżka draftu

Zwraca: czy plik jest poprawny, lista ostrzeżeń i błędów.

vclu_draft_test#

Uruchamia draft w sandbox - izolowanym środowisku bez efektów ubocznych.

ParametrTypOpis
pathstring/arrayŚcieżka draftu lub tablica ścieżek
inject_eventsarrayZdarzenia do zasymulowania (opcjonalnie)

Zwraca:

  • state_changes - jakie zmiany stanów BY nastąpiły
  • blocked_calls - jakie wywołania zostały zablokowane (MQTT publish, HTTP, etc.)
  • Błędy runtime jeśli wystąpiły

vclu_draft_promote#

Wdraża drafty na produkcję: backup → zamiana → reload Lua.

ParametrTypOpis
pathstring/arrayŚcieżka lub "all" (pomiń = wszystkie drafty)

Limit: Maksymalnie 10 deploymentów na godzinę.

vclu_diff#

Pokazuje różnicę między draftem a wersją produkcyjną (unified diff).

ParametrTypOpis
pathstringŚcieżka draftu

vclu_audit_log#

Ostatnie wpisy audytowe Layer 2 - kto co zrobił.

ParametrTypOpis
limitnumberLiczba wpisów (domyślnie 50, max 200)

Pamięć agenta#

vclu_context_save#

Zapisuje notatki do pamięci trwałej - przetrwają między sesjami.

ParametrTypOpis
notesstringNotatki w Markdown (dopisywane, nie nadpisywane)

Agent zapisuje odkryte ograniczenia, konwencje, TODO na przyszłość.

vclu_context_read#

Odczytuje wcześniej zapisane notatki agenta. Zwykle wywoływany na początku sesji.


Wykonywanie kodu#

vclu_exec#

Wykonuje snippet Lua na żywym runtime. Wymaga Exec Mode - dodatkowe uprawnienie na bocie.

ParametrTypOpis
scriptstringKod Lua (max 8KB). Użyj return expr żeby uzyskać wynik

Uwaga: Ten tool wykonuje kod bezpośrednio na produkcji - bez sandbox. Używaj do diagnostyki i szybkich poprawek, nie do wdrażania nowego kodu. Do wdrożeń używaj sandbox pipeline.


Reload#

vclu_reload#

Przeładowuje runtime Lua - stosuje zmiany kodu bez restartu vCLU.

Używane po ręcznych zmianach plików. Sandbox pipeline (vclu_draft_promote) automatycznie przeładowuje - nie trzeba wywoływać osobno.


Podsumowanie#

KategoriaNarzędzia
Eksploracjaread_file, list_files, grep, logs, runtime_schema
Statusconfig, registry, dashboards, plugin_config, device_history, metrics
MQTTmqtt_discover
Sandboxdraft_write, draft_read, draft_list, draft_delete, draft_validate, draft_test, draft_promote, diff
Pamięćcontext_save, context_read
Audytaudit_log
Runtimeexec, reload