AI (Вештачка Интелигенција)

When AI Agents Start Owning Your Code Workflow

Кога AI агентите ќе почнат да управуваат со вашиот работен процес со кодот

Најважната промена во развојот на софтвер со помош на ВИ не е тоа што моделот може да напише функција. Туку тоа што агентот сега може да добие исход, да прегледа кодна база, да направи план, да измени неколку датотеки, да изврши проверки и да се врати со предложен резултат.

Тоа е поинаков вид на предност. Исто така, создава поинаков вид на одговорност.

Автоматското довршување го задржува развивачот цврсто во процесот: барате линија, веднаш ја оценувате и продолжувате. Агентот работи низ поширок дел од работниот тек. Може да избира датотеки, да заклучува конвенции, да повикува алатки, да повтори неуспешна команда и да одлучи дека една промена бара друга. Штом ќе се случи тоа, суштинското прашање повеќе не е „Може ли оваа ВИ да произведе код?“ Туку станува „На која работа треба да ѝ се довери на овој систем да ја поседува и под какви контроли?“

Сопственоста се однесува на одлуки, не на притискање копчиња

Да се нарече агент „сопственик“ не значи да му се даде неограничено овластување. Тоа значи да му се додели ограничена одговорност со јасна дефиниција за завршеност.

На пример, „ажурирај ја зависноста“ е недоволно прецизно. Подобра задача е: ажурирај библиотека до компатибилна верзија, приспособи ги директните употреби засегнати од промената, изврши го релевантниот пакет тестови и сумирај го секој нерешен ризик за компатибилност. Агентот има цел, ограничувања и начин да покаже напредок.

Добрите граници на сопственост обично се потесни отколку што тимовите првично очекуваат. Агентите се особено корисни кога задачата има повторливи механики, но сепак има корист од расудување:

  • Додавање тестови за постојно однесување и идентификување нетестирани гранични случаи.
  • Извршување механичка миграција на API низ репозиториум.
  • Следење грешка низ дневници, кодни патеки и неодамнешни промени, а потоа предлагање минимална закрпа.
  • Генерирање контролна листа за издание од конвенциите на репозиториумот и изменетите компоненти.
  • Прегледување барање за повлекување за доследност со локалните обрасци и наведените барања.

Ова не се тривијални задачи. Тоа се задачи во кои агентот може да го забрза истражувањето и извршувањето, додека човекот останува одговорен за одлуката што е важна.

Дајте им на агентите работен простор, не нејасна желба

Повеќето разочарувачки резултати од агенти почнуваат со двосмислено барање. „Подобри го справувањето со грешки“ може да значи додавање повторни обиди, менување корисничка порака, зачувување повеќе контекст, бележење телеметрија или редизајнирање на текот на контролата. Агентот ќе ги пополни празнините со претпоставки. Понекогаш тие претпоставки ќе бидат разумни. Понекогаш ќе бидат скапи.

Посилниот опис на задачата го наведува целното однесување, границите и доказите што се бараат пред завршување. Може да вклучува:

  • Релевантната услуга, компонента или корисничко патување.
  • Што не смее да се промени, како што се јавните интерфејси или шемата на базата на податоци.
  • Постојни тестови, конвенции или проектни документи што треба да ја насочуваат работата.
  • Команди или проверки што воспоставуваат доверба.
  • Услови што бараат агентот да запре и да побара преглед.

Ова не е бирократија. Тоа е интерфејс. Луѓето работат подобро со јасни договори, а исто така и агентите.

Разгледајте барање за додавање справување со повторни обиди околу мрежен повик. Способен агент не треба само да го обвитка повикот во јамка. Треба да разликува привремени неуспеси од невалидни барања, да спречи дупли несакани ефекти, да постави ограничување за повторни обиди, да го зачува оригиналниот контекст на неуспехот и да осигури дека повикувачот сè уште може соодветно да одговори кога сите обиди ќе не успеат. Ако операцијата создава плаќање, испраќа е-пошта или менува споделена состојба, безбедниот одговор може да зависи од идемпотентноста, а не само од повторните обиди.

Практичната поука е едноставна: делегирајте исходи само откако ќе ги опишете безбедносните својства на тие исходи.

Проверката станува вистинското тесно грло

Кога кодот е скап за производство, тимовите природно поминуваат голем дел од времето пишувајќи го. Кога кодот станува евтин за производство, оскудниот ресурс се префрла кон проверка: разбирање на намерата, проверување на точноста, оценување на безбедносните импликации и одлучување дали промената припаѓа во системот.

