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

AI Agents Taking the Reins of Software Development Work

AI агентите ја преземаат контролата врз работата во развојот на софтвер

Од автодовршување до делегирање

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

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

Ова го менува прашањето за техничките тимови. Повеќе не е само: „Може ли ВИ да пишува код?“ Подоброто прашање е: „Кои делови од нашиот инженерски циклус можат безбедно да се делегираат, проверуваат и подобруваат?“

За што се најпогодни агентите

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

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

Други ветувачки примени вклучуваат:

  • Сумирање pull request и истакнување датотеки со најголем ризик при преглед.
  • Генерирање тест-случаи од експлицитни критериуми за прифаќање и постојни конвенции за тестирање.
  • Следење разлики во конфигурацијата низ околини.
  • Ажурирање рутинска документација по прегледана промена на интерфејс.
  • Класифицирање влезни пријави и идентификување недостасувачки детали за репродукција.
  • Пребарување кодна база за застарени обрасци и подготовка тесно ограничени миграции.

Заедничката нишка не е „ВИ е попаметна од тимот.“ Туку дека системот може да носи контекст низ неколку рутински чекори без да ја изгуби наведената цел.

Разликата помеѓу демо и сигурен работен тек

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

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

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

Дајте им на агентите тесни дозволи

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

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

Направете ја валидацијата дел од задачата

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

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

Каде агентите најчесто грешат

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

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

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

Како да воведете агенти без да создадете хаос

Најдобриот пат за усвојување е намерно негламурозен: изберете еден работен тек, дефинирајте успех, измерете го квалитетот на резултатите и проширувајте само откако тимот ќе ги разбере начините на неуспех. Избегнувајте да почнете со широка наредба „користете агенти насекаде.“ Тоа создава нерамномерни практики и го отежнува утврдувањето дали системот навистина помага.

Практичното воведување може да следи едноставна низа:

  1. Изберете повторлива задача со низок ризик и постоечки метод за проверка.
  2. Документирајте ги дозволените алатки, забранетите дејства и очекуваниот формат на излезот.
  3. Барајте од агентот да ги открие претпоставките и да обезбеди diff или извештај што може да се прегледа.
  4. Искусните инженери нека ги прегледуваат раните извршувања внимателно и нека ги бележат повторливите грешки.
  5. Подобрете ги работниот тек, контекстот и заштитните механизми пред да ја зголемите автономијата.

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

Новата вештина е оркестрација

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

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

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

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

Mihajlo

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