Законы нод
Правила, на которых стоит сборка любого агента. Платформа проверяет их при построении схемы: нарушение — конкретная ошибка с объяснением, а не молчаливая поломка. Эти же законы входят во встроенную документацию для ИИ-агентов: ваш агент, собирающий канвас через API, соблюдает те же правила, что и вы.
1. Нода — одна задача, изолированная от соседей
Каждая нода делает ровно одно действие. Нода не вызывает другие ноды и не знает о них: у неё нет доступа к схеме дальше своих портов — ни к соседям, ни к графу в целом. Она принимает данные на входах, выполняет своё действие, отдаёт на выходах.
Так схема читается как текст: любой блок можно посмотреть, понять и заменить, не сломав соседей.
У ноды входы двух видов: обязательный вход без соединения — нода не выполнится (платформа подскажет); необязательный — без него нода работает.
2. Скрытого слоя нет: что подключено — то и работает
Каждый шаг работы агента — нода на схеме. Подключили модель — она отвечает; убрали — перестала. Подключили знания — агент их использует; отключили — агент о них забывает.
Никакой логики «под капотом», которую вы не видите: канвас — не декорация над скрытым пайплайном, а единственное место, где живёт поведение агента. Что собрано и соединено — работает; что убрано — перестало.
3. Провод — двусторонний
Между двумя нодами — один провод, и данные ходят по нему в обе стороны: запрос туда, ответ обратно. Пары проводов «туда и обратно» не нужны — платформа примет только одну связь на пару нод.
4. Типы данных на концах совпадают
Каждый порт передаёт свой тип данных: текст, собранный промпт, вектор, набор знаний, каталог инструментов, файлы. Соединять можно только одинаковые типы — попытка связать несовместимое отклоняется с объяснением, что именно не сходится.
5. Линия агента
Каноническая линия агента с инструментами:
Канал/Чат → Роль → Память → Инструменты → LLMБез памяти и инструментов схема тоже работает — просто с меньшими возможностями. Роль → модель напрямую — минимальный агент. За что отвечает каждый блок: таблица в Как устроен агент.
6. Настройки живут в полях
Адрес модели, ключ, характер агента, глубина памяти — это поля ноды, они не проходят по проводам. Провода — только для данных между нодами. Это разделение делает схему читаемой: связи показывают потоки данных, поля — конфигурацию.
7. Запуск — по событию
Схема просыпается от терминальной ноды: сообщение в канале, письмо в тестовом чате, файл в облаке. Пока события нет — агент спит и не тратит токены. Повторно не пересчитывается то, что не менялось.
8. Антипаттерны
| Нельзя | Почему |
|---|---|
| Соединять порты разных типов | платформа отклонит связь |
| Два провода «туда и обратно» | провод уже двусторонний |
| Одна нода «делает два действия» | одна нода — одна задача |
| Инструменты подключать к роли | для них есть нода Инструменты |
| Вставлять инструменты в промпт вручную | это делает нода Инструменты |
| Две роли на один канал | клиент получит два ответа |
| Тестировать через живой канал | проверяйте тестовым чатом, канал включайте последним |
9. Чеклист сборки
- Есть точка входа: канал или тестовый чат
- Роль с характером: поле роли или гармоника вида «характер»
- На пару нод — один провод
- Обязательные входы соединены, модель заполнена: провайдер, адрес, название модели
- Знания подключены: напрямую в роль или через семантический отбор
- Канал выключен до запуска, проверка — в тестовом чате
Контракт ноды
У каждой ноды один и тот же контракт — по нему платформа проверяет сборку, по нему читает схему внешний ИИ-агент:
| Часть контракта | Что это |
|---|---|
| Назначение | Что нода делает — одна задача |
| Inputs | Что принимает, что из этого обязательно |
| Outputs | Что выдаёт |
| Fields | Параметры конфигурации |
| Type constraints | С чем может соединяться |
| Execution rule | Когда исполняется |
| State/cache rule | Когда результат может быть переиспользован |
Контракт не документируется отдельно от системы — он и есть система: в кабинете он виден в описании ноды, через API доступен агенту как схема ноды (get_node_schema, каталог инструментов) — источник правды, а не копия.
Соблюдение законов — не ограничение ради ограничений: схема, прошедшая проверку сборки, ведёт себя предсказуемо и не ломается молча на живом клиенте.