Галоўная / Артыкулы / Практычныя прытамулкі: Мінімальная платформа для експерыментавання для агентаў AI

Практычныя прытамулкі: Мінімальная платформа для експерыментавання для агентаў AI

Практычныя прыказкі: Мінімальная платформа для експерыментавання для агентаў AI: контракты, перакрыцчы і слоты для коду для команд, якія викорыстоўваюць гэты патэрн.

2255 слоў

Наступныя прыміткі паказваюць практычны падход да стварэння «Мінімальной працэздатной платформы для эксперыментавання з агентамі ШІ». Акцэнт ставяцца на кантракты, пераконтроўкі і месца для коду, які можна легка заменіць, а не на мотывацыйныя аспекты. Калі працуеце на стадіўцы агульнага перакладзення, спачатку запісайце кантракт: неабходныя даны, сігнал успеху і тое, што вядзецца, калі выйшоў частковы бяда. Такі список пераконтроўкі дапамагае заліцваты пазнейшыя змены ў кодзе. Валіце маленькія, тэставаныя елементы замест амаль неканчатых скрыптав. Калі якісь крок не выйшоў, бяда должна адносіцца да адной конкрэтнай адпаведальнасці, а не да заплутанага ланца задач.

agent runtime
memory and retrieval
system prompt
model
tools
guardrails
application logic
should version B replace version A?

Апісанне таго, што насправды ёст меркавае B

Найэфектывнейшым спосабам выявлення таго, як фаза B працюе належначы, ёсць яе рассмотрэнне як вимерованай паверхні. Запісаце адна ідеальная транскрыпцыя, адзін прыклад неудачы і прыметку па вярнэнню да пачатковага стану пры расширэнні масштаба. Рассматрайце гэту фазу як кантракт межа вхіднымі даннымі і пераканаленымі выходнымі рэзультатамі. Даўце назвы артыфактам, задаце критэрыя успеху і не падзеўляйцеся частым, непূরным выкананнем задачы. Зберагаце стан графа ў простам і типаваным формате. Вярнутыя структуры данных маскуюць інфармацыю пра тое, який вузел запісаў кожны поле, і спакойваюць працэс пасля перарываў.

A = agent-v17
B = agent-v18
pipeline:
  name: support-agent
  version: 18

components:

  runtime:
    artifact: agent-runtime@sha256:...

  memory:
    artifact: memory-service@sha256:...
    configuration:
      strategy: hybrid
      top_k: 8

  model:
    route: support
    model: provider/model-x

  prompt:
    artifact: sha256:...

  tools:
    - artifact: customer-lookup@sha256:...
    - artifact: refund-tool@sha256:...
model X vs model Y
memory top_k=5 vs top_k=8

Заданне не ёсць (яшчэ адной) залежнасцю ад працоўнага сервісу

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

request
user
session
workflow_instance
workflow_instance = migration-8291
variant           = B
pipeline          = agent-v18

Заданне — гэта не адкрытасць

Процэс «The Assignment is not exposure stage» работае наяўней, калі яго спрыяваць як мерымабельную паверхню. Зберагачыце адны ідеальны прыклад роботы, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць сферу дзеяння. Храніце настройкі парадульна ад коду прыемліка. Файлы сераўнавальнага сераўса, хранілішчы секрэтных данных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаць адбавляць контроль без неабяжнага чытання всіх дадзеных. Храніце стан графа ў простам і типаваным формате. Вярнутыя структуры дадзеных маскуюць інфармацыю пра тое, який вузел запісаў канкрэтны поле, і спакшваюць возз'яджанне пасля перерываў. Процэс «The Assignment is not exposure stage» работае наяўней, калі яго спрыяваць як мерымабельную паверхню. Зберагачыце адны ідеальны прыклад роботы, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць сферу дзеяння. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, прычына неудачы должна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг дзеяння.

ASSIGNMENT
user-18271 → B

EXPOSURE
memory-v2 retrieval started
assigned          10,428
exposed            8,912
exposure rate      85.46%
assigned_variant = B
realized_model   = X
fallback_reason  = provider_unavailable

Хісторыі дзеяння адказваюць на пытанне, што сталося

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

experiment.id
experiment.version
experiment.variant
experiment.assignment_id

pipeline.id
pipeline.version

execution.purpose
B has a lower task completion rate
show failed B traces
assignment
exposure
outcome
feedback
evaluation

Оцэнка паўтарна, калі працуе без сеті, выкарыстоўвае той самы прайсепт

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

prompt
expected answer
scenario:
  id: duplicate-charge-001

input:
  message: >
    I was charged twice for order 9811.

environment:
  fixture: duplicate-charge-customer

expected:
  refund_count: 1
  ticket_status: resolved

limits:
  max_turns: 15
  max_tool_calls: 20
  max_cost: 0.50
REPLAY_DIVERGED

Выкананне ў тэневым режыме заполняе прасоц між афлайн- і працэсным режымам

