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

AI Agents: Beyond Automation to Collaborative Intelligence in Code

AI агенти: Надвор од автоматизацијата кон колаборативна интелигенција во кодот

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

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

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

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

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

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

Гледајте на агентот како на ограничен соиграч

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

Корисните граници обично вклучуваат:

  • Опсег: Кои репозиториуми, услуги, документи или задачи смее да ги испитува агентот?
  • Дозволи: Дали смее да чита податоци, да создава нацрти, да менува гранка, да распореди во тестна околина или само да препорачува дејства?
  • Алатки: Кои API-ја, команди и интеграции се достапни?
  • Услови за запирање: Кога мора да побара помош наместо да продолжи?
  • Докази: Кои дневници, разлики, резултати од тестови или цитати мора да го придружуваат неговиот излез?

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

Каде агентите им помагаат на софтверските тимови денес

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

Ориентација во репозиториум и одржување

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

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

Goal: add validation for an optional configuration field.

1. Locate the configuration schema and existing validation conventions.
2. Identify callers and affected tests.
3. Make the smallest compatible change.
4. Run the targeted test suite.
5. Present the diff, test result, and any unresolved assumption for review.

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

Оперативна тријажа

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

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

Работа со знаење околу инженерството

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

Дизајнирајте за проверка, не за самодоверба

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

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

Ова го менува прегледот од „Дали му верувам на агентот?“ во „Можам ли да го испитам расудувањето и да го потврдам резултатот?“ Тоа е многу поздрав однос со кој било автоматизиран систем.

Патеките на неуспех заслужуваат првокласен дизајн

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

Изградете експлицитно однесување за овие случаи:

  • Повторувајте само привремени неуспеси, со мал лимит и јасен запис за секој обид.
  • Не повторувајте автоматски деструктивни или надворешно видливи дејства.
  • Запрете кога недостига потребниот контекст, наместо да ја пополнувате празнината со претпоставка.
  • Чувајте ги ингеренциите и чувствителните податоци надвор од поттикнувачите, дневниците и генерираните резимеа.
  • Ескалирајте кога дејството преминува граница на политика, трошок или пристап.

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

Почнете со работен тек, не со личност

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

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

Дури потоа проширете ја неговата одговорност. Најдобрата следна способност обично е соседна на веќе потврдена, а не скок кон неограничен пристап.

Колаборативната интелигенција е вистинската можност

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

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

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

Mihajlo

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