Тоа не ги прави развивачите помалку важни. Го прави нивното расудување повредно.

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

Поради таа причина, работните текови со агенти треба да ја направат проверката експлицитна, наместо да ја третираат како незадолжителен последен чекор. Корисен извештај за завршеност одговара на прашања како:

  • Што се промени и зошто?
  • Кои датотеки или интерфејси намерно беа оставени недопрени?
  • Кои проверки беа извршени и што утврдија?
  • Што не успеа во текот на работата, ако воопшто нешто не успеа, и како беше обработено?
  • На кои претпоставки сè уште им е потребна човечка одлука?

Извештајот е важен затоа што претвора непрозирен налет на автоматизација во инженерска работа што може да се прегледа. Исто така, го обучува тимот да разликува докази од доверба. „Агентот вели дека е поправено“ не е доказ. Насочен тест, репродуцирливо сценарио, внимателен diff и јасно објаснување се.

Користете ги дозволите како алатка за дизајн

Безбедноста на агентите често се дискутира како проблем на моделот, но многу реални контроли се вообичаени инженерски контроли. Одделни средини. Акредитиви со најмали привилегии. Заштитени гранки. Задолжителен преглед. Токени со ограничен опсег. Дневници што може да се ревидираат. Повратни распоредувања.

Агент што може да чита репозиториум и да извршува тестови има многу поинаков ризичен профил од агент што може да менува продукциски податоци, да ротира тајни, да спојува код или да објавува издание. Не ги обединувајте тие дозволи во една широка категорија наречена „автоматизација“. Дајте му на агентот најмал сет способности што е потребен за неговата тековна работа.

За работен тек насочен кон распоредување, разумна низа често е:

  1. Агентот подготвува промена и извршува локални или изолирани проверки.
  2. Човек го прегледува diff-от и доказите.
  3. Континуираната интеграција ја потврдува промената во контролирана средина.
  4. Посебен, експлицитно овластен чекор го промовира одобрениот артефакт.
  5. Постапките за следење и враќање назад остануваат достапни по изданието.

Ова може да изгледа побавно отколку да му се даде на агентот директен пат до продукција. Во практика, ја зачувува брзината таму каде што брзината е корисна и внесува намерно триење таму каде што грешките тешко се поништуваат.

Градете работни текови со агенти околу неуспехот

Сигурните системи претпоставуваат дека командите не успеваат, зависностите се недостапни, тестовите се нестабилни и барањата се нецелосни. На агентите им е потребна истата дисциплина.

Робустен агент не треба бесконечно да повторува неуспешна дејство или тивко да избере ризично заобиколно решение. Треба да има ограничени повторни обиди, да зачува корисен излез, да ја промени стратегијата само кога причината е јасна и да ескалира кога ќе достигне граница на дозвола или двосмислена одлука за производот.

Тимовите треба однапред да ги дефинираат тие точки на ескалација. Агентот може автоматски да поправи форматирање. Може да предложи миграција на база на податоци. Треба да запре пред да примени деструктивна миграција, да промени правило за контрола на пристап, да изложи нова јавна крајна точка или да реши конфликт меѓу безбедноста и однесувањето на производот без човечки избор.

Таа разлика е местото каде што живее зрелото усвојување: не во преправањето дека агентот е непогрешлив, туку во дизајнирањето работен тек што останува корисен кога е несигурен.

Улогата на развивачот се поместува нагоре по стекот

Како што агентите преземаат повеќе имплементациска работа, силните развивачи ќе поминуваат повеќе време во обликување проблеми, поставување ограничувања, прегледување на однесувањето на системот и подобрување на средината во која работи автоматизацијата. Чистата архитектура, сигурните тестови, јасната документација и дисциплинираните практики за распоредување стануваат уште повредни бидејќи на агентите им даваат подобра основа врз која можат да стојат.

Тимовите што ќе имаат најголема корист нема да бидат оние што бараат ВИ да го замени инженерството. Ќе бидат оние што ја претвораат повторливата инженерска работа во добро ограничени, набљудливи, повратни циклуси.

ВИ агентите можат речиси веднаш да направат работниот тек со код да изгледа побрз. Трајната предност доаѓа од нешто потивко: градење доволно јасност и контрола за автоматизацијата да заработи доверба, една ограничена одговорност во исто време.

Портрет на автор на блогот

Mihajlo

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