AI-агенты
Узел agent вызывает LLM с составленным контекстом и набором инструментов. Это центральный AI-компонент betool.
Триада роль / миссия / выборка
Agent сам по себе не знает, что делать. Им управляют три вещи:
- Роль — как он работает (стиль, ограничения, позиция). Короткая. Переиспользуется между агентами.
- Миссия — что он должен сделать для этого конкретного сценария использования. Более длинная. Специфична для pipeline.
- Выборка — какие данные контекста он получает на вход. Составляется явно.
Agent, который ведёт себя неправильно, почти всегда имеет проблему с ролью, миссией или выборкой — а не с моделью. Прежде чем обновлять модель, проверьте сначала эти три вещи.
Настройка выборки
Выборка определяет ровно то, что видит LLM. Пять типов:
| Тип | Эффект |
|---|---|
key | Читает ctx.results[<key>] — например, exchange.intent |
prefix | Конкатенирует все ключи под префиксом — например, project.* |
literal | Сырой текст с плейсхолдерами — например, "Question: {user_message}" |
file | Прикрепляет файл (мультимодальность) — например, webhook.payload._files |
history | Включает N предыдущих ходов (нативный многоходовый режим) |
Первые четыре составляют user_message для текущего хода. history — это ортогональный канал, передаваемый в массиве LLM messages[].
Нет запасного варианта во время выполнения. Если выборка пуста, LLM получает "" и логирует предупреждение. Вы должны явно включить всё, что нужно агенту — никакой магии.
LLM-модель
Выбирается из моделей, настроенных в разделе Администрирование → Модели. Вы можете:
- Закрепить конкретную модель (например,
claude-opus-4-7). - Использовать модель организации по умолчанию.
- Определить запасной вариант (если основная модель даёт сбой, переключиться на вторичную).
Инструменты
Инструменты — это функции, которые LLM может вызывать. Вы выбираете их из каталога:
- Глобальные инструменты —
knowledge.search,web.fetch,compute.now… - Канальные инструменты — для голосового pipeline:
voice.barge_in,voice.hangup,voice.transfer… - Доменные инструменты — создаваемые вашими операторами (например,
crm.create_ticket, раскрываемый через узел operator).
Agent видит только те инструменты, которые действительно достижимы в его контексте выполнения. Агенту в email-pipeline голосовой инструмент предложен не будет.
Формат вывода
Три варианта:
- Свободный текст — для ответов, обращённых к пользователю.
- Структурированный JSON — agent должен произвести JSON, соответствующий заданной схеме (строго валидируется).
- Только вызов инструмента — agent ничего не пишет: он либо вызывает инструмент, либо не делает ничего.
Режим JSON обязателен для агентов, чей вывод поступает на вход нижестоящего condition или другого агента.
Лучшие практики
- Описывайте инструменты точно. Описание, которое видит LLM, должно охватывать: ЧТО, КОГДА ИСПОЛЬЗОВАТЬ, КОГДА ИЗБЕГАТЬ, ФОРМАТ. Слишком короткое описание означает, что LLM угадывает — а это невидимые баги.
- Тестируйте с помощью benchmark. См. Бенчмарки.
- Сохраняйте миссию согласованной. Миссия, которая меняется на протяжении 3 версий, означает регрессирующего агента. Версионируйте свои миссии.
Стоимость
См. Тарифы. С BYOK вы платите своему LLM-провайдеру напрямую. В противном случае рассчитывайте приблизительно на 30 кредитов за 1K входных токенов и 90 за 1K выходных токенов.