Копирование блоков, перенос баз данных и аналитика запусков
В последних релизах Agent Platform мы добавили копирование блоков через буфер обмена и перенос баз данных между проектами ZIP-архивом. Новые графики в разделе Обзор показывают, где запуски завершаются с ошибкой и сколько времени они занимают, а из журнала выполнения больше не пропадают вызовы модели в потоковом режиме.
Что нового
- ⚠️ Важные изменения: из настроек перебивания телефонного агента убран один из вариантов.
- Копирование и вставка блоков: переносите блоки процесса между проектами через буфер обмена.
- Экспорт и импорт баз данных: выгружайте базу в ZIP-архив и создавайте из него новую в другом проекте или аккаунте.
- Графики ошибок и времени выполнения: смотрите, где процесс завершается с ошибкой и сколько времени занимают запуски.
- Вызовы модели в журнале выполнения: потоковые ответы модели больше не пропадают из журнала, а при ошибке виден ответ провайдера.
- Python-функции из нескольких инструкций: код работает с опцией Сохранять результат в контекст и не ломается из-за специальных символов.
- Заполнение пауз в телефонии: фразы не звучат перед первой репликой, а часть ответа не теряется.
- Другие улучшения: циклы, ссылки на базы знаний, форма телефонного канала.
⚠️ Важные изменения
Из настроек телефонного агента убрали вариант перебивания Договаривает фразу, а затем прерывается. В поле Действие агента остались Не реагирует и Прерывает ответ сразу.
Если в проекте указан убранный вариант, блок «Агент» покажет предупреждение и не сохранится, пока вы не выберете другое значение.
Копирование и вставка блоков
Похожие фрагменты процесса больше не нужно собирать заново. Выделите блоки — рамкой или кликом с Ctrl — и перенесите их через Ctrl+C и Ctrl+V. На macOS это Cmd+C и Cmd+V.
Группа блоков переносится вместе со связями между ними, поэтому схему не приходится собирать по частям. Блоки попадают в системный буфер обмена. Вставить их можно в другом процессе, проекте или вкладке браузера.
Переносится не все: ссылки на блоки, оставшиеся за пределами выделения, очищаются — их нужно указать заново. А блоки функций, которых в этом проекте нет, при вставке пропускаются.
Экспорт и импорт баз данных
Базу данных теперь можно выгрузить в ZIP-архив и создать новую базу из такого архива. Раньше было невозможно перенести базу между проектами или аккаунтами через раздел Базы данных.
Чтобы выгрузить базу, откройте меню на ее карточке и выберите Скачать ZIP.
Чтобы создать базу из архива:
- Нажмите Создать базу данных.
- Введите название и выберите уровень доступа.
- В поле Импорт из ZIP-архива нажмите Выбрать файл и укажите архив.
- Нажмите Добавить.
Название и уровень доступа берутся из формы, а не из архива, поэтому импорт всегда создает новую базу: добавить записи в существующую нельзя. Скачивать и загружать можно базы с уровнем доступа ACCOUNT и PROJECT.
Экспорт и импорт баз данных доступны пользователям с ролью AP_ADMIN.
Графики ошибок и времени выполнения
В разделе Обзор появились два новых графика:
-
Запуски с ошибками показывает, сколько запусков процесса завершились ошибкой. В режиме Доля от всех видны и все запуски, и запуски с ошибками, а в режиме Всего за период — только ошибки.
Чтобы изучить конкретные результаты, нажмите на точку на графике — раздел История запусков откроется в новой вкладке с уже примененными фильтрами.
-
Время выполнения по умолчанию показывает медианное время. Если Задать порог в секундах или минутах, график покажет запуски В пределах порога и Выше порога. Запуск ровно в порог попадает В пределах порога.
В разделе История запусков также появились фильтры Длительность, сек и Статус ошибки. Для периодов до 7 дней теперь также доступна группировка По часам.
Вызовы модели в журнале выполнения
Теперь вызовы модели фиксируются в журнале даже в потоковом режиме, когда агент получает ответ по частям. Запись Запрос к LLM содержит тело запроса, итоговый собранный ответ и данные о токенах. Вместе с этим в телефонных проектах реплики агента стали видны в разделе Сессии.
Помимо этого, стало проще отлаживать запросы. Если провайдер возвращает ошибку, в блоке Исходящие данные (внутри Запрос к LLM) вы увидите точный код и текст ответа. Пустые ответы провайдера теперь корректно обрабатываются и показываются как <empty>.
Python-функции из нескольких инструкций
При включенной опции Сохранять результат в контекст код Python-функции теперь может состоять из нескольких инструкций — раньше такая функция завершалась синтаксической ошибкой. Пустые функции и функции, состоящие только из комментариев, также обрабатываются корректно.
Кроме того, функции теперь безопасно подключать к агенту в качестве инструмента: специальные символы в именах параметров, названиях инструментов и ключах контекста корректно обрабатываются и не приводят к ошибкам при вызове.
Заполнение пауз в телефонии
Фразы из раздела Заполнение пауз в настройках блока «Агент» больше не звучат перед самой первой репликой агента — только когда пауза действительно возникает по ходу разговора.
Если список фраз пуст, часть ответа агента больше не теряется: раньше платформа ждала фразу, которой в списке нет.
Другие улучшения
- Блок «Цикл». Цикл Повторить N-раз (for) с шагом 0 больше не ломает процесс: раньше процесс с таким циклом не запускался, даже если цикл не должен был выполнить ни одной итерации. Теперь такой цикл разрешен, а если настройки ведут к бесконечному повторению, на блоке появляется предупреждение.
- Переход в базу знаний. У интеграции База знаний RAG в меню карточки появился пункт Перейти в базу знаний, а в форме создания — ссылка на список баз знаний.
- Форма телефонного канала. В настройках канала Телефонный канал параметры SIP-транка оператора собраны в отдельную карточку SIP-транк оператора, а поле выбора способа подключения называется Подключение.
- Язык для синтеза речи SaluteSpeech. В форме интеграции Голос TTS выберите учетные данные SaluteSpeech — в настройках провайдера появится новое поле Язык: код языка, на котором будет синтезироваться речь.
- Ответ на вызов триггера. Триггер, вызванный по HTTP не в тестовом канале, отвечает сразу, не дожидаясь, пока процесс отработает до конца.
Исправления
- Учетные данные в проекте. При повторном входе в проект в разделе Учетные данные показывались записи уровня аккаунта вместо записей проекта, а сам раздел переключался в аккаунтный вид. Теперь список и вид раздела соответствуют проекту.
- Завершение звонка в телефонии. На движке версии 2 встроенная функция
Dialer.hangUp()не завершала звонок: команда уходила в телефонный канал в формате, который канал не распознает, и разговор продолжался. Теперь звонок завершается. На движке версии 1 функция работала и раньше. - Задержка при завершении и переводе звонка. Если агент вызывал инструмент, который кладет трубку или переводит звонок, действие применялось только после того, как заканчивалось ожидание ответа абонента: с включенной реакцией на молчание абонент успевал услышать переспросы и паузу. Теперь действие применяется сразу после реплики агента.
- Загрузка проекта из некорректного архива. Архив без обязательных файлов вызывал уведомление Internal system error без описания. Теперь появляется уведомление Не удалось загрузить проект, в котором перечислено, каких файлов не хватает.
- Escape в правилах маскирования. В списке Применять к проектам клавиша Esc закрывала всю панель правила вместе с несохраненными изменениями. Теперь она закрывает только список.
- Первое сообщение в канале ВКонтакте. Если клиент начинал диалог свободным текстом, до него доходила только первая реплика приветствия агента — остальные, например изображения или аудио, терялись. Теперь ответ агента доставляется целиком.
Обновление уже доступно для всех пользователей. Будем рады вашим отзывам в Telegram-чате! 😎