Галоўная / Артыкулы / Архітэктура проты нарастання галюцинацый у графах агентав.

Архітэктура проты нарастання галюцинацый у графах агентав.

Выучыце, як проектаваць архітэктуру кантрольнага плану з адпаведнымі інструментамі, рэўізуючыми кнігамі та схематычнымі фільтрамі, якія запобегаюць нарастанню галюцинацый у багатоагентных LLM.

2832 слоў

Інстынктыўны спосаб — гэта дадаць ўжо аднаго крітычнага агента. Самэ так і вырастае абман у замяне на тое, каб яго вылечыць.

Якщо вы калі-небудзь запускалі чатбота на аднам агенте RAG у працэйны режым, вы вядома бачылі гэтыя проблемы: модель адпавядае на ўпыткі таму, чаго ніколі не было сказана ў згадваных дакументах, і прыносіць гэтыя вымыслы з там самым тонам паверы, які ўжоў, калі цитата є правядзіцельнай.

У канале з мнагацелевымі агентамі тая ж падзея паўтарыцца ў збольшанай меры, таму што вы вялікі час не працаваеце з рэзультатам аднае моделі — вы працаваеце з цэлым графам такіх модэляў. Планавальнік стварае падцель. Дзяржаўнік выдумвае джераг, які можа яе падтрымаць. Аналітык выкарыстоўвае цяпершэй створанае джераг і выкарыстоўвае з яго цыфру. Авар ператварае гэтую цыфру на рэкамендацію. Агент, який вызывае інструменты, пасля чаго выкананаю гэтую рэкамендацыю ў вашай системе білінгу. Пры кожной перадачы існуе можлівасць таго, што здогадка будзе ператвореная ў ўсё, што выглядае як падтверджаны факт.

Команды, які ствараюць системы з калькуляцыямі LangGraph для юрыдычных, фінансавых та аперацыйных задач, сталквуюцца з падзейчым патэрнам. Проблема не ў тым, што адпаведны модель няўжывучы. Справа ў тым, што сам працэс выканання задач не мае епістэмічнага кантракту. Ніч графа не змушвае жаднага агента раскрываць, дзе выйшла прэтэнзія, якія доказы ўможліва абмовіць яе, чы гэта будзе дарычана, якшо такіх доказоў проста няма. Таму система робіць тое, што моделі мовы завжды робяць, калі є прасоў: яна стварае што-небудзь правдападобнае, каб яго запаўніць.

Далей паказана архітектура, якая варта выкорыстоўваць, калі рэзультат можа пераводзіць грошы, паўлічваць юрыдычны дакумент чы падаць у поштовую скриньку кліента. Цэў не швыдкі путаводзіцель, і якшо вы спадзяваецеся на адну установку пакета, якая зробіць вашых агентоў надзеянымі, вас тут не чакае.

Проблема кумуляцыі, на якую ніхто не плануе бюджэт

Кожны разлічны вызов LLM мае певны базавы рэгл дакладакоў, якія не падтрымваюцца — называмо яго p. Якщо з’едынаць пяць эйянтав, і кожны з яных можа прынясіць або падчыніць непадтрыманую дакладку, то фактычны рэгл памылак больш не будзе p. Ён стае добуткам умовных верыятнасцей, да якога дадаеся ўздыманне другой проблемы, унікальной для графаў з калькамі эйянтав: перадача автантыяты ў межах эйянтав.

Эйянт B спрыяе выходу Эйянта A як даўжайшаю правду проста таму, што ён прыбыў у вастоўленай форме як структураваны об’ект JSON з апазначэнням у дакладзе research_findings. Схема падтверджваецца. Тыпы полей правильныя. Але рэальны контент ёсць вымышлены. Падтверджэнне схемы не значыць, што інфармацыя ўсё ж правдзіва, пры тым большасць каманд займаецца толькі першым пунктам.

