Практычныя прытлумленнія: запит, контекст, креплення, цикл: чатыры шары інжынерыі
Практычныя прытлумленнія: запит, контекст, креплення, цикл: чатыры шары інжынерыі: контракты, перакантрольваннія і месцы для коду для команд, якія викорыстоўваюць гэты патэрн.
Існавайце гэта як перапрацоўаны варыянт ідэй з артыкула «Prompt, context, harness, loop: the four layers of engineering an AI agent» для аператараў: чыстыя этапы, аранжаваныя блакі для коду і прыметкі з восстанавлення, якія застаюцца пасля перадачы. Этап Аналізу працюе найэфектывней, калі яго розглядаць як вимерную плошчу. Запісаўце адна ідеальная версія, адзін прыклад неудачы і прыметкі з вярнення да пачатковага стану прычаму расшырэння масштаба. Дакументавайце як успішны, так і няуспешны шляхы виконання. Перапрыбуткі, людзкі контроль і обработка некоректных паведамленняў є частью продукту, а не наступным етапам дорабкі.
Слой 1: Інжынерія запросаў (тое, што вы кажаце)
У стадії інжынірингу запроса 1-го шара неабяжна практычна вызначыць даннэ, адпавядаючага за крок і критэрыі завершэння пры перадзеяванні коду. Аператары должны магчымаць перзапуск кроку з вядомай точкі контролю, не падозрываючы схованы статус. Лепш выбіраць маленькія, тэставаныя елементы замест большых скрыптов. Калі крок не выйшаў, прычына нехасабності павінна вказываць на адзіну адпавядаючую сторону, а не на заплутаны ланцужок задач. Калі наступны крок — гэта код або вызов інструмента, лепш выбіраць структураваныя выходны даннэ з пераканальванням схемы замест вольнага формата тэксту.
Look at this GitHub issue and label it.
You are a triage agent for project X. For each issue, output JSON with:
component (one of the values in the taxonomy provided in context)
severity (critical | high | medium | low)
team (the owning team from the on-call table provided in context)
Base severity only on user-facing impact stated in the issue, not on your
own guess about difficulty. If the component is ambiguous, set
"component": "unknown" rather than guessing.
2-й шар: інжыніринг контэксту (што ведае модель)
У стадії інжынернага проектавання на рэвэрсе 2 неабяжна практычнаць вхідныя даны, абоўязкі таго, хто выкаанае цей крок, а таксама критэрыя завершэння пры зміне коду. Аперацыйныя системы должны магчымаць перзапуск кроку з вядомай точкі контролю, не падозрываючы прыхованы стан. Цю стадію трэба спрыяць як кантракт межа вхіднымі данымі і перакананымі выходнымі рэзультатамі. Назваць всі элементы, практычнаць перакананні на успех і не прымаць часткова завершанне без падтверджэння. Калі наступны крок — гэта код або вызов інструмента, лепш выкаанаць структураваныя выходныя даны з перакананнем схэмы, чым простае тэкстовае выказванне.
Рэвэрс 3: Актывацыя інжынерных можлівасцей (што можа зрабіць модель)
Для стадіі інжынерскага разрабаткі Layer 3 Harness неабяжна ўзначыць вхідныя даны, адпаведальнага за крок і крэтырыя завершэння пры зміне коду. Аперацыйныя працавнікі должны магчымае перайсці на выкананне кроку з вядомага пункта контролю, не спрабоўваючы здагадвацца пра схованы стан. Запісвайце час выканання і кост токена або запыту празаўсёды разам з функцыйнальнымі рэзултатамі. Відразы костаў з самага пачатку запобегае неспакойным рахункам, калі процес пераходзіць з дэмавайшага режыма ў спакульнаныя сераўысы. Калі наступны крок — гэта код або вызов інструмента, лепш выкарыстоўваць структураваныя выходныя даны з перакананнем схэмы, чым вольныя тэкстовыя апісанні. Для стадіі інжынерскага разрабаткі Layer 3 Harness неабяжна ўзначыць вхідныя даны, адпаведальнага за крок і крэтырыя завершэння пры зміне коду. Аперацыйныя працавнікі должны магчымае перайсці на выкананне кроку з вядомага пункта контролю, не спрабоўваючы здагадвацца пра схованы стан. Апісвайце адночасна «шчаслівы» і «вярнучыся» шляхі. Перапрыбуткі, людзкія контрольныя пункты і обработка неканальных паведамленняў є часткай продукту, а не чымсь, што дадаецца пазней.
{
"name": "apply_label",
"description": "Apply a label to a GitHub issue. Only use after reading the issue body and checking the component taxonomy.",
"parameters": {
"type": "object",
"properties": {
"issue_number": { "type": "integer" },
"labels": { "type": "array", "items": { "type": "string" } }
},
"required": ["issue_number", "labels"]
}
}
Слой 4: Інжыніерыя цыклаў (што робіць яго агентам)
Калі працуеце над стадзіяй інжыніерыі цыклаў Слоя 4, спачатку запісайце умовы: неабходныя даннэ, сігнал успеху і тое, што выканаецца у разы частковага абякання. Такі список контроля дапамагае заліцьваты чыстасцю пазнейшых змян у кодзе. Валідзіце маленькія, тэставаныя елементы замест большых скрыптаў. Калі якісь крок абякае, абяканне должна паказваць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцужок задач. Зберагаюце у кэшы стабільныя інструкцыі системы і схемы інструментаў. Перадзял у той жа прамэр ёсць частым выклікам ресурсавых працоў.
def agent_loop(goal, max_iterations=10):
context = gather_initial_context(goal)
consecutive_errors = 0
for i in range(max_iterations):
action = model.decide(context, goal)
if action.type == "done":
return action.result
result = execute(action)
if result.error:
consecutive_errors += 1
if consecutive_errors >= 3:
# stuck: same approach keeps failing, decompose differently
context.add("Previous approach failed 3 times. Try a different strategy.")
consecutive_errors = 0
else:
consecutive_errors = 0
context.add(result)
return escalate_to_human(context)
Адны агент, чатыры слоі: сортаванне проблем у GitHub
Калі працюеце над стадзіяй «Аднаго агента чатыро слоя», спачатку запісайце кантракт: неабяжлівыя даннэ, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список пераконтроўкаў дапамагае заліцьварыць пазнейшыя змены ў кодзе. Спрыймайце гэтую стадзію як кантракт межа даннэмі і перакананымі выходамі. Дайце назву рэзультатам, задаце критэрыя успеху і не падтрымайце тыхі частковыя завершэння. Зберагаюце у кешы стабільныя інструкцыі системы і схемы інструментаў. Перадача ідэнтычных прамулкіў — частая прычына збытка ресурсаў.
Звядзе гэты слоўнік
Калі працуеце над этапам «Звядзе, звядзе гэты слоўнік», спачатку запісайце угоду: неабходныя даны, сигнал успеху і тое, што выканаецца у разы частковага неудачы. Такі список контроля дапамагае заставіць пазнейшыя змены коду быць чыстымі. Запісвайце час выканання і кост токенаў або запытаў пад функцыйнальнымі рэзултатамі. Відразы костаў з самага пачатку запобегае неспакойным рахункам, калі парадок пераходзіць з дэмаверсіі ў спяльныя среды. Зберагаеце у кэшы стабільныя інструкцыі системы і схемы інструментаў. Перасылка ідэнтычных прамуров ёсць частым выклікам затрат. Калі працуеце над этапам «Звядзе, звядзе гэты слоўнік», спачатку запісайце угоду: неабходныя даны, сигнал успеху і тое, што выканаецца у разы частковага неудачы. Такі список контроля дапамагае заставіць пазнейшыя змены коду быць чыстымі. Дакументавайце як «шчаслівы» парадок, так і парадок вяснавання. Перапрыбуткі, людзкія контралі і обработка некоректных паведамленняў ёсць часткай продукту, а не пазнейшым дапрацоўкам.
Дзе пачнуць інвеставацію
Этап «Дзе інвеставаць першыя» працуе найэфектывней, калі яго спрыяваць як меравальную плошчу. Запісайце адны ідеальны прыклад, адну справу з неудачай і прыметку па вярнэнню да пачатковага стану пры расшырэнні масштаба. Валіце маленькія, тэставальныя элементы замест большых скрыптов. Калі якісь крок не выйшоў, прычына неудачы павінна вказываць на адную адпаведальнасць, а не на заплутаны ланцужок задач. Задаце ліміт токенав на кожны раунд і на кожную сесію. Інструменты-агенты агрэсывна расширваюць контекст; строгі ліміты не дазволяюць дэмам ператварыцца на неспакоўлівыя рахункі.
Чэрніцца выканання
Калі працуеце над этапам чэрніцы выканання, спачатку запісайце умовы кантракту: неабходныя данні, сігнал успеху і тое, што выходзіць пад частыя неудачы. Гэта чэрніцца дапамагае залічваць пазнейшыя змены ў кодзе.
Зберагаце настройкі праза код аплікацыі. Файлы сяродавішча, хранільнікі секрэтных данных і флагі функцый павінны знаходзіцца ў адном месцы, якое аператары можаць пераглядаць без неабходнасці чытання всей структуры.
Зберагаеце інструкцыі стабільной системы та схемы адзінакоў. Павторная апрабоўка ідэнтычных прамарав яе ўпрымку ёсць частым выклікам працоўной нестабільнасці.
Адкройце адзінаковыя інструменты з вузкімі схемамі та чысткімі пазначэннямі побачных эфектаў. Хостам неабходна знать, якія вызовы мутуюць стан, перш чым яны будуць аўтаматычна затверджаны.
Заставьце людзкую апрабоўку для тых операцый, якія витрачаюць грошы чы зменяюць данні ў працэсе виробніцтва. Компіляцыйныя наладкі не ўзроўнаважваюцься з полным адпаведнасцю да бізнес-трэбаў.
Напісце кароткі посібнік: як роўнаць клучы, як спрачыслаць чергу, як анулюваць пярэднія змены.
Перш чым пераводзіце стак, заморозьце версіі, зафіксуйце ідеальны транскрыпт для критычнага маршруту та паказваце крокі анулювання. У спадзяльных средах неабходны ліміты частоты вызоў, пераказы належнасці та чысткі власнік для роўнаць канфідэнцыйных дадзеных. Валіце простую надзеянасць на стабільнасць працы, а не крэатывныя, але разовыя дэманстрацыі.
Запіска параграфу 8d0c322cbcd1: не трэба кантрацеўваць ключы прадаўцаў у репазітарыі, задаць максімальную кантроль на токены на адну сесію, а таксама зберагчы транскрыпціі празаўседле з фікстурамі для ацэнкі, каб пазнейшыя замены моделей заставалі пораўнанневымі.
Запіска па ўжорсткаванню на стадыі 0 найэфектывней працуе, калі яе спрыямаць як мерыемую плошчу. Зафіксавайце адну ідеальную транскрыпцію, адзін прыклад неудачы і запіску па вярнэнню да пачатковага стану пры расшырэнні масштаба. Спрыяйце гэтай стадыі як кантракту межа вхіднымі дадзеннямі і перакананымі выходамі. Падберіце назвы артыфактав, задаць критэрыя успеху і адмовіцеся ад беззвучнага частковага завершэння.
Дзеянне ўжорсткавання 0/899: замерыце час выкарыстання, класію адзінакоў і кансуматывнае выкарыстанне токенаў для гэтай запіскі, а пасля — выявіце, чы хацяца застаўляць змены на адной фіксаванай сэтке пытанняў, а не на адной лічбе прыкладаў.
Для першага пасэгу з узгадчанняя системы задаюцца вхідныя даны, адміністратар крока і крэтэрыя завершэння пры зміне коду. Аперацыйныя працавнікі должны магчымае перадзеяць крок з вядомай точкі контролю, не падозрываючы схованы стан. Конфігурацыю трэба залічыць праза код аплікацыі. Файлы сераўнавання, хранільнікі секрэтных дадзеных і флагі функцыйяў должны знаходзіцца ў аднам месцы, якое працавнікі можуць пераглядаць, не чытаючы весь ланцуг.
Дзялейны пасэг узгадчання 1/899: звярнуць увагу на час выканання, класію адзінакоў і выкарыстоўванне токеноў для гэтага пасэгу, а потым вырашыць, чы робіцца змяна на аднойчынных крэтэрыях, а не на аснове індывідуальных спостарэнняў.
Калі працуеце над 2-й стадзіяю практыкы заспеклення, спачатку запісайце умовы кантракта: неабяжныя вхідныя даны, сігнал успеху і тое, што выходзіць пад частковым нявыпаннем. Такі список контроля дапамагае залічваць пазнейшыя змены ў кодзе чыста і прозрачна. Валіце маленькія, тэставаныя елементы замест вялікіх скрыптав. Калі якісь крок не выйшае, прычына нявыпанню должна вказваць на адзін конкрэтны аспект, а не на заплутаны ланцюг задач.
Дзеянне заспеклення 2/899: звярніце увагу на час выканання, класы каштоўкаў і витрату токенаў для гэтай практыкі, а потым вырашыце, чы робіць змены на адной основе фіксаванага набору пытанняў, а не на адной толькі прыватнай інформацыі.
2-я стадзія практыкы заспеклення працюе найэфективней, калі яе спрыямаць як меравальную плошчу. Запісайце адзін ідеальны прыклад роботы, адзін кейс нявыпанню і прыказку па адкатаванні, перш чым расширваць масштабы. Запісвайце час выканання і вартасць токенаў або запыткаў разам з функцыйнальнымі рэзултатамі. Відразувая візуабельнасць вартасцей запобегае неспакойным рашчыткам, калі процес пераходзіць з дэмаверсіі ў спяльныя сераўы.
Дзеянне паўжчання 3/899: звярніце увагу на час выканання, клас памылакі і колькасць выкорыстоўваных токенаў для гэтага запісу, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на асобістых спазыраннях, выявіце, чы робіць змены.
Для 4-го этапу паўжчання неабходна перад змянай коду чытка апісаць вхідныя даны, адпаведальнага за шаг і критэрыя завершэння. Аперацыяныя працавнікі должны магчымае перадзвануць шаг з вядомай точкі контролю, не падозрываючы прыхованы стан. Апісвайце як шлях успеху, так і шлях вяснавання ситуацыі. Праказкі, людзкія перакрытчыкі і обробка некоректных паведамленняў є часткай продукту, а не чымсь, што дадаецца пазней.
Дзеянне паўжчання 4/899: звярніце увагу на час выканання, клас памылакі і колькасць выкорыстоўваных токенаў для гэтага запісу, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на асобістых спазыраннях, выявіце, чы робіць змены.
Калі працуеце над 5-м падзёлам прыемкі забезпечэння, спачатку запісайце кантракт: неабяжлівыя вхідныя даны, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список пераконтроўвае, каб пазнейшыя змены коду былі чыстымі. Спрыятлівае ставленне да гэтага падзёла як да кантракта межу вхіднымі данымі і перакантролёванымі выходнымі рэзультатамі. Дайце назвы артыфактам, задаце критэрыя успеху і адмовіцеся ад мовчанкавага частковага завершэння.
Дзеянне забезпечэння 5/899: вымерыце час выканання, класію каштоўкаў і витраты токенав для гэтай прыемкі, а пасля выявіце, чы хацеце застаўіць змену на адной пазначанай сэткі пытанняў, а не на адной лячбе.
5-й падзёл прыемкі забезпечэння працюе найэфектывней, калі яго спрыятлівае ставленне як да вимернай плошчы. Запісайце адна ідеальная транскрыпцыя, адзін прыклад нявыпання і прыемку для адвярнення змян, перш чым расширваце сферу дзейства. Зберагачыце настройкі параду ўнутры коду прыемленае. Файлы сераўіса, хранільнікі секрэтных дадзенняў і флагі функций павінны знаходзіцца ў адном месцы, якое аператары можаць перакантролёваць, не чытаючы весь граф.
Дзеянне паўжчання 6/899: звярніце увагу на час выканання, клас памылакі і колькасць выкорыстоўваных токенаў для гэтага запісу, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на асобістых спазыраннях, выявіце, чы хацяце застаўіць змены.
Для 7-й стадзіі паўжчання неабходна перад змянай коду чытка апісаць вхідныя даны, адпаведальнага за крок і критэрыя завершэння. Аперацыяныя працавнікі должны магчымае перадзвануць крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Лепш выбіраць маленькія, тэставаныя елементы замест большых скрыптов. Калі крок не выйшоў, прычына нехарактернага рэзультата должна быць адносна конкретнай адпаведальнасці, а не сложнай сэткі крокаў.
Дзеянне паўжчання 7/899: звярніце увагу на час выканання, клас памылакі і колькасць выкорыстоўваных токенаў для гэтага запісу, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на асобістых спазыраннях, выявіце, чы хацяце застаўіць змены.
Калі працуеце над 8-м стадзіям прыемкі з павышэння безпекі, спачатку запісайце умовы кантракту: неабяжлівыя данні, сігнал успеху і тое, што выходзіць пад частковыя неудачы. Такі список контроля дапамагае заліцвачыць пазнейшыя змены ў кодзе. Запісвайце часы выканання і вартасьць токена або запита праза функцыональныя рэзултаты. Відразувая візуабельнасьць вартасцей запобегае неспакоўным рахункам, калі процес пераходзіць з дэмаверсіі ў спяльныя сераўы.
Дзеянне прыемкі з павышэння безпекі 8/899: вымерайце час выканання, класію памылак і витрату токена для гэтай прыемкі, а пасля выберайце, чы робіць змену на адной пазначанай базе пытанняў, а не на адной толькі прыватнай інформацыі.
8-я стадзія прыемкі з павышэння безпекі работае лепей, калі яе спрыямаць як меравальную плошчу. Запісайце адну ідеальную транскрыпцыю, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расширваць сферу дзеяння. Дакументавайце як успішны, так і вярнэнчы выкарыстоўвання. Перапрабавкі, людзкія контролы і обработка неканальных паведамленняў є часткай продукту, а не чымсь, што дадаецца пазней.
Дзеянні паўжасткі 9/899: звярніце увагу на час выканання, клас памылак і колькасць викорыстоўваных токенав для гэтага зьязку, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на індывідуальных прыкладах, выявіце, чы хацяце застаўіць гэтыя змены.