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