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

AI Agents: Transforming Code Collaboration, Not Just Automation

ВИ агенти: Трансформирање на соработката во програмирањето, не само автоматизација

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

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

Од автоматизација на задачи до заеднички напредок

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

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

Разгледајте извештај за грешка што вели: „Извозот не успева за големи датотеки.“ Агентот можеби не е соодветниот авторитет самостојно да ја поправи. Сепак, може да создаде предност така што ќе ја идентификува релевантната услуга, ќе ги проследи веројатните ограничувања на големината, ќе ги лоцира неодамнешните промени, ќе предложи чекори за репродукција и ќе подготви фокусирано прашање за инженерот што е одговорен за таа област. Човекот почнува со структурирана истрага, наместо со празна страница.

Добрите агенти ги прават своите граници видливи

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

На пример, агент што подготвува pull request може безбедно да работи во тесен циклус:

  1. Да го прочита тикетот, насоките за складиштето и релевантниот код.
  2. Да предложи план пред да менува датотеки.
  3. Да направи мала промена што може да се прегледа.
  4. Да ги изврши наведените проверки.
  5. Да ги сумира разликите, резултатите од тестовите и нерешените ризици.

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

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

Контекстот е вистинскиот слој на соработка

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

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

Направете го работниот договор експлицитен

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

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

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

Користете агенти за да ги подобрите прегледите, а не да ги избегнете

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

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

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

Дизајнирајте за неуспех пред да ја славите брзината

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

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

Промена: додадена е валидација пред обработката на извозот
Потврдено: целните unit тестови поминаа
Не е потврдено: целосниот пакет интеграциски тестови не е достапен во оваа средина
Ризик: однесувањето со големи датотеки сè уште зависи од ограничувањето на downstream складирањето
Следен чекор: извршете интеграциски тестови со датотека близу до конфигурираното ограничување

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

Почнете со работни текови, а не со големи ветувања

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

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

Трајната промена е капацитетот за соработка

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

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

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

Mihajlo

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