AI агентите почнуваат да го преземаат животниот циклус на развој на софтверот
Со години, животниот циклус на развој на софтвер се опишува како низа човечки предавања: производот дефинира потреба, инженерите го градат, тестерите го валидираат, операциите го распоредуваат, а поддршката известува што се случило потоа. Агентите со ВИ почнуваат да ја нарушуваат таа низа — не со замена на целиот синџир, туку со преземање одговорност за сè позначајни делови од него.
Важната промена не е тоа што асистентот може да напише функција врз основа на промпт. Таа е во тоа што системот може да добие цел, да го испита релевантниот контекст, да избере следно дејство, да користи алатки, да провери исход и да продолжи сè додека не достигне услов за запирање. Тоа е поблиску до сопственост отколку до автоматско довршување.
За развојните тимови, ова создава вистинска можност и вистински проблем со управувањето. Агент што може да отвори pull request може и погрешно да разбере барање. Агент што може да тријажира предупредување може и да засили погрешна претпоставка. Тимовите што ќе имаат најголема корист ќе ги третираат агентите како оперативни системи со ограничени одговорности, а не како магични соработници.
Од генерирање код до работа низ животниот циклус
Раните алатки за развој со ВИ беа фокусирани на локално забрзување: објаснување непознат код, изработка на нацрт-тестови, довршување шаблонски код или предлагање барање. Тоа и понатаму се корисни способности, но човекот го задржуваат задолжен за секој премин.
Агентите за животниот циклус работат низ премините. Добро дизајниран агент за задачи може да класифицира дојдовен извештај за грешка, да бара поврзани задачи, да побара недостасувачки детали за репродукција, да го идентификува веројатниот сопственик на услугата и да подготви концизен инженерски преглед. Агент за изданија може да состави белешки за изданието од споени промени, да провери дали постојат потребните одобренија и да означи распоредување на кое му недостига план за миграција.
Ниту една од тие задачи не е гламурозна. Токму затоа се важни. Испораката на софтвер содржи голема количина координација, пронаоѓање, споредување и следење до завршување. Често токму овие задачи ги забавуваат способните луѓе, а додаваат мала креативна вредност.
Што треба да значи „сопственост“
Сопственоста не значи неограничена овластеност. Во здрава инженерска организација, сопственоста значи одговорност за придвижување на дефиниран работен тек, при што состојбата, доказите и исклучоците се видливи.
За агент со ВИ, таа дефиниција треба да биде изречна. На агентот му се потребни јасна цел, дозволен сет алатки, сигурен контекст, начин да ја провери својата работа и безбедна патека за ескалација. Без тие елементи, тој само генерира веродостоен текст околу неизвесен процес.
Добри почетни одговорности
- Прием на задачи: нормализирајте извештаи, откривајте дупликати, идентификувајте недостасувачки детали и насочувајте ја работата во соодветната редица.
- Одржување тестови: предложете фокусирани ажурирања на тестови кога се менува однесувањето, потоа извршете го дозволениот пакет тестови и известете за резултатите.
- Подготовка на pull request: сумирајте промени, идентификувајте засегнати области и проверете ги вообичаените правила на складиштето пред човечка проверка.
- Координација на издание: соберете предуслови за распоредување, генерирајте контролна листа и истакнете отстапувања од договорениот процес.
- Поддршка при инциденти: соберете логови, неодамнешни промени, врски до упатства за постапување и контекст за услугата за човечкиот одговорен лице.
Овие одговорности се вредни бидејќи нивните исходи може да се проверат. Тие имаат и природни граници. Агент може да подготви временска линија на инцидент без да биде овластен да рестартира продукциски системи.
Контекстот е вистинскиот производ
Квалитетот на агентот помалку зависи од паметен промпт отколку од квалитетот на средината околу него. Модел не може сигурно да следи правило за распоредување што постои само во нечија меморија, во закопана нишка за разговор или на застарена вики-страница.
Тимовите треба да претворат повторливото расудување во достапен оперативен контекст: конвенции на складиштето, сопственост на услуги, критериуми за дефиниција на завршеност, команди за тестирање, контролни листи за изданија, упатства за постапување и правила за ескалација. Ова е корисно и без ВИ. Агентите едноставно ја прават поочигледна цената на недокументиран процес.
Контекстот исто така треба да има опсег. Да му се даде на агентот секој документ, секоја акредитива и секоја продукциска алатка не е зрелост; тоа е покана за непредвидливо однесување. Претпочитајте тесно пребарување и пристап до алатки специфичен за улогата. На агент за документација не му се потребни дозволи за распоредување. Асистент за изданија не треба да има пристап до податоци за клиенти само затоа што тие можат да бидат корисни во ретки случаи.
Проверката ја претвора автоматизацијата во инженерство
Агентите не треба да се оценуваат според тоа колку уверливо звучи нивниот излез. Треба да се оценуваат според тоа дали оставаат докази што човек или друг систем може да ги провери.
За промени во кодот, проверката може да вклучува форматирање, статичка анализа, насочени тестови и концизно објаснување за тоа што било и што не било извршено. За оперативен работен тек, таа може да ги вклучува точните прегледани записи, исполнетите ставки од контролната листа и причината поради која дејството било ескалирано наместо извршено.
Едноставен образец е да се бара од агентот да ја подели својата работа на три дела:
- Набљудувано: факти добиени од одобрени алатки или доставен контекст.
- Променето: навистина извршени дејства и нивните резултати.
- Неизвесно: претпоставки, недостасувачки информации и потребни човечки одлуки.
Оваа структура намалува чест неуспешен начин на работа: агентот тивко да третира заклучок како факт. Таа и ја забрзува проверката, бидејќи луѓето можат да го насочат вниманието кон расудување наместо да ја реконструираат патеката на агентот.
Дизајнирајте за неуспех пред да ја проширите овластеноста
На секој работен тек на агентот му е потребна патека за неуспех. Повиците кон алатки може да не успеат, складиштата може да бидат во неочекувана состојба, тестовите може да бидат нестабилни, а барањата може да се во конфликт. Вистинскиот одговор не е да се натера агентот бесконечно да се обидува повторно или да импровизира околу заштитна мерка.
Поставете изречни ограничувања: колку обиди се дозволени, кои грешки може повторно да се пробаат, кога агентот мора да запре и кој ја добива ескалацијата. Користете идемпотентни операции каде што е можно, за повторниот обид да не создаде дупликат-задачи, дупликат-изданија или повторени известувања.
На пример, агент што подготвува промена може да создаде нацрт pull request, да изврши одобрени проверки и да побара проверка. Ако некој задолжителен тест не успее, треба да го пријави неуспехот и да запре. Не треба да го ослабне тестот, да ја прескокне проверката или да ја спои промената затоа што задачата му рекла „да заврши“.
Луѓето се поместуваат повисоко во стекот
Како што агентите апсорбираат рутинска работа низ животниот циклус, човечката вредност се поместува кон обликување проблеми, поставување ограничувања, прегледување компромиси и подобрување на системот што управува со автоматизацијата. Тоа не е помала улога. Тоа е позначајна улога.
Развивачите и понатаму ќе имаат потреба од длабока техничка вештина за да препознаат погрешна апстракција, да оспорат небезбедна промена или да одлучат кога локална оптимизација ѝ штети на пошироката архитектура. Лидерите за производ и операции ќе треба да ги дефинираат исходите доволно прецизно за агентот да може да дејствува без да нагаѓа за деловната намера.
Најдобриот пат за усвојување е постепен. Изберете еден работен тек со јасни влезови и мерлив исход. Набљудувајте ги одлуките на агентот. Подобрете ги контекстот и контролите. Проширувајте само откако работниот тек е сигурен.
Трајната предност е дисциплинираното делегирање
Агентите со ВИ сè повеќе ќе учествуваат во начинот на кој софтверот се планира, гради, тестира, издава и поддржува. Прашањето не е дали можат да произведат излез. Прашањето е дали тимовите можат да делегираат работа со доволно јасност, докази и воздржаност за излезот да заслужи доверба.
Тимовите што добро ќе одговорат на тоа прашање нема само побрзо да испорачуваат. Тие ќе изградат развојни системи што полесно се разбираат, полесно се ревидираат и помалку зависат од скриено знаење. На долг рок, тоа можеби е највредниот вид автоматизација: не софтвер што дејствува како да знае сè, туку софтвер што ѝ помага на целата организација да работи со поголема дисциплина.