Кантракты дэлегавання для каманд AI-агентаў: межы, прыёмка і апрацоўка збояў
Чаму пасады агентаў не ратуюць ад зламаных перадач і як кантракт дэлегавання з прымусовай палітыкай, незалежнай прыёмкай і правіламі збояў можна пратэставаць.
Уявіце сабе, калі зміну продукту адмініструюць трое агентаў: дадаць пагінацыю з выкарыстоўванням курсора да API, да кліента, які яго вызывае, і да тэстаў. Усі трое адзвяртаюцца, што усё працюе, але кліент не можа распакаваць тое, што вяртае API. Агент API выдае next_cursor, агент кліента чакае nextCursor, а агент тэста пераканальваеся на макі, створаныя на аснове прыпускаў кліента. Кожная локальная задача выглядае завершанай, але сумарная зміна зламваецца пад першым рэальным запітам.
Позначэння агентаў як „Інжэнер“, „Спеціаліст з кліентамі“ і „Рэцензент“ не вказуе, які інтэрфейс будзе перэможцем чы хто підтверджуе рэзультат. Ці рышэння маюць буты вказані у договоры про дэлегування, тобто у конкрэтному задачы, дэ вказуюцца вхідні даныя, дозволеній дыяпазон, необхідній рэзультат, умові прыйнятця і наслідкі невдачы. Яго ціннісць полягае у тому, як сістэма вікорыстовуе цю угоду, а не у створэнні шчэ одного документа.
Спрыймайце гэта як кілька узроўняў: роль візначае, як агент підходыць до працы, тоды як договір чытко вказуе, які внескі ёсць прыйнятнімі. Політыка працы візначае, што агент насамрэч можа робіты, а умові прыйнятця візначаюць, чы перэтворуецца внесок на готовій продукт.
Спеціалізація залішае можлівісць для перэдачы обов’язків
Роль опісуе певны погляд на рэчы, напрыклад, пошук проблем з безпекі, стварэнне кліента чы скасаванне дызайну. Контракт на заведзення задачы опісуе конкрэтны заведзення: выкарыстаць гэты варыянт інтэрфейсу, змініць гэтыя файлы, прынесці гэтые доказы. Аўтарытэт часу выканання керуе тым, што працавальнік можа справжна прачытаць, змяніць чы запусціць.
Разлучэнне гэтых элементаў дазволяе ролі застацца корыстной, не прызначаючы яе для ведання усяго. Рэвізор можа выяўіць змены, якія нарабляюць проблемы, але не мае права іх затвердзіць, а інжынер можа запропанаваць перасмотрэнны інтэрфейс, але не мае права зробіць яго акцептаваным.
Даследжэння Anthropic па тэму калькольных агентаў з ліпеня 2026 года паказвае, як выглядае проблема залежнасці. У ўжоўваных эксперыментах з стварэнням гэймоў ролі, вялікай часткай наказальнага характару, і іерархія у стыле CEO мала вялікі вплыв, і гэймы заставаліся слабымі, нават калі дзеякія мадэлі паказвалі лепыя рэзультаты па показніках коордынацыі. У тамжым апаведамленні згадваецца пра супарабоцаванне паведзення і помылак. Гэтыя рэзультаты апраносяць толькі конкрэтныя эксперыменты і не можаць сказаць што-небудзь абсалютнае пра кожную команду агентаў; да таго ў порэвананнях з падышчамі вразлівасці разлікаецца меры і выкарыстоўванне рэсурсаў, таму чыстыя сумарныя показнікі не могуць аддзельна паказаць, што саме спадабілела коордынацыю.
Існуе контрапрыёкт. У тэхнічным апавяданні Anthropic пра свойяй сістэме даследжэнняў паказаны прыбыткі ад паралельных даследжэнняў, а таксама опісаны завадзібы, якія маюць цілі, фарматы выходных дадзеных, інструкцыі па вікорыстоўванні інструментаў і ўмовы ўжывання. У апавяданні таксама згадваецца вышэйшы расход рэсурсоў і паведамляецца пра проблемы, якія выступаюць у разе працы з большам чысла залежнасцей. Хоць гэта спакойвае за неабходнасць серйозна ставіцца да разбівання задач, гэта не паказвае, што архітэктура даследжэнняў можа быць без змян перэнесена ў інжынерныя цілі ў спакойнай базе кода.
Прапанова, якая тут прынесена, стосуецца межы між дэлегаванымі і прыйнятымі завадзібамі. Чы розмаўчанне пра гэтую межу ўсуне дапаможныя вітраты, — гэта тое, што трэба перапрацаваць.
Складзіце завадзібу, якая будзе адпавядаць залежнасцям
Для змены пагінацыі спачатку власнік продукту павінен выправіць бажаную працэю, а власнік API — схваліць інтэрфейс. Няхай інтэрфейс выкарыстоўвае next_cursor, пры чым null пазначае апошню сторанцу. Тады працоўнікі API і кліента можуць працаваць з адной версіяю, тым часам як тэсты на апроўаджэнне пераканаюцца ў рэзультатах злучэння.
Наступны YAML ўособлівае контракт для працоўніка кліента. Яго шляхі, назвы версій і ідэнтыфікаторы пераканання належаць да прыкладу, і ён не ўтварае стандарту ні не ёсць часткай API якога-лібо фрэймворку.
task_id: pagination-client-17
objective: Fetch successive pages using next_cursor; stop at null.
inputs:
repository:
ref: product-repo
revision: base-42
requirement:
ref: pagination-behavior
revision: r3
interface:
ref: api/pagination.yaml
revision: r7
scope:
writable:
- client/pagination.ts
- tests/client/pagination.test.ts
non_goals:
- interface_changes
- api_changes
- deployment
deliverable:
- patch_against_base-42
- check_results_bound_to_patch_and_input_revisions
acceptance:
checks:
- client-pagination-unit
- pagination-api-client-e2e
owner: product-maintainer
policy_ref: client-worker-v2
failure:
stale_or_conflicting_input: stop_and_report_to_owner
missing_evidence: return_incomplete
authority_required: request_owner_decision
max_attempts: 2
exhausted: return_unaccepted_to_owner
Назвы каналайнаў должны адпавядаць рэальным камандам і перакананням у рэестры, які контролюець запускач. У гэтым прыкладзе яны паводзяцца пра каналайны ўстаткі адработкі курсора і каналайн «з начала да канца», які пераглядае кальколькі стороніц у співваротнасці з фактычным кандыдатскім API, укладаючы ў сябе заканчальны null. Кліентскі працоўнік можа запускаць своі сабсканалайны ўстаткі, тады як інтэграцыйны запускач стварае сумаваныя доказы, калі існуюць оба патчы.
Таксама policy_ref проста называе палітыку. Дыстрабютор павінен прыяўжаць затвердзены ўпадзел да аўтэнтыфікованага працоўніка і шукаць палітыку ў настройкach, якія працоўнік не можа рэдагаваць. Нявядомы каналайн або запіт на сільнейшую палітыку должны спрачынаць неяксамоўцю, а рэдагаванне YAML ніколі не должна даўаць дадатковыя правы прыступу.
Абсалютна колькасць спроб выкарыстоўвання працы лімітуецца двумя — гэта местны выбар, які не дазволяе цыклам рэмонту стаць бесканечнымі, але ён нічога не сказвае пра надзяйнасць. Канечны бюджэт выканання, заданный власнікам, гарантуе, што жадна з спроб не будзе працаваць безканечна.
Структураваная задача не ўтварае меж адзначэння прав. YAML можа опісаць намечаны дыяпазон, але сістэма выканання все рава должна яго саблюдаваць.
Паслед з крокаў, які рэалізуе контракт
Навакола працоўнікаў існуе паслед з крокаў. «Рэчыгар» у гэтым случае — гэта проста програмнае забезпечэнне, якое запускае працоўніків, коордынуе ўжытак іх інструментаў і фіксуе тое, што адбываецца.
- Затвердзіць залежнасці: власнікі продукту і API падпішоцца пад трэбаванні і інтарфейс.
- Параболіце правільнасць задачы: яе автар падае контракт і узгоджаныя версіі.
- Разпаўненне праз застосоўвання правіл: дыспетчар запускае ізольаваныя працоўнікі API і кліента.
Заданне можа быць створанае чалавекам чы іншым агентам. Пасля чаго выконваюцца два пераканання: дэтэрміністычны верыфікатор паўтарае структуру і пераканаецца, што всі рэферэнсы справядлівы, а адпаведальны власнік паўтараецца, што тэкст дзе-правда падтрымвае трэбаванні продукту. Пасля чаго дыстрыбютар чакае, пакуль не будуць апраўнаныя залежнасці, заваносіць неабходныя даны і запускае кожнага працоўніка ў межах яго заданняў.
Чатыры пытаннія трэба заліць адзінаковымі. Перакананне ў правамернасці схемы выявляе, чытырэх неабходных поль ёсць і чы яны правільна сформаваны. Семантычная адказальнасць пераканваецца, чы распадзел опісвае правільную працу. Адбыцьце разрэшэнняў выявляе, чы працавальнік можа перакрыць свае правы. Доказы рэзультатаў выявляюць, чы сумарны продукт задовольняе трэбаванні. Дакумент, які ў структурным сэнсе правамерны, адпавядае толькі на першае пытанні.
Для адбыцьця разрэшэнняў спіс паходзжыных шляхоў, якія можна запісваць, павінен стаць справжнім обмежэнням пад час выканання, падтрымваным пераказаннем пра змяненыя файлы пад час інтэграціі. Доступ да шэлу не павінен даваць другой спосаб праехаць за межы кантролю файлоў чы сеткі. Адзінаковы працэс апрацоўкі праекта залічвае ўсе прыказы адзінам, але сам по сабе ён не являецца межай разрэшэнняў.
У аанунсе GitHub працы з кераваннем правамі з 9 сябрэля опісваюцься аперацыі, якія заблаканы цэнтралязавана, выклікаюць патрабованне на затверджэння або ўзначылены як дазволеныя, пры чым існуюць ліміты, якія настройкі рабочага прастору не можа зменшыць. У апісанні архітэктуры працы з агентнымі праблемамі опісваецца ізольаваная експансія і пасэквентныя, пераканальваныя запісы. Оба прыклады ўскладненнях механізмаў адбавлення, і ніхто з іх не падтверджвае, што такі дызайн дэлегавання паспрыява крашчам выкананню аб гарантуе правільныя змены.
Автарскіе права на сумаваны рэзультат
У прыкладзе пагінацыі інтэграцыйны запускчык сумавае пропозыціі API і кліента ў тымчасовы рабочы прастор. Ён пераканальвае дыячны спектар, верыфікуе перасправкі дадзеных і запускае зарэўнаваныя пераканальвання прыемкі адносна самэго таго кандыдата. Потым аўтар прыемкі чытае доказы і вагае будзь-яе адгукненне да продукту, якое пераканальвання не можа выявіць.
Незалежная апробацыя означае, што працавак, які выканаў работу, не контролюе сам або крэтарыіяў і доказаў. Асэрцыі і фікстуры на всіх этапах залішаюцца праз адзін узлёт працавака, а рэзультаты прыязначаюцца да канклаву кандыдата. Апробацыя можа сумаваць дэтэрміністычныя перакананні з удзелам людзкага адпаведальнага, а іншы LLM ёсць необавязковым. Адзначэнне мадэлі як Супервайзера не стварае аўтарытэту і не робіць яе суджэнне надзеяным.
Толькі аўтарызаваны власнік можа змяніць крэтарыяў апробацыі, і чыніць гэта з запісанай прычыной і новай версіяю задачы. Агент, які выканаў работу, можа прагледзець змяну, але не можа выключыць нездаўшыся тэст з комплекту чы перадзначыць пагінацыю як завершаную пасля адной сторонічкі.
Нарэшце автарызаваны інтэгратор практыкуе выбранага кандыдата праз захаваны шлях з’еднання, які ужо існуе. У запісе прыемкі называецца точны кандыдат і версіі дадзеных, якія ён павінен абараць. Калі цэльвы прабанок будзе развівацца раней, чым адбудзецца інтэграція, кандыдат паўтарна ствараецца і спачатку перапрацоўваецца ў супарадненне з новай базой.
Рэзультаты, якія ствараюць суперсчэплення, вяртаюцца таму, хто ўладае спарчаным рубункам. Две правдападобныя інтэрфейсы застаюцца двума несуміснымі інтэрфейсамі, таму пакуль той власнік не выберае, жадна з прыдумкаў не становіцца спольнай дэфініцыяю проста таму, што прайшла першай.
Адарожванне неудач належыць да таго ж працэсу
Кожны з гэтых случаў павінен быць перапрацоўаны окрэма ў межах працэсу паградзення, з прыемлемай адпаведзю і відповідальным элементам, які будзе яе адбавляць.
Калі оба працоўнікі прагледзяць зменіць інтэрфейс, дыстраб’ютор адхоўчае можлівасць супаралельнага кантролю над яным, а обмежэнні часу выканання не дазволяюць здзейсніць некантрольаваныя змены. Інтэграцыя адхоўчае будзь-які патч, які выхоўваецца за межы назначанага яму дзіяння, а власнік API прымае рашэнне ўжо па запрасці змены.
Якшча версія інтэрфейсу зменяецца пад час ведучыхся работ, пераканальнік залежнасцей пазначае такую прыдумку як застарэлую. Власнік выбірае, чы хочаць праказаць яе знову па новай версіі, а інтэграцыя можа не прыміць без падтрымкі доказы, збораныя для старой версіі.
Калі з’яўляецца правдападобны код без доказаў, брама прыманення фіксуе яго як непачаты. Доверлівы выканавальнік адрабоўвае неабходныя перакананні, і паведамленне пра завершэння не можа заменіць сабою рэзультаты.
Калі працоўнік зупіняецца на паўпацёгу, прыстрой для крэплення фіксуе гэтую перарву і заставляе частковы практык у сабе. Перш чым запускаюцца працы замены, старая спроба адхоўваецца, ўбачлівая, што яна не зможа пазней адправіць прыйняты рэзультат.
Калі павторная спроба можа стварыць два аднаковыя серэдавішча прадварожнага перэгляду, адаптэр зовнішняя дзеянне спачатку супрацоўвае з ранейшым запітам. Калі прадаўцы падтрымлівае усуненне дуплікацый, вікорыстоўваецца стабільны ключ аператыў, а эфекты, якія застаюцца невядомымі, перадаюцца власніку на перагляд.
Якшчы інтэграцыя выкарыстоўвае права, якіх няма у працоўніка, правілы інструмента блакуець аператыў і адправляе запіт праваму власніку. Практык застаецца непрыйнятым, пакуль не будзе прынятае рашэнне.
Сцэнарый прыгляду ў сярэдзе вокаляраванняя ўмовы ёсць неабавязковым дадаткам да прыклада, які належыць службе інтэграцыі, пры чым размешчэнне застаецца па захопленнем кліента-рабочага. Одна ключовая значэнняе операцыі пазначае адзін намечаны эфект у всіх практыках, ідэнтыфікатор практыкі разлічвае адзінаковыя выкананні, а практыка не павінна ствараць новую операцыю толькі каб пераканацца з неясным адказам.
Акаунт Agent Harness у Temporal опісвае стойкія выкананні і точкі кантролю ўнутрь ціклу агента, з можлівасцю вярнення і чакання на затверджэння. Цэў развіваючыся праект прадавца і не ёсць незалежным падтверджэнням. Для зовнішніх дзеянняў яшчэ патрэбна дэдуплікацыя або супрацоўка спецыфічная для прадавца, адколі сама стойкая оркестрацыя не дазволяе падтвердзіць, што эфекты выкананы роўна адназначна ў будзь-якай службе, і сама дакументацыя Temporal па практыках прасіць пра выяўленне дуплікатав у наступных практыках.
Кожны рэмонт выкарыстоўвае частку з адзначанага бюджэту спроб і рэсурсаў. Калі ўніз з’являецца нехапа, працэс работы вярта непрынятны рэзультат разам з доказамі і ім’ям адпаведнага власніка. Для прыняцьбы рашэнняяў таксама патрэбны тэрмін завершэння або спосаб іх анулювання, каб адпаведальнасць не засталася без увагі ў абанаванай розмове.
Контракты можаць формалізаваць некорэктную работу
Найсільнейшы аргумент — додатковыі расход. Калі адзін спецыяліст правяць змены ў адзінокай функцыі, сама проблема плюс існуючыя тэсты можуць вастаткі ўсё неабходнае для кантролю масштаба і прыняцьбы рэзультатаў. Для тымчасовых пратотыпаў і незалежных задач з нізкім рызыкам часта достатнія ясныя інструкцыі. Стварэнне спецыяльнага контрактнага сервісу толькі для перэзначэння такіх угод будзе беспраганна.
Контракты таксама не можу стварыць намерэнне продукту чы рэгламентаваць можнасці, якіх няма. Некалькаспрыводная структура застаецца некалькаспрыводной, кораляваныя памылкі продовжваюць існаваць, а прыстрой для апрэціяцы рэзультата, тое ў чым заключаецца перакананне пра тое, чы правільны выходны рэзультат, застаецца неякісным. Падазроўваю, што тэст з канца ў канец пераўтараеіснаўтае бракаваны макет кліента: тады яго паспяшны рэзультат абоўсюды прахоўвае первінны брак.
З гэтай прычыны такія рашэнні трэба паўставіць у адносе да простыях альтэрнатыў, укладаючых ў сябе аднаго агента чы дэтэрміністычны прабег задання. Пытанне заключаецца у тым, чы дадатковая коордынацыя павышае якасць выкаання задання чы прыменяе контроль над рэальным рызыкам для данага завантажэння.
Як яго тэставаць
Для гэтага элемента не было адбыто жадных новых эксперыментаў. Варта паўставіць у адносе тры конфігурацыі: аднаго агента (A), калькі агентаў з распадэленнем ролей (B) і калькі агентаў, якія выкаанавалі заданні за дапамогою чыстаеўых контрактов на дэлегаванне і вышэй указанага прабегу (C).
Справядлівасць выклікае надача A, B і C ідэнтычных інформацыяў пра заданне і крэтэрыяў яго адзначэння, параднага абладнання і мер гэтых мер, адпаведных умов пачатку працы і аднаго заявленага загальнага бюджэту рэсурсаў. B і C дзеляцца мадэлямі і колькасцю працоўнікаў, а A, калі гэта можліва, вікорыстоўвае адпаведную модэль. Аб’ектам даследжэння ёсць механізм дэлегавання і коордынацыі, без дадзячых можлівасцей чы сакрэтных трэбаванняў з іншай стороны.
B павінен падтрымліваць звычайныя захоны і корыстныя апісанні заданняў. Калі ў яго естэтычна вырастаюць чыткія даговоры пра перадачу заданняў, зафіксаваць такую поведынку і не забараняць яе. Публікуйце рэальныя конфігурацыі, каб параболіка не ператварылася на выгледнае адкаліканне проты намерна слабкага базовага варыянта.
Выбірайце задачы, якія відпраўляюць рэальную сумешанасць: дзеякія з незалежнымі элементамі, дзеякія з последовымі залежнасцямі, дзеякія з інтэфейсамі аб рэсурсамі, якія дзелююцца межа працоўнікамі. Прабыткі павторуюцца ў сяродовісцях, перзначаных занова, у аб’яднаным парадку, а звычайныя задачы застаюцца окрэмымі ад навмысна введзеных неудач. Пасля пілотнага тэсту конфігурацыі зафіксуюцца, задачы, якія застаюцься без рашэння, выкорыстоўваюцца для практычнага порэвання, а непяснасці фіксуюцца па структуры залежнасцяў.
Методологія ацэнкі Anthropic разлічае транскрыпт ад стану сяродовісці, якую ён застаўляе пасля сябе, і яна ацэнюе мадэль разам з ўсімі елементамі, якія яе падтрымліваюць. Гэта і ёсць правы момент для вімеры: чы робіцца пагінацыя ў аб’яднанай сяродовісці? Тое, што трое агентаў паведамляюць, што ўжо заканчылі, нічога не дазволяе ствердзіць.
Застосоўваюцца тры галоўныя показнікі: прыйнятыя рэзультаты з самага початку да канца, аб’ём выкарыстоўваных скоў за кожны прыйняты рэзультат і час, які прайшоў да яго прыняцтва. Складовыя скоў включаюць незусім успешныя прыбуткі, коордынацыю, пракаты занова, перагляд, налажванне і складанне контрактов. Пачатковыя вітраты фіксуюцца окрэма ад перыядычных скоў; паказваецца таксама будзь-якая гіпотэза амортызацыі, а час, які прайшоў на працу людзей, заносіцца ачэнна. Калі нічога не прынята, паказваецца загальная сума вітрачаных скоў і колькасць нулявых успехоў, а не едынічны скоў, які можа выглядаць конкрэтным, але вводзіць у памылку.
Паралельна з гэтым фіксуюцца працягі інтэграцыі, дублюванне працы, працягі, якія вынікаюць з неактуальных дадзеных, втручання людзей, перакрыцця меж і рэзультаты, якія былі адхілены пасля таго, як было заявленае пра ўсуненне працягу. Пракаты, якія былі спробаваны і успешна завершаны, фіксуюцца окрэма, а незавершаныя прыбуткі і перакрыцця часу залішаюцца, ўбачліва паказваючы, што швыдкія успехі не маскуюць дзейневых працягу.
Правільна адзыёвка застарэлага патча доказвае, што функцыі кантролю працуюць, але задача продукту застаецца незавершанай, калі не будзе прынятыя правядзібная рэзультатна даньця ў межах бюджэту. Раннія рэзультаты пілотных працоў паказваюць толькі напрамак. Калі контракты прыносяць дадатковыя вітраты без крашчых рэзультатаў чы значна меньшага рызыку, разумны савет — адмовіцца ад іх для такога обсягу работ.
Пачніце з адной процедуры, яю можна пераглянуць
Разумны пачатак — гэта адзін існуючы рабочы працэс з двума працавальнікамі і адным чалавекам, які несе адпаведальнасць за прыняццё. Пераканаленне інтэграціі застаецца пахараўаным ад кантролю працавальнікаў, і кожны случай адказу працоўліваецца окрэма, перш чым расшырваецца сфера задачы. Короткая інструкція такога тыпу можа быць наданая агенту з кодавання:
Add the minimum delegation contract to [WORKFLOW].
Acceptance owner: [OWNER].
Preserve existing safety boundaries.
1. Inspect current delegation, inputs, permissions, and acceptance.
Exit: map who assigns, executes, checks, accepts, and commits.
2. Identify missing boundaries; reuse existing issues and checks.
Exit: owner-approved scope, revisions, deliverable, and criteria.
3. Wire the minimum contract into dispatch and result handling.
Exit: references resolve; proposals cannot accept themselves; unauthorized operations are blocked by the actual runtime.
4. Exercise valid and invalid handoffs in isolated fixtures.
Exit: demonstrate acceptance, conflict rejection, stale-input detection, missing-evidence rejection, interruption recovery, bounded retries, and authority escalation. Mock external effects.
5. Report changed files, commands run, outcomes, and remaining gaps.
Exit: distinguish implemented controls from unverified behavior.
Не заменяйце платформу аранжавання і не выконвайце некаляваныя задачы, а таксама не публікуйце, развярнучы, і не расшыруйце правы прыступу.
API, кліент і тэсты яшчэ залежаць ад спроможных працоўнікаў. Змена заключаецца ў правілах керавання імі. Перш чым сумарная праця будзе лічыцца завершанай, неабходна чытка адзначыць, што павінен включаць кожны вклад, хто можа яго прыняць і шта будзе, якга не можна прыняць. Назвы паводакоў ніколі не візначаюць такых меж.