Повеќе од нацртот: Инженерство на ВИ агенти што навистина создаваат софтвер
Повеќето софтверски неуспеси не започнуваат со лоша линија код. Тие започнуваат со јаз меѓу привлечен план и неуредната реалност на репозиториум, цевковод за распоредување, работен процес на клиент или двосмислено барање. Тој јаз е местото каде што често се даваат преголеми ветувања за агентите со ВИ — и каде што тие можат да станат навистина корисни кога се изградени дисциплинирано.
Асистент за кодирање со ВИ може да предложи функција. Од агент со ВИ се очекува да постигне исход: да истражи грешка, да измени код, да изврши проверки, да ги протолкува резултатите и да претстави резултат за преглед. Разликата не е едноставно поголем промпт. Таа е проблем на дизајн на систем кој вклучува контекст, алатки, дозволи, повратни јамки и јасни граници на одговорност.
Започнете со ограничена задача, а не со сон за универзална намена
Најсигурните агенти започнуваат со работа што има препознатлива дефиниција за завршеност. „Подобрете ја апликацијата“ не е задача за агент. „Додадете валидација на овој формулар, ажурирајте ги неговите тестови и пријавете ги изменетите датотеки“ е многу поблиску до тоа.
Корисната задача има три карактеристики: ограничен опфат, видливи докази за успех и безбеден начин на неуспех. Ако агентот не може да ја заврши, треба да остави разбирлив извештај, наместо недовршена промена скриена меѓу неповрзани измени.
- Добри почетни задачи: тријажа на неуспешен тест, нацрт-белешки за издавање од споени измени, лоцирање застарени референци во документацијата или подготовка на тесно ограничено барање за спојување.
- Поризични задачи: редизајнирање јавен API, промена на контроли за пристап, мигрирање продукциски податоци или решавање инцидент без човечки надзор.
- Јасни сигнали за завршеност: целните тестови поминуваат, статичката проверка е чиста, очекуваните датотеки се изменети или прегледувач одобрува предложен план.
Ова не е аргумент за задачите на агентите да бидат тривијални. Тоа е аргумент напредокот да биде мерлив. Способноста расте побрзо кога секој работен процес создава докази за тоа каде системот успева, се двоуми или има потреба од ескалација.
Дајте му на агентот мапа на работата
Моделите се силни во препознавање обрасци, но кодната база е повеќе од текст. Таа има конвенции, граници на сопственост, правила за изградба, односи меѓу зависности и институционално знаење што можеби не се појавува во една датотека. Агент што започнува без овој контекст често произведува веродостојни измени што не припаѓаат таму.
Изградете експлицитен слој на контекст. Тој може да вклучува инструкции за репозиториумот, архитектонски белешки, стандарди за кодирање, сопственост на компоненти, команди за тестирање и концизен опис на релевантниот потсистем. Одржувајте го ажуриран и насочен кон целта. Ставањето на секој документ во промпт може да ги замагли важните ограничувања исто толку ефикасно како и да не дадете ниедно.
Контекстот треба да ги насочува одлуките
Корисните инструкции објаснуваат и што да се направи и што да не се направи. На пример, на агент што работи на услуга може да му се каже дека промените на шемата на базата на податоци бараат посебен преглед, дека надворешните барања мора да поминуваат преку постоечки клиент и дека се очекуваат единечни тестови за изменетото однесување. Овие ограничувања ги претвораат нејасните „најдобри практики“ во оперативни заштитни огради.
Исто така, помага да се разликуваат фактите од претпоставките. Ако барањето е нејасно, агентот треба да ја идентификува двосмисленоста, да ги наведе опциите и да побара насока. Тивкото избирање толкување често е поопасно од признавањето неизвесност.
Алатките го претвораат јазикот во дејство — и воведуваат ризик
Агентот станува оперативен кога може да чита датотеки, да пребарува код, да извршува тестови, да уредува гранка, да пребарува систем за следење задачи или да прегледува дневници. Секоја алатка го проширува она што агентот може да го постигне. Секоја исто така ги проширува последиците од погрешен заклучок.
Дизајнирајте го пристапот до алатките според најмалото овластување потребно за задачата. Пристап само за читање често е доволен за истражување и планирање. Привремена работна гранка може да биде соодветна за измени на код. Продукциските акредитиви, широкиот пристап за запишување и неповратните операции треба да бараат посилни контроли и изречно човечко одобрување.
И описите на алатките се важни. Агентот треба да ја знае разликата меѓу команда што прикажува преглед на промена и команда што ја применува. Му се потребни предвидлив излез, структурирани грешки каде што е можно и временски ограничувања за заглавената команда да не стане невидлива јамка.
npm test -- --runInBand
git diff --check
git status --short
Дури и едноставна низа за верификација како оваа има потреба од толкување. Тест-пакет што поминува не докажува дека побараното однесување е точно. Чиста разлика не докажува дека промената е безбедна. Алатките обезбедуваат докази; работниот процес мора да одлучи колку докази се доволни за вклучениот ризик.
Проектирајте ја јамката, не само првиот одговор
Способен агент ретко сè прави правилно во еден обид. Практичниот образец е намерна итерација: прегледај, испланирај, дејствувај, провери и извести. Клучно е секоја фаза да биде видлива и ограничена.
- Прегледајте ги релевантниот код и барања пред да предложите промена.
- Наведете краток план, вклучувајќи датотеки што веројатно ќе се изменат и неразрешени прашања.
- Направете ја најмалата кохерентна имплементација.
- Извршете целни проверки пред пошироки проверки.
- Прегледајте ја добиената разлика за ненамерни измени.
- Пријавете што е изменето, што е проверено и што останува неизвесно.
Повторните обиди заслужуваат посебно внимание. Агентот не треба бесконечно да повторува команда што не успева или да продолжува да пренапишува код по истиот неуспех на тест. Дајте му буџет за повторни обиди и правило за ескалација. На пример: по еден корективен обид, соберете ја грешката, сумирајте ја хипотезата и побарајте помош или префрлете се во режим само за дијагностика.
Ова ги прави неуспесите корисни. Неуспешното извршување на агент може да открие тестови што недостигаат, нејасна сопственост, кревки инструкции за поставување или зависност од неформално знаење. Тоа се проблеми во испораката на софтвер што вреди да се поправат без оглед дали е вклучена ВИ.
Задржете ги луѓето одговорни за значајното расудување
Прегледот не е церемонијален последен чекор. Тоа е местото каде што се среќаваат доменското знаење, намерата за производот и толеранцијата на ризик со излезот на агентот. Најефективното искуство на преглед не е огромна необјаснета закрпа. Тоа е компактно предавање: цел, пристап, изменети датотеки, извршена верификација, претпоставки и отворени ризици.
Тимовите треба однапред да дефинираат правила за ескалација. Промени во автентикацијата, финансиска логика, патеки за бришење, код чувствителен на безбедност и одлуки за политики насочени кон клиентите се вообичаени примери каде што агентот може да помогне, но не треба самостојно да одлучува. Прагот треба да ги одразува влијанието, повратноста и квалитетот на достапните тестови.
Одговорноста останува човечка дури и кога извршувањето е делумно автоматизирано. Тоа значи одржување траги за ревизија, заштита на тајните од промптови и дневници и обезбедување прегледувачот да може да разбере како е произведена промената. Брзината без следливост создава долг што се појавува токму во погрешниот момент.
Мерете ја довербата преку однесувањето
Не судете за агент според тоа колку импресивно звучат неговите демонстрации. Судете за него според квалитетот на неговата завршена работа во реален работен процес. Следете практични сигнали: колку често неговите измени се прифаќаат со минимална ревизија, колку често верификацијата открива грешки, каде соодветно ескалира и дали го намалува времето на циклус без да ја зголеми преработката.
Овие мерки треба да го подобруваат системот, а не да станат табла со резултати за луѓето. Ако агентот рутински не успева кај одредена класа задачи, одговорот може да биде подобар контекст, потесни дозволи, посигурни алатки или редизајн на работниот процес — а не едноставно посилно барање да „биде попаметен“.
Изградете ја пистата пред да побарате полетување
Трајната предност на агентите со ВИ нема да произлезе од предавање огромен заостаток на модел. Таа ќе произлезе од тимови што ја прават својата работа разбирлива: јасни интерфејси, сигурни тестови, документирани одлуки, безбедна автоматизација и практики за преглед што ги наградуваат доказите.
Во таква средина, агентите можат да го отстранат триењето од негламурозните, но неопходни делови на испораката на софтвер. Тие можат да истражуваат, да составуваат контекст, да подготвуваат нацрти на измени и да проверуваат рутинска работа. Планот сè уште е важен. Но софтверот се гради во повратната јамка, каде што плановите се среќаваат со ограничувањата, доказите ги коригираат претпоставките и луѓето остануваат одговорни за она што стигнува до корисниците.