Skip to Content

Agenci i narzędzia AI

Agenci i narzędzia są definiowani w pliku .ironflock/ai-template.yml w repozytorium Twojej aplikacji.

Struktura agenta

Każdy klucz najwyższego poziomu definiuje agenta:

my_agent: tool_description: | When to delegate to this agent and what context to provide. These are instructions for the IronFlock AI, not for your agent. system_prompt: | Define your agent's role, expertise, and guardrails. Describe when to use each tool and the expected output format. main: true max_context_tokens: 50000 messages_after_summary: 6 max_iterations: 10 tools: my_tool: description: What this tool does and when to call it. topic: my_app.my_wamp_topic parameters: my_param: type: string description: What this parameter controls. required: true

Pola agenta

PoleOpis
tool_descriptionInstrukcje dla AI IronFlock określające, kiedy delegować do tego agenta. Nie odwołuj się tutaj do wewnętrznych narzędzi.
system_promptDefiniuje rolę agenta, jego wiedzę, dostępne narzędzia i oczekiwany format odpowiedzi.
maintrue = widoczny dla AI IronFlock. false = sub-agent, osiągalny wyłącznie przez delegowanie.
data_accessOpcjonalne. true daje temu agentowi dostęp SQL tylko do odczytu do tabel danych własnej aplikacji, przez wbudowane narzędzia get_schema i execute_sql. Nigdy do danych innej aplikacji.
file_accessOpcjonalne. true daje temu agentowi dostęp tylko do odczytu do plików zapisanych przez własną aplikację, przez wbudowane narzędzia list_app_files i read_app_file. Przeszukuje ścieżki plików, a nie ich zawartość, i nie odczytuje plików PDF ani innych formatów binarnych.
log_accessOpcjonalne. true daje temu agentowi dostęp tylko do odczytu do logów kontenerów własnej aplikacji, przez wbudowane narzędzie get_app_logs. Nigdy do logów innej aplikacji i tylko na urządzeniach, które użytkownik i tak może zobaczyć.
web_searchOpcjonalne. true daje temu agentowi wbudowane narzędzie web_search, które przeszukuje publiczny internet i zwraca podsumowaną odpowiedź z linkami do źródeł — do kart katalogowych, kodów błędów lub wszystkiego, na co dane Twojej aplikacji nie odpowiadają. Zapytanie trafia do zewnętrznego dostawcy wyszukiwania, więc określ w system_prompt, czego agent może szukać.
max_context_tokensLimit tokenów na żądanie (~1,3 tokena na słowo).
messages_after_summaryLiczba ostatnich wiadomości zachowywanych bez podsumowania w historii rozmowy.
max_iterationsMaksymalna liczba rund wywołań narzędzi, zanim agent się zatrzyma. Zapobiega nieskończonym pętlom.
effortOpcjonalne. Ile rozumowania model przeznacza na turę: low, medium lub high (domyślnie).

effort wymienia jakość odpowiedzi na szybkość i koszt. Niższe poziomy sprawiają, że każda runda wywołań narzędzi jest szybsza i tańsza; high jest tym, czego platforma używa przy pominiętym polu. Wybieraj poziom na podstawie pomiaru, a nie domysłu: uruchom typowe zadania swojego agenta na każdym poziomie i zostaw najniższy, który wciąż wykonuje każde zadanie poprawnie.

Typy narzędzi

Narzędzia oparte na tematach WAMP

Te narzędzia wywołują procedurę WAMP zarejestrowaną przez kod brzegowy:

tools: get_sensor_data: description: Retrieves the latest sensor readings from the device. topic: sensors.get_latest parameters: sensor_id: type: string description: The sensor to query. required: true

Temat WAMP musi być zarejestrowany przez komponent brzegowy Twojej aplikacji. Wartości zwracane powinny być czytelnym tekstem lub danymi strukturalnymi, które AI potrafi zinterpretować.

Narzędzia delegujące

Te narzędzia delegują do innego agenta zdefiniowanego w tym samym pliku:

tools: configure_machine: description: Handles complex machine configuration tasks. delegate: machine_expert

Typy parametrów

TypOpis
stringTekst
numberWartość liczbowa
booleanPrawda/fałsz
objectStrukturalny obiekt JSON
arrayLista wartości

Sub-agenci i delegowanie

W złożonych domenach podziel integrację AI na kilku wyspecjalizowanych agentów. Sub-agenci zajmują się wąskimi zadaniami, a agent główny nimi zarządza.

Agent główny a sub-agent

WłaściwośćAgent główny (main: true)Sub-agent (main: false)
WidocznośćZarejestrowany w AI IronFlockUkryty przed AI IronFlock
DostępWywoływany bezpośrednio przez AI IronFlockOsiągalny tylko przez delegowanie od innego agenta
ZastosowaniePunkt wejścia dla AI Twojej aplikacjiWyspecjalizowana wiedza dziedzinowa

Kiedy używać sub-agentów

