Освоение промежуточного ПО Genkit для агентских приложений

Последнее обновление: 22-де-де Junio ​​2026
Автор: TecnoDigital
  • Промежуточное ПО Genkit позволяет перехватывать и изменять цикл генерации ИИ с помощью обработчиков моделей, инструментов и общего алгоритма работы.
  • В него включены встроенные функции для автоматического повтора попыток, переключения между моделями, управления файлами и подтверждения ввода данных пользователем.
  • Он совместим с TypeScript, Go и Dart, что позволяет легко создавать уровни безопасности и мониторинга без изменения бизнес-логики.

Промежуточное ПО Genkit

Если вы разрабатываете приложения с использованием ИИ, вы знаете, что дело не только в написании идеального запроса. При переходе от прототипа к работающему в производственной среде продукту вы сталкиваетесь с такими препятствиями, как тайм-ауты API, ограничения квот или необходимость проверки критически важных действий человеком. Именно здесь на помощь приходит Genkit Middleware — решение от Google, разработанное для того, чтобы позволить разработчикам добавлять уровни контроля без необходимости переписывать весь код агента.

По сути, речь идёт о системе перехватчиков, которая размещается вокруг вызовов генерации, а не оборачивается вокруг каждой функции. generate() В блоке ручного управления можно определить последовательность шагов, которые должен пройти запрос. Это позволяет оптимизировать архитектуру ваших агентов... гораздо чище и модульнееотделяя логику приложения от сквозных вопросов, таких как безопасность системы, наблюдаемость и отказоустойчивость.

Как именно работает система перехвата?

Архитектура промежуточного программного обеспечения Genkit

Чтобы лучше это понять, рассмотрим жизненный цикл запроса в Genkit. Как правило, модель генерирует ответ, решает, нужно ли использовать инструмент, выполняет этот инструмент и повторно обрабатывает результат. Промежуточное ПО Genkit — это не просто узкое место; оно предлагает три различных точки опоры для вмешательства в этот процесс:

  • Создать хук: Она запускается только один раз за цикл генерации. Это идеальное место для внедрить инструкции в систему или изменить сообщения до того, как они начнут рассылаться.
  • Крючок по модели: Он инкапсулирует прямой вызов API модели. Это необходимо для управления. автоматические повторные попыткиВнедрите кэширование или регистрируйте время ответа LLM.
  • Инструмент «крючок»: Она срабатывает именно тогда, когда инструмент вот-вот начнет работать. Она идеально подходит для создания системы утверждения где перед удалением файла или совершением платежа агент должен дать свое согласие.
  Уроки по языкам программирования: полное руководство для начала работы и дальнейшего развития.

Эта структура ведет себя аналогично промежуточному ПО, используемому во фреймворках типа Express или Koa, функционируя как луковица: запрос входит через внешний слой, достигает центра (модели), а затем снова выходит, проходя через слои в обратном порядке. Самое замечательное, что вы можете объединять несколько промежуточных ПО в массив, определяя таким образом точный порядок выполнения.

Каталог предустановленных промежуточных программ

Функции промежуточного ПО Genkit

Чтобы нам не пришлось заново изобретать велосипед, необходимо разработать упаковку. @genkit-ai/middleware В комплект уже входит несколько готовых к использованию инструментов. Один из самых полезных — это… повторные попыткикоторый использует экспоненциальный алгоритм обратного хода с учетом дрожания. Это предотвращает перегрузку API при возникновении временных ошибок, таких как... RESOURCE_EXHAUSTED o UNAVAILABLEподача заявки гораздо более надежный в случае кратковременных сбоев.

Если квота вашей основной модели исчерпана, на помощь приходит резервное промежуточное ПО . Оно позволяет настроить список альтернативных моделей таким образом, чтобы в случае отказа первой модели запрос автоматически перенаправлялся на меньшую или более дешевую, предотвращая появление ошибки у конечного пользователя. Это жизненно важная стратегия для поддержания непрерывности обслуживания в средах с высокой нагрузкой.

Что касается безопасности, у нас есть промежуточное программное обеспечение, состоящее из... утверждение инструментаЭта система создает белый список безопасных инструментов; любое действие, не включенное в этот список, вызовет ошибку. ToolInterruptErrorЭто приводит к приостановке работы системы до подтверждения действия кем-либо. Ситуация усугубляется наличием промежуточного программного обеспечения. файловая системачто предоставляет модели доступ к локальным файлам, но строго ограничено в корневой каталог, чтобы предотвратить слежку ИИ за теми местами, где это нежелательно.

  Машинное обучение с использованием JavaScript: библиотеки, преимущества и реальные примеры

Управление инструментами Genkit

Наконец, у нас есть функциональность навыкиЭто промежуточное программное обеспечение сканирует папки на наличие файлов. SKILL.md и внедряет их в системную подсказку. Это очень элегантный способ управления знаниями агента, позволяющий ему... загрузите конкретные навыки по запросу, не заполняя основное поле запроса ненужным текстом.

Создание пользовательского промежуточного программного обеспечения

Разработка пользовательского промежуточного программного обеспечения

Когда встроенных возможностей недостаточно, Genkit позволяет создавать собственные перехватчики, используя соответствующую функцию. generateMiddlewareЭтот инструмент позволяет нам определять схемы конфигурации с помощью Zod, гарантируя, что передаваемые нами параметры соответствуют требованиям. правильно и напечатаноМы можем создавать что угодно, от простых регистраторов, записывающих каждый вход и выход, до сложных систем для записи конфиденциальных данных (PII).

Очень эффективным вариантом использования может стать реализация контентного фильтра . Можно создать обработчик модели, который анализирует ответ и, если обнаруживает запрещенные слова или внутренние данные о ценах, блокирует или очищает ответ до того, как он достигнет пользователя. Также можно управлять квотами для каждого пользователя , обращаясь к базе данных в обработчике генерации перед тем, как разрешить дальнейший вызов.

Различия между реализациями и экосистемой.

Многоплатформенная поддержка Genkit

Хотя эта концепция универсальна, существуют нюансы в зависимости от языка. В TypeScript система очень динамична и позволяет определять промежуточное ПО в файлах. .prompt через поле useВ Go реализация более жёсткая, поскольку это компилируемый язык, что потребовало создания регистрация промежуточного программного обеспечения иметь возможность преобразовывать текстовые имена в функциональные объекты во время выполнения.

Важно не путать Genkit с комплектом разработки агентов Google (ADK). В то время как ADK предназначен для сложных и ресурсоемких многоагентных систем, построенных на инфраструктуре GCP, Genkit является идеальным вариантом для добавления возможностей агентов в существующие приложения (веб, мобильные и т. д.). Кроме того, весь процесс работы промежуточного программного обеспечения можно отслеживать из пользовательского интерфейса разработчика Genkit , что позволяет точно определить, какой хук изменил запрос и какой путь он прошел до конечного результата.

  Как создать ИИ-агента на Python с нуля

Внедрение этой системы преобразует функцию генерации в действительно компонуемый конвейер . Благодаря интеграции обработки ошибок, защиты файлов и проверки человеком в отдельный слой, разработка агентов становится гораздо более профессиональным процессом и менее подверженным катастрофическим ошибкам в производственной среде.