Савладавање Genkit Middleware-а за агентске апликације

Последње ажурирање: КСНУМКС јуна КСНУМКС
  • Генкитов мидлвер вам омогућава да пресретнете и модификујете циклус генерисања вештачке интелигенције користећи моделске куке, алате и општи ток.
  • Укључује изворне функције за аутоматско поновно покушавање, прелазак између модела, контролу датотека и одобравање људских алата.
  • Компатибилан је са TypeScript, Go и Dart, што олакшава креирање слојева безбедности и видљивости без промене пословне логике.

Genkit Middleware

Ако правите вештачке интелигенције (AI) апликације, знате да није све у писању савршеног промпта. Када прелазите са прототипа на нешто што заиста функционише у продукцији, наилазите на препреке попут временских ограничења API-ја, ограничења квота или потребе за људском валидацијом критичних радњи. Ту долази до изражаја Genkit Middleware , Google решење дизајнирано да омогући програмерима да додају слојеве контроле без потребе да преписују цео код свог агента.

У суштини, говоримо о систему пресретача који се поставља око позива за генерисање, уместо да обавија сваку функцију. generate() У блоку ручне контроле можете дефинисати низ корака кроз које захтев мора да прође. Ово омогућава архитектуру ваших агената... много чистији и модуларнији, одвајајући логику апликације од међусекторских питања као што су безбедност система, видљивост и отпорност.

Како тачно функционише систем за пресретање?

Архитектура Genkit Middleware-а

Да бисте ово боље разумели, размислите о животном циклусу захтева у Genkit-у. Типично, модел генерише одговор, одлучује да ли треба да користи алат, извршава тај алат и поново обрађује резултат. Genkit-ов посреднички софтвер није само уско грло; он нуди три различите сидришне тачке за интервенцију у овом процесу:

  • Генериши куку: Покреће се само једном по генерацијском циклусу. То је идеално место за убризгавање инструкција у систем или изменити поруке пре него што почну да лете.
  • Кука по моделу: Обавија директан позив ка API-ју модела. Неопходан је за управљање аутоматски поновни покушаји, имплементирајте кеш меморије или евидентирајте колико је времена потребно LLM-у да одговори.
  • Алат за куку: Делује баш када се алат спрема да се покрене. Савршен је за креирање системи одобравања где човек мора дати одобрење пре него што агент обрише датотеку или изврши плаћање.
  ГитХуб Цопилот: Све што треба да знате о овој АИ програмирању

Ова структура се понаша слично као посреднички софтвер који се налази у оквирима попут Express-а или Koa-е, функционишући као лук: захтев улази кроз спољашњи слој, стиже до центра (модела), а затим поново излази, пролазећи кроз слојеве обрнутим редоследом. Најбоље од свега је што можете сложити више посредничких софтвера у низ, чиме се дефинише тачан редослед извршавања.

Каталог унапред инсталираних посредничких софтвера

Функције Genkit Middleware-а

Да не бисмо морали поново да измишљамо точак, пакет @genkit-ai/middleware Већ долази са неколико алата спремних за употребу. Један од најкориснијих је... поновни покушајикоји користи експоненцијални алгоритам враћања уназад са подрхтавањем. Ово нас спречава да преоптеретимо API када постоје пролазне грешке као што је RESOURCE_EXHAUSTED o UNAVAILABLEподношење захтева много робуснији у случају тренутних кварова.

Ако квота вашег примарног модела истекне, у помоћ прискаче резервни посреднички софтвер . Омогућава вам да конфигуришете листу алтернативних модела тако да, ако први не успе, захтев се аутоматски усмерава на мањи или јефтинији, спречавајући крајњег корисника да види грешку. Ово је витална стратегија за одржавање континуитета услуге у окружењима са великом потражњом.

Што се тиче безбедности, имамо посреднички софтвер одобрење алатаОвај систем креира белу листу безбедних алата; свака радња која није на тој листи ће изазвати грешку. ToolInterruptErrorприсиљавајући систем да паузира док неко не потврди акцију. Ово је погоршано посредничким софтвером од систем датотекашто моделу даје приступ локалним датотекама, али строго ограничено у коренски директоријум како би се спречило да вештачка интелигенција шпијунира тамо где не би требало.

  Гоогле лансира Гемини 2.0 Фласх и Про са побољшањима вештачке интелигенције за све

Управљање алатима Genkit

Коначно, имамо функционалност вештинеОвај посреднички софтвер скенира фасцикле у потрази за датотекама SKILL.md и убризгава их у системски промпт. То је веома елегантан начин за управљање знањем агента, омогућавајући му да отпремите одређене вештине на захтев без попуњавања главног промпта непотребним текстом.

Креирање прилагођеног посредничког софтвера

Развој прилагођеног мидлвера

Када изворне опције нису довољне, Genkit нам омогућава да направимо сопствене пресретаче користећи функцију generateMiddlewareОвај алат нам омогућава да дефинишемо конфигурационе шеме користећи Zod, осигуравајући да су параметри које прослеђујемо исправно и откуцаноМожемо да креирамо било шта, од једноставних логера који бележе сваки улазак и излазак, до сложених система за писање осетљивих података (PII).

Веома моћан пример употребе био би имплементација филтера садржаја . Могли бисте да креирате модел хоок који анализира одговор и, ако открије забрањене речи или интерне податке о ценама, блокира или чисти одговор пре него што стигне до корисника. Такође је могуће управљати квотама по кориснику упитом бази података у хоок-у за генерисање пре него што се дозволи наставак позива.

Разлике између имплементација и екосистема

Генкит подршка за више платформи

Иако је концепт универзалан, постоје нијансе у зависности од језика. У TypeScript-у, систем је веома динамичан и омогућава дефинисање посредничког софтвера у датотекама. .prompt кроз поље useУ Гоу, имплементација је ригиднија јер је у питању компајлирани језик, што је захтевало креирање регистрација посредничког софтвера да би се могла конвертовати текстуална имена у функционалне објекте током извршавања.

Важно је не мешати Genkit са Google-овим Agent Development Kit-ом (ADK). Иако је ADK дизајниран за сложене и ресурсоемке вишеагентске системе изграђене на GCP инфраструктури, Genkit је идеална опција за додавање могућности агента постојећим апликацијама (веб, мобилне итд.). Штавише, цео ток посредничког софтвера може се пратити из Genkit Developer UI-ја , што вам омогућава да тачно пратите који је хоок модификовао захтев и путању којом је дошао до коначног резултата.

  Све о низовима у програмирању: типови, употреба и примери

Долазак овог система трансформише функцију генерисања у истински композибилни цевовод . Интегрисањем обраде грешака, безбедности датотека и људске валидације у посебан слој, развој агента постаје много професионалнији процес и мање склон катастрофалним грешкама у производњи.