У рэальных развертаннях чаща з’яўляюцца тры конкрэтныя патерны абыектаў, чым прызнаюць у большасці апісаў:

  1. Сконструаваныя выклікі інструментаў. Модель выдае вызов функцыі, які сэмантычна выглядае правільным — на кшталт search_matters(client_id=…) — але нацэлёваны на інструмент, якога няма, або паводзіць аргументы, якія б не задаўся, якбы схема інструмента была рэальна прыменялася. Слоі оркестрацыі, якія таямна прымушваюць до викорыстання несумэжных типаў, або якія дазволяюць модэлі прабавіцца знову з адносна перапісанымі аргументамі, фактычна навучаюць систему прыкрываць недастаткі ў даных, замест таго каб іх адкрыць.
  2. Працэс «перапрацоўкі» даных між агентамі. Дзеярнік паводзіцься аберагаюча, кажучы «згодна з файлам паводаку». Аналітык, які працюе далей, на самай працы ніколі не ачынае той файл. Після чаго практык цитуе аналітыка як джерэлу. Калі людзь працягвае пераглядаць заканчоўны выкладак, первісныя уточнення ўжо цэлкам зниклі. Самэ так непакойныя, можа-быць, тверджэння ператвараюцца на факты, якія можна вырахаваць за планом і якія ставятся з упэўненасцю.
  • Тэатр пераканаўчыкаў. Команды часта рэагуюць падключэнням агента-«крытыка» чы «пераканаўчыка», чыя ўзначальная задача — выкрываць галюцинаціі. Проблема заключаецца ў тым, што самы пераканаўчык таксама ёстся LLM, які працуе на аднаковым контэксте — часта з той самай сяродзіны модэляў — і крыху ўзнаграждваецца за допамогу та схваленне через падбір запитоў. Пераканаўчык, оптымізаваны для дапамоги, будзе склонны падтрымваць, а не крытыкаваць. Настоямо чыста незалежны пераканаўчык патрэбуе аддзельнага источніка інфармацыі, адмінульнай функцыі целі та спосабу адмовы, які ўсё ж не будзе такім дорогім, як проста схваленне. Лячына архітектураў насправдзе забезпечваюць гэта.
  • Генераванне, аддытыванае выкарыстоўваннем дадзеных, не спасае вас ад гэтага. Выкарыстоўванне дадзеных толькі з’являе прадуменні. Якщо агент, який плануе, ніколі не сформулюўвае правильнага запиту, або якщо процес разбівання на часткі роздзела, який мог бы спроставіць тэзу, роздзяліў бы яго на два окремыя элементы, агент-дакледчы все раве знайдзе ўтварэнне, якое звучыць плавна і є тэматычна блізкім. Блізкасць да правильнай адпаведзі не ўзначае логічнага выводу з яе.

    Што павінна значыць фраза “grounded”, іначы яе значэнне нічога не будзе

    Фраза “grounded” не павінна быць расплывчатым апісаннем настрою чы тону. Тэза ў системе з калькамі агентоў вважаецца “grounded”, толькі калі выпалоўваюць усе наступныя умовы:

    1. Такое тверджэнне мае чыстаю прызначэння. Яго пазначаюць як Assertion, Conjecture, Quote або ActionIntent. Адналожэнне гэтых катагорыяў у адно поле без пазначэння типу — гэта сама прычына, чаму летакі аудыту становяцца непрацэспраснымі.
    2. Кожна Assertion павязана з записам прычыны-наследніцтва — цэю можа быць адзёваны фрагмент, рэзультат работы інструмента або факт, які чалавек задаў безпосередна. Гэтыя звязкі выражаюцца через хеш контэнту, а не через URL-адресы, створаныя самым модэлем.
    3. Детерміністычны, не-LLM аптэк стаўся і пераканаўся, што адзёванный запис прычыны-наследніцтва дзейсна існуе ў журнале выконання. Паказаць наявнасць не ўскладнена, але паказаць вынік з гэтых дадзенняў — так. Оба аптэкі неабходны, і яны павінны выконвацца самэ такой порядку.
  • Калі перагляд не выйшаў, система вайтрачае час або запытае пра дапамогу. Яна не перапісвае запит тайкам, пакуль формулюванне не стане дастаткова пераконлівым, каб ён быў прыняты.
  • Архітектура, якая не можа адмовіцца даўаць адпаведзь, не може быць надзейна правядліва. Пошук адпаведзі ў прыродны спосаб зазвычай яўляецца найлёгшым варыянтом; вайтрачанне часу павінна быць прымусова включаная частка як явны стан у графе — і ёй павінна быць прыемнейя досягнуць, чым проста прабавіцца з іншым запитам.

    Гэтае ўсё сутнасць. Усё інша — это інжынерныя рашэння, неабходныя, каб гэтыя чатыры правілы дзеялі, калі вы вводзіце LangGraph, рэальныя вызовы інструментам і менеджера продукту, які настаіць на тым, каб дэманстрацыя завжды даўала адпаведзь.

    План керування, а не запит

    Спрытваеце сваіх агентаў як ненадзяйны рантайм і загорніце іх у план керування. У гэтым плане є шасць складовых. Якщо адну з іх не выкарыстаць, рэшта пасляўсілу падупаюць.

    1. Тыпаваны шын для інструментаў

    Кожны інструмент атрымвае версіяваны JSON Schema для вхідных і выходных дадзеных, якія зберагаюцца ў реестры, кантролюваным модэлем, і якім няма права яго зменіць. Модэль можа запрасіць выкананне задачы, але дэтерміністычны верыфікатор павінен яе прыняць або адхіліць раней, чым ўсё гэта прыведзе да якога-небудзь рэзультата. Няма прымусовага пераканвання типаў, няма „дасканальнага“ супарабатавання між значэннем з enum і тым, што выдала модэль. Якщо запрас паводзіцца некоректна, ён вяртаецца да планавальніка як структураваны бяда — ніколи як розмовна даганка.

    Гэта выглядае як бяспадзейная патрабовання, пры тым гэта сама частка, яку большасць дэманстрацый CrewAI або AutoGen праігнораваюць, таму што ў дэманстрацыях ніколи не трапляецца інструментаў, якія фактычна запісваюць дадзеныя у стацыонарны реестр.

    Для будзь-яга інструмента, які мае незворачныя наследкі — адправка чаго-небудзь, запіс у файле, развёртыванне, апдэйт системы зберагчаў інфармацыі — сістэме патрэбна двойная контроль: ClaimSet, які вже працаваў праз перакананне, а таксама або затверджэнне чалавека, які участвуе ў процэсе, або чыстае разрешэння за правіламі. Праз такую структуру агент-оператар ніколі не мае прымусовага доступу да гэтых інструментоў.

    2. Хроніка цитатаў з можласцю толькі дадавання

    Кожны рэзультат запыту, кожны выхід інструмента, кожны факт, які падае чалавек, запісваецца ў хроніку, дзе можна толькі дадаваць новыя даны, індексуецца праз run_id і хэш контэнту. Агентам не дазволяецца проста "памятаць" выхадны джераг у сваёй власной базе — ім неабходна ўместо таго цітаваць ідэны хронікі.

    Якщо агент-пісьменнік стварые рэченне без прыўязанага ідэнтыфікатора ў кніге рэчэй, такое рэченне зовсім не ўважаецца тверджэнням. Це текст без атрыбутаў, і яго ніколі не трэба прабачваць через браму шымату. Гэта, можна сказаць, найэфектывнейшы спосаб прыладзення змян да існуючай сеткі агентаў: пазбавіцца магчымасці для вольнага тэксту выходзіць з системы пад маскай данных.

    Здесь таксама важна ролю грае хэшаванне. Модель можа цітаваць doc:matter-4421#p3, але ўсё равно неправяльна цітаваць тое, што на самай працоўні 3 напісана. Кніга рэчэй павінна зберагаць сам тэкст — альбо прынеймна паказчык на об’ект, які не можа быць зменены — каб пераканальнік могаў пераглядаць саме тыя байты, а не тое, што модель памятае пра яны.

    3. Брама шымату (не LLM)

    Перш чым будь-які артыфакт пераходзіць да наступнага агента — статысця доследжэння, вырахаваная цифра, прыказанае дзеянне — ён павінен праясніць перакананне за дапамою шымату, які включае:

    • масэв claims[], кожны з якога мае type, text, ledger_ids[] і значэнне confidence, якое пазначаецца пазнейша, а не проста ўтверджваецца модэлем як „высокая“
    • масэв open_questions[], які планавальнік должен або рашыць, або явна перадаць на вышэйшы ранг
    • масэв action_intents[], які апіляецца да конкрэтнага інструмента, а не да расплывчатага пасунку, які пропануе „мы, вероятна, должны...“

    Гэты элемент павінен быць звычным кодам — Pydantic, JSON Schema, правілы CEL або Rego, выбірайце самі. Ён не павінен быць LLM. Якщо пастаць тут модэль мовы, то проста знову стварываецца сітуация, падобная да „critic-agent theater“, але на нижшым рангу.

    4. Пераканальнік твэрджэнняў з іншым наборам інфармацыі

    Хтоякісна цена крыўця крыецца самэль гэтам. Возьміце кожную Assertion і раздзеліце яе на найменшыя часткі, якія можна пераканаць, так, каб адна частка паводзілася на аднаго суб’екта, адныя стосункі чыста якості, і адну точку чыста період часу. Для кожной з гэтых частак запрашайце падтрымлюючыя доказы толькі з рэўістрацыйнага журналу, ніколі не з рэальных пошукавых систем чыста ніколі не з сэрвасу параметраў самага модэлю.

    Потым адрабатайце пераканаючую перапалну: чы падтрымвае запрашаны фрагмент тэзу, чы суперчыць яй, чы ўжо нічога пра яе не кажа? Гэта можна рэалізаваць за дапамогою малага модэлю NLI, абмежанага декодера, які можа толькі копіраваць з фрагмента, чыста людзкага рэвізора. Тое, што не можна зрабіць — гэта паставіць гэту задачу таму ж большаму чат-модэлю, які працуюць пад тым жа системным запросам, і спытаць яго, чы тэза «выглядае правільна».

    Калі прыемка адзейнання адхоўвана, ніхто таямна не практыкуе зменшэння формулірацыі, каб яна была прыйнята пад час наступной спробы. Яна вяртаецца як Unsupported{proposition, missing_evidence}, і задача таго, хто плануе, — знайсці больш доказаў, а не проста перапрацаваць формулірацыю проблемы.

    Этап таксама выяўляе болей тонкія недастаткі: замена нечыстае, неперапрацоўвальнае тэзы на такую, якая выглядае строгай. Заява пра тое, што рахунок-фактура выглядае перэцененым, сама па сабе не ўможна пераканаць. Ля гэтага трэба прыкрепіць конкретную цифру — назваць пункт рахунку, даговорную межу, якую ён перакрочыў, суму падэйсця над гэтай межой, а таксама записы у бухгалтерскім учэте, якія падтрымліваюць усё гэта — толькі тады гэта стае чымось, што можа буць падтверджана або адхоўвана пераканальнікам. Схема, якая прымеўляе першую, болей нечыстую форму, ў канцэ насправдзе будзе пераканваць тон, а не факты.

    5. Адмацаваць на аснове конкрэтных дадзеных, а не уяўлень

    Вам патрэбна заморожаная сетка критэрыяў: данныя вхіду, кадры журналу, прэтэнзіі, якія вы моглі б спакаўваць, і выключэнняя, якія вы моглі б спакаўваць. Кожная змяна ў графіку — рэдагаванне запиту, замена моделі, іншы инструмент для апрацоўкі даных, новы інструмент — адмацаваецца на адповіднасць следуючым критэрыям:

    • адпаведнасць: які частака выданых твэрджэнняў насправды падтрымваецца журналам
    • пакрыцтва: які частака прэтэнзій, якія вы моглі б спакаўваць, насправды была створаная графікам, адносна таго, што мовчанне таксама можа быць абэктам критыки
    • точнасць выключэнняя: калі система адмовілася адказаць, чы рэальна была падстава для такой адмовы
    • чыстота побачных эфектаў: жадных незворачных вызоў інструментаў, якія бы выканаліся без праваменнага разрэшэння

    Якщо падыскок адпаведнасці на два пункты не можа завадзіць развёртванню, у вас няма плану керавання — у вас ёсць панелі назірства, якія выглядаюць абяцуюча.

    Што бы вы не рабілі, ня трэба ствараць гэты набор ацэнкаў на базе сябея выходных даных модэлю. Гэта проста кодуе текущыя патерны галюцинацый як правдзівыя даны. Адпаведныя даследы должны выйшаць з асновных дакументаў-выканаў і рэальной системы зберагачэння дадзеных, пасля чога граф будзе працаваць з імі незалежна. Такі падход ўсё сповольней, але гэта ўжо едыны варіянт метрыкі, якай насправды мае значэнне.

    6. HITL на незворачным краю

    Чалавечы рэвізор не прызначаны для таго, каб зробіць агентаў розумней. Їхня задача — стаяць самэль там, дзе система збіраецца аправіць электрана, зафіксаваць дакумент або запісаць інфармацыю. Інтерфейс для рэвізіі должен паказваць набор тверджэнняў, адпаведныя періяды у бухгалтерскім учёте і чакаючыя запускі інструментаў — а не вал сторонніх пераказаў. Якщо каму-то трэба здзейсніць зворачную інжынерыю, каб з’ясавіць, чаму агент паверыў у певны факт, значыць, дизайн вже не выпанаў свою задачу.

    Для процэсаў з высокай праходнасцю — перагляд рачунка-фактуры ў тым лісте — адзін чалавек не павінен пераглядаць усё, а толькі выбраныя елементы, пры чым такі перагляд павінен выконваліцца толькі у разы наявнасці асаблівых абэктаванняў. Система павинна сама затвердзіць документ, калі всі тэкстовыя тверджэння ўсунутыя цалкам, а фінансавыя пакрыцці знаходзяцца ў дапусканай дыапазоне. Усё інша павінна быць адзначана, і выклікаецца толькі конкрэтныя непадтрыманыя тверджэння, а не весь документ.

    Эскіз кантракту, а не яго рэалізацыя

    Гэта прыбліжны відварот аб’екта, які перадаецца межы агентамі. Логіка кантролю, стак верыфікацыі NLI, слой зберагчыка даных і компонент, який выдае разрешэння, навмысна не паказваны — гэтыя элементы є спецыфічныя для рэалізацыі і належаць у код працоўнай сістэмы, а не ў пасьблага.

    {
      "run_id": "run_7f3c",
      "from_agent": "analyst",
      "claims": [
        {
          "id": "c_19",
          "type": "Assertion",
          "text": "Line item 14 exceeds the engagement-letter hourly cap.",
          "propositions": [
            {
              "id": "p_19a",
              "pred": "exceeds_cap",
              "args": {"line_id": "14", "cap_source": "engagement_letter"},
              "ledger_ids": ["led_aa12", "led_bb90"],
              "entailment": null
            }
          ]
        }
      ],
      "open_questions": [],
      "action_intents": [
        {
          "tool": "flag_invoice_line",
          "args": {"invoice_id": "INV-4421", "line_id": "14"},
          "requires_grant": true,
          "depends_on": ["c_19"]
        }
      ]
    }
    

    Зверніце увагу на тое, чаго няма: ня існуе поля summary, якое наступны агент мог бы безпосередна цітаваць. Самэлькі ў такіх резюметах і зникаюць усі дапаможныя прыметкі та уточнення. Якщо агент, які працуе далей, патрэбуе текстовага опису, ёму трэба стварыць гэты наратыв выключна на адной падставе пераканаючых доказоў, і пакуль чалавек не затвердзіць гэты текст як той, які будзе прадаваны кліентам, ён атрымвае пазначку Conjecture.

    Таксама зверніце увагу, што значэнне entailment задана як null. Агент, які стварыў тэныцю, не мае права сам запалняць гэта поле — толькі адпаведальны за пераканання можа гэта зрабіць. Дазволіць агенту оцэніваць свае сабе ж створаныя тэныцы — гэта як дазволіць падпрыемству самама адрабатваць свой аудыт саліднасці і называць гэта незалежным наглядам.

    Чаму падход «проста дадзіць цітаты» все ўсё не працуе

    Найпасуючыяй фальшывая мера захавання — это выходны тэкст, який простаўляецца за цітата. Модель дадае [1] або [2], інодзе нават паказваючы рэальны частак тэксту. Потым вы ачынайце гэты частак і адкрываеце, што ён на самай працэ не падтрымвае заявленага.

    Сама цітата нічога не дазваляе падтвердзіць. Рэальныя доказы выглядаюць так: гэты конкрэтны фрагмент тэксту, гэты точны набор байтов, прыязначаныя да конкрэтнага тверджэння, з пазначкай прычыннасці, керованыя чысткай правіламі ўсё пра тое, што вядзець, калі гэтая пазначка ёсць neutral. Без гэтага цэлага ланцуга „цітата“ — это проста выбор форматавання, перадзваначанный як доказ.

    Другаяя фальшывая мера захавання — это задаўанне значэння temperature на 0. Гэта не робіць выходны тэкст правдзівым — гэта проста робіць некоректны адказ цяперысумлівым. Стабільная галюцинацыя ўсё час праходзіць тэсты на аналіз кадроў. Яна не выжывець у належным чынам падтрымванай базе данных.

    Скількі це коштуе, чыста правда

    Запуск дэмавайнага пайплайна ў такім роштку, як LangGraph, займае калькі дзён. Аднароджэнне справжняга кантрольнага плану — реестру інструментаў, кнігі цытатаў, механізмаў контролю схемы, верыфікатора на аднойчыну логіку мовы, ацэнкаў з викорыстанням «золатых» прыкладаў, перагляду з боку людзей для кожнага шляху, дзе можна выконваць зберагчыце, а таксама логаў, дастаткова дакладных для таго, каб іх мог усваяць адвакат — гэта тое, што розлічвае працоўны пратэтап ад системы, якой можна даверыць рашэнні па справжням бізнесе.

    Няма аднаго універсальнага показніка, які бы прыменяўся ў всіх случаях. Рэальныя виткі залежаць ад таго, сколькі з вашых інструментаў вызывае побачныя эфекты, чы рэшэння, якія вы викорыстоўваете, ўжо структураваныя і можна якіх-небудзь запитаў, а таксама ад таго, насколькі дорогі ў вашай конкрэтной сфере некантрольваныя тверджэння. Прававая бухгалтерскія урачысткі і фінансавая звярнення належаць да категоріі высокых виткоў і высокага рызыку. Інструмент для генеравання ідэй, створанный на аснове групы агентаў, знаходзіцца на протылежным канце спектру, і прымус яго да викорыстоўвання такой масштабнай інфраструктуры быў бы надмерным.

    Пытанне, якое варта задаць першым, — гэта не тое, на якой парадганізацыі будуць ствараны інструменты, а тое, дзе сам працоўны процес знаходзіцца на гэтым спектру.

    Якщо гэта сама проблема, якая у вас ёсць

    Такія планы керування маюць найбольшое значэнне для команд, якія не можаць пакіраць адказы, які звучаць упэўнена, але ёсць некоректныя: гэта зазвычай стосуецца юрыдычных задач, фінансавых аспектаў і процесаў, якія базуюцца на великай колькасці дакументаў. Гэта значыць, што патрэбны графы агентаў, створаныя з такіх інструментоў, як LangGraph, канвеі выкарыстання дадзеных, якія фактычна перацэнююцца, а не проста прыймаюцца за эфектывныя, а таксама системы выкарыстання дадзеных, якія павінны выстаць пад час аудыту.

    Якщо ваш граф прадстаўляе ся пераканліва ў дэмаверсіі, але пачынае ствараць хыбныя тверджэння пасля таго, як стае актыўным, гэтая розніца практычна завжды можа быць апрацоўваная ў зв’язку з аднам з шасціх элементаў, якія тут рассматрываюцца — і выявленне таго, які самэ гэты элемент, а таксама выявленне таго, чы рэальна корыстна інвеставацыя ў тэхнічныя змяны для його выправлення, являецца справжнім пачаткам для планавання работ.

    Спаднія матэрыялы