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

AI Agents: From Assistant to Autonomous Software Architect

AI агенти: Од асистент до автономен софтверски архитект

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

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

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

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

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

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

Архитектурата зад сигурен агент

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

  • Цел: мерлива задача со јасни услови за завршување и неуспех.
  • Контекст: минималните релевантни информации, како тикет, упатства за складиштето, сопственост на услуга или тековен статус на инцидент.
  • Алатки: внимателно дизајнирани операции за читање податоци, уредување гранка, извршување тестови или создавање нацрт-тикет.
  • Состојба: трајни записи за тоа што агентот набљудувал, се обидел и произвел.
  • Заштитни механизми: проверки на дозволи, валидација, буџети, точки за одобрување и ревизорски дневници.
  • Евалуација: автоматизирани проверки и човечки преглед што утврдуваат дали резултатот навистина е прифатлив.

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

Едноставна контролна јамка

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

while not task.is_terminal():
    context = gather_allowed_context(task)
    action = model.choose_action(context, allowed_tools)

    result = execute_with_policy_checks(action)
    record_event(task, action, result)

    if result.requires_human_approval:
        task.pause_for_review()
    elif result.failed and not task.can_retry(result):
        task.fail_with_summary(result)
    else:
        task.update_from(result)

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

Што може добро да прави софтверски архитект со вештачка интелигенција

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

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

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

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

Каде тимовите треба цврсто да ги вклучат луѓето

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

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

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

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

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

  1. Мапирајте го постојниот работен тек, вклучувајќи исклучоци и точки за одобрување.
  2. Автоматизирајте истрага само за читање пред да овозможите дејства за запишување.
  3. Изложете ги само алатките потребни за првата верзија.
  4. Мерете го квалитетот на завршување, напорот за преглед, неуспесите и непотребните дејства.
  5. Проширете ја автономијата само откако системот ќе се однесува предвидливо.

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

Трајната промена

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

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

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

Mihajlo

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