Для адміністрування выконання у режыме Shadow, перш чым зменшваць код, неабяжна пазначыць вхідныя даны, адміністратара крока і критэрыя завершэння. Аператары должны магчымаць перзапуск крока з вядомай точкі контролю, не спрабоўваючы здогадвацца пра схованы стан. Конфігурацыю трэба знаходзіць за межамі коду прыкладнення. Файлы сераўіса, хранальнікі секрэтных дадзеных і флагі функцый належыць у аднам месца, якое аператары можаць пераглядаць, не чытаючы весь ланцуг задач. Неабяжна прыкладзаць людскія апраўды да тых рэштаў, якія витрачаюць грошы або зменяюць даны у працэйнай сістэме. Прыўязкі, створаныя пад час компіляцыі, не ўзначаюць повнайсткі реалізацыі бізнес-функцый. Для адміністрування выконання у режыме Shadow, перш чым зменшваць код, неабяжна пазначыць вхідныя даны, адміністратара крока і критэрыя завершэння. Аператары должны магчымаць перзапуск крока з вядомай точкі контролю, не спрабоўваючы здагадвацца пра схованы стан. Валіць кращэ маленькія, тэставаныя елементы над велікімі скрыптамі. Калі крок не выйшоў, прычына нехацкага рэзультата должна вказываць на адну конкрэтную адпаведальнасць, а не на шмат.

закрэненыя трубапрацоўкі.

latency
cost
tool usage
model fallbacks
guardrail failures
judge scores
trajectory differences

Не для всьго патрэбны суддя з LLM

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

refund_count == 1
ticket_status == resolved
helpfulness
clarity
tone
quality of explanation
evaluator
evaluator version
judge model
judge prompt
rubric

О! Па поводу статыстыкі

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

A/B allocation
binary metrics
continuous metrics
95% confidence intervals
sample ratio mismatch detection
fixed-horizon analysis
Experiment
support-agent-v18

Randomization
user

Primary metric
ticket resolution

A       81.4%
B       85.1%

Difference
+3.7 percentage points

95% CI
[...]

Experiment health
SRM PASS
4 model calls
47 model calls
max cost / execution
max tokens / execution
max agent turns
max tool calls
max variant spend / hour
Variant B

SRM                PASS
Error rate         PASS
Cost / request     +312%

Circuit breaker    TRIPPED
New exposure       PAUSED

Што ствараць першым

Калі працуеце над стадзіяй «Што пабудаваць першым», спачатку запісайце контракт: неабяжлівыя данні, сігнал успеху і тое, што выходзіць у разе частковага абярэння. Такі список пераканальвае ў тым, каб пазнейшыя змены коду былі чыстымі. Зберагаеце настройкі за межамі коду прыемлі. Файлы сераўіса, хранільнікі секрэтных дадзеных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаюць адбавіць аудыт без неабяжлівага чытання всей структуры. Ставяйце контрольныя пункты пасля дорогіх крокаў. Функцыя вярнення до роботы не должна занова ставіць плату за той самы вызов LLM, калі аператар перапрыяўляе роботу да наступнага элемента. Калі працуеце над стадзіяй «Што пабудаваць першым», спачатку запісайце контракт: неабяжлівыя данні, сігнал успеху і тое, што выходзіць у разе частковага абярэння. Такі список пераканальвае ў тым, каб пазнейшыя змены коду былі чыстымі. Валіце маленькія, тэставаныя елементы працы над велікімі скрыптамі. Калі крок не выйшаў, абярэнне должна паказваць на адную адпаведальнасць, а не на заплутаную лінію обробкі дадзеных.

assignment
exposure
outcome
feedback
evaluation
what was randomized
what treatment was assigned
what treatment actually ran
what pipeline version produced the execution
what outcome was measured
how that outcome was evaluated
What exactly did we run?
What happened when we ran it?
Did assigning users to B improve the outcome we care about?

Чэкліст аператыўнай роботы

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

Неабходна аддзеўнаваць інструкцыі па стандартным траекторыям роботы і траекторыям восстанавлення. Практыкі перапрыбутку, людзкія контралі і обработка некоректных паведамленняў є частью продукту, а не дадатковым элементам пасля завершэння розработкі.

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

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

Валідзіць маленькія, тэставаныя елементы працы больш, чым велікія скрыпты. Калі крок не выйшаў, прычына неудачы должна быць адносна конкрэтнай адпаведальнасці, а не сложнай сэткі крокаў.

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

Перш чым пераводзіць стэк, заморажваюць версіі, фіксуюць «золаты» транскрыпты для критычных ліній працы і паверачваюць крокі для адката. У спадзяльных средах патрэбны ліміты частоты, перакананні ў прыналежнасці і чыстае адпаведальнае аб’екта для ротацыі секрэтных дадзенняў. Лепш выбіраць простую надзею на надзейнасць, чым хітрыя експерыментальныя дэманстрацыі.

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

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

Дзеянне зміцнення 0/952: вымерыце час выканання, класію памылак і вартась токенаў для гэтага пункту, а потым выберыце, чы робіць зміны на адной пазухе фіксаванага набора пытанняў, а не на адной лепты.

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

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

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

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

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

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

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

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

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

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