Галоўная / Артыкулы / Практычныя прытамулі: Чаго ўзначае цикл агентнага кодавання? І як яго стварыць.

Практычныя прытамулі: Чаго ўзначае цикл агентнага кодавання? І як яго стварыць.

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

2248 слоў

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

Простая адзначэння і шлях розвітку

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

Найпростейшы цикл: адна лінія bash

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

while :; do cat PROMPT.md | claude -p --dangerously-skip-permissions; done

Версія з аднам камандам: /goal і /loop

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

/goal all tests in test/auth pass and the lint step is clean,
      or stop after 20 turns
> /goal all tests in test/auth pass, npm test exits 0, or stop after 15 turns
◎ /goal active · turn 1
  ran: npm test
  ✗ 2 failing in test/auth/login.test.ts
  judge: not done, expired-token case still throws◎ /goal active · turn 2
  edited src/auth/token.ts
  ran: npm test
  ✓ 41 passing, exit 0
  judge: done, npm test exits 0 and only auth files changed✓ goal achieved · 2 turns · ~$0.40
/loop babysit all my PRs. Auto-fix build issues, and when
      comments come in, use a worktree agent to fix them.

Элемент, які робяць гэты прыемлівым: самапераканаленне

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

loop:
  agent: make progress on the task
  run:   npm test  (or the build, or the linter)
  if check passes:   done, exit
  if check fails:    feed the failure back, try again
  if no progress in N tries, or budget hit: stop and ping me

Элемент, які захоўвае фінансавую стабільнасць: правілы і абмежэнні

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

max_iterations:   stop after N turns           (the runaway cap)
no_progress:      stop if M turns change nothing (the stuck cap)
budget_ceiling:   stop at $X or T tokens         (the wallet cap)
on_stop:          ping me with the state and the reason

Актывацыя ў цікле — это навык, а не запрошэнне

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

Куды ўсё ідзе: ціклы, якія керуюць цікламі

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

Стварыце свой першы цікл ягоўжні

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

Чэк-ліст для эксплуатацыі

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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