Używaj sub-agentów, gdy:

  • Pojedynczy agent miałby zbyt wiele narzędzi (więcej niż 8–10)
  • Różne zadania wymagają różnych promptów systemowych lub wiedzy
  • Chcesz odizolować złożone przepływy pracy (np. konfigurację od monitorowania)
  • Potrzebujesz różnych limitów tokenów lub liczby iteracji dla różnych zadań

Przepływ delegowania

Użytkownik → AI IronFlock → Agent główny → Sub-agent → Narzędzie WAMP → Urządzenie brzegowe ↓ Wynik wraca z powrotem

Agent główny decyduje, kiedy delegować, na podstawie swojego promptu systemowego i opisu narzędzia delegującego. Sub-agent działa niezależnie, korzysta z własnych narzędzi i zwraca wyniki agentowi głównemu, który podsumowuje je dla użytkownika.

Najlepsze praktyki

Pisanie opisów narzędzi

Pole tool_description jest przeznaczone dla AI IronFlock — to ono decyduje, kiedy Twój agent zostanie wywołany. Pisz je z perspektywy AI IronFlock:

Dobrze:

tool_description: | Delegate to this agent when the user asks about OPC UA devices, PLC configuration, or industrial network scanning. Provide the device name or network information if available.

Źle:

tool_description: | I am an OPC UA expert that can scan networks and configure PLCs. My tools include network_scan and read_catalog.

Nie odwołuj się do wewnętrznych narzędzi w tool_description — AI IronFlock nie musi o nich wiedzieć.

Pisanie promptów systemowych

system_prompt definiuje zachowanie Twojego agenta. Uwzględnij:

  1. Rolę — czym agent jest i co wie.
  2. Dostępne narzędzia — wymień każde narzędzie i kiedy go używać.
  3. Format odpowiedzi — jak odpowiedzi powinny być ustrukturyzowane.
  4. Ograniczenia — czego agent NIE powinien robić.
system_prompt: | You are a sensor data specialist for industrial temperature monitoring. Available tools: - get_reading: Use when asked for current sensor values - get_history: Use when asked about trends or historical data - set_threshold: Use when asked to configure alert limits Always include measurement units in responses. Never modify sensor thresholds without explicit user confirmation. If a sensor is not responding, suggest checking the device connection.

Projektowanie narzędzi WAMP

  • Zwracaj czytelne dane — agent AI będzie interpretował wartości zwracane przez Twoje narzędzie. Zwracaj ustrukturyzowany tekst lub JSON, nie surowe dane binarne.
  • Dołączaj komunikaty o błędach — gdy narzędzie zawiedzie, zwróć opisowy komunikat, który AI może przekazać użytkownikowi.
  • Utrzymuj proste parametry — używaj typów prostych (string, number, boolean), gdy to możliwe. Złożone zagnieżdżone obiekty utrudniają AI konstruowanie poprawnych wywołań.
  • Oznaczaj parametry wymagane — zawsze ustawiaj required: true dla obowiązkowych danych wejściowych.

Dobór rozmiaru agenta

UstawienieZalecenie
max_context_tokens30 000 – 50 000 dla większości agentów
messages_after_summary4 – 6 wiadomości
max_iterations5 – 10 (zwiększ dla wieloetapowych przepływów pracy)

Wyższe wartości pozwalają na bardziej złożone interakcje, ale kosztują więcej tokenów. Zacznij zachowawczo i zwiększaj, jeśli agenci osiągają limity.

Testowanie agentów

  1. Dodaj urządzenie testowe do swojej aplikacji.
  2. Otwórz czat AI IronFlock.
  3. Zadaj pytania, które powinny uruchomić Twojego agenta.
  4. Sprawdź, czy AI poprawnie deleguje i czy Twoje narzędzia zwracają oczekiwane dane.
  5. Przetestuj przypadki błędów — co się dzieje, gdy urządzenie jest offline lub narzędzie zwraca błąd?

Kompletny przykład

# Main agent - visible to IronFlock AI factory_agent: main: true tool_description: | Delegate to this agent for factory automation tasks, including machine configuration and production monitoring. system_prompt: | You are a factory automation assistant. You can monitor production lines and configure machines. For complex machine configuration, delegate to the machine_config_agent using the configure_machine tool. tools: get_production_stats: description: Get current production statistics. topic: factory.stats parameters: line_id: type: string required: true configure_machine: description: Handles complex machine setup and configuration. delegate: machine_config_agent # Sub-agent - only reachable via delegation machine_config_agent: main: false system_prompt: | You are a machine configuration specialist. You can read machine parameters, update settings, and validate configurations. Always verify the current state before making changes. Confirm changes with the user before applying. tools: read_config: description: Read current machine configuration. topic: machines.read_config parameters: machine_id: type: string required: true write_config: description: Apply new configuration to a machine. topic: machines.write_config parameters: machine_id: type: string required: true config: type: object description: Configuration key-value pairs to apply. required: true
Last updated on