Галоўная / Артыкулы / Разработка апарата для ацэнкі супараднасці твярджэнняў для агента, які выконвае рэальныя замовленні

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

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

3819 слоў

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

Проектаванне адказчыка для перакантрольвання адпаведнасці тэзаў для агента, які ставя рэальныя замовленні, у дыялекте без інструментаў NLP

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

Чаму гэтая нявыполненасць заслуговае на першы адказчык

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

Першая версія і чаму гэта число выглядала як прагрэс

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

flag  ⟺  claim_regex.matches(reply)  ∧  ¬ any(call.name == "create_order" for call in trace)

Што мела ў сабе стэйз-інформацыя

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

Парадакт перадумоўкі: разбівка па тых, хто должен гэта выправіць

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

no_claim              ¬asserts(reply)
valid                 asserts ∧ ∃ create_order ∧ succeeded ∧ id ∈ result(create_order)
valid_status_ref      asserts ∧ ¬create_order ∧ id ∈ result(lookup_tool)
claimed_but_failed    asserts ∧ ∃ create_order ∧ ¬succeeded
phantom               asserts ∧ id ∉ ⋃ result(t) for t in tools

Перакананне, якое выкаанае работу

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

def classify(reply, trace):
    if not asserts_order_exists(reply):
        return NO_CLAIM
    ids = extract_identifiers(reply)          # candidates from the reply text
    ids -= phone_number_shaped(ids)           # local numbers collide with order ids    creates = [c for c in trace if c.name == "create_order"]
    lookups = [c for c in trace if c.name in LOOKUP_TOOLS]    backed_by = {c: ids & identifiers_in(c.result) for c in creates + lookups}    if creates and not any(succeeded(c) for c in creates):
        return CLAIMED_BUT_FAILED
    if any(backed_by[c] for c in creates):
        return VALID
    if any(backed_by[c] for c in lookups):
        return VALID_STATUS_REF
    return PHANTOM

Частка без спрытнасці

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

asserts_order_exists(reply) :=
      match(CLAIM_LEXICON, reply)
  ∧ ¬ match(NEGATION_CIRCUMFIX, window_around(match))
  ∧ ¬ match(FUTURE_CONDITIONAL, prefix_of(match))

Чаму не использоваць суддю на аснове LLM?

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

Што яшчэ не так

У стадії «Што ўсё яшчэ не так» неабходна прадзефінавацыя вхідных дадзеных, адпаведальнага за крок і крэтарыяў завершэння працы перад зменым коду. Аперацыйныя працавнікі должны магчымае перзапускаць крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Конфігурацыю трэба залічыць паза кодам прыемленае. Файлы сераўнавання, хранільнікі секрэтных дадзеных і флагі функцыйяў должны знаходзіцца ў аднам месцы, якое працавнікі можуць пераглядаць, не чытаючы весь граф. Калі дозволяе бюджет, трэба дадаць тест на адпрацоўкую критычнага шляху ў системе CI з викорыстанням фіксатываў, а не рэальных платных API.

# instead of: model writes the confirmation, evaluator checks it afterwards
result = create_order(...)
if result.ok:
    reply = CONFIRM_TEMPLATE.render(order_id=result.order_id)   # model never holds the pen
else:
    reply = model.compose(FAILURE_CONTEXT)                       # nothing to fabricate

Што спануліла працу

Для ўрагу «What held up» паказвайце вхідныя даны, абавесць крока і критэрыі завершэння пры перадзеяванні коду. Аператары должны магчымаць перзапуск крока з вядомай точкі контролю, не спрабоўваючы здогадвацца пра схованы стан. Документавайце як шлях успеху, так і шлях вярнення. Перапрыбуткі, людзкія контралі і обработка некоректных паведамленняў є часткай продукту, а не яго пазнейшай дапрацоўкі. Калі бюджет дазволяе, дадзіце тэст на перапрыбуткі, який працюе з критычным шляхам у системе CI за дапамою фіксатываў, а не з рэальнымі платнымі API.

Проектаванне аднойчынніка для пераканання ў адпаведнасці заяваў для агента, які ставяе рэальныя замовленні, у дыалекте без інструментаў NLP

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

чырвоныя среды.

Чаму гэтае незвяжанне заслуговае на першага ацэнавца

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

Першая версія і чаму гэтае число выглядала як прагрэс

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

flag  ⟺  claim_regex.matches(reply)  ∧  ¬ any(call.name == "create_order" for call in trace)

Што мела ў сабе створчасць

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

Падход: разбіце на часткі па тым, хто должен гэта вылечыць

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

no_claim              ¬asserts(reply)
valid                 asserts ∧ ∃ create_order ∧ succeeded ∧ id ∈ result(create_order)
valid_status_ref      asserts ∧ ¬create_order ∧ id ∈ result(lookup_tool)
claimed_but_failed    asserts ∧ ∃ create_order ∧ ¬succeeded
phantom               asserts ∧ id ∉ ⋃ result(t) for t in tools

Перакананне, якое выкаанае работу

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

def classify(reply, trace):
    if not asserts_order_exists(reply):
        return NO_CLAIM
    ids = extract_identifiers(reply)          # candidates from the reply text
    ids -= phone_number_shaped(ids)           # local numbers collide with order ids    creates = [c for c in trace if c.name == "create_order"]
    lookups = [c for c in trace if c.name in LOOKUP_TOOLS]    backed_by = {c: ids & identifiers_in(c.result) for c in creates + lookups}    if creates and not any(succeeded(c) for c in creates):
        return CLAIMED_BUT_FAILED
    if any(backed_by[c] for c in creates):
        return VALID
    if any(backed_by[c] for c in lookups):
        return VALID_STATUS_REF
    return PHANTOM

Частка без шляха прышвартавання

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

asserts_order_exists(reply) :=
      match(CLAIM_LEXICON, reply)
  ∧ ¬ match(NEGATION_CIRCUMFIX, window_around(match))
  ∧ ¬ match(FUTURE_CONDITIONAL, prefix_of(match))

Чаму не викорыстаць суддю на аснове LLM?

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

Што яшчэ не так

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

# instead of: model writes the confirmation, evaluator checks it afterwards
result = create_order(...)
if result.ok:
    reply = CONFIRM_TEMPLATE.render(order_id=result.order_id)   # model never holds the pen
else:
    reply = model.compose(FAILURE_CONTEXT)                       # nothing to fabricate

Што спануліла працу

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

Чэкліст аператывання

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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