Практычныя прытамулі: Агентны стак развіцця, шар за шарам
Практычныя прыказкі: стак агентных разработчыкаў, шар за шарам – кантракты, пераказы і месцы для коду для команд, якія выкарыстоўваюць гэты патэрн.
Існавайце гэта як перапрацоўаны варыянт ідэй з кнігі “The Agentic Developer Stack, Layer by Layer” для аператараў: чыстыя этапы, арганізаваныя блакі коду і прыметкі з восстанавлення, якія застаюцца пасля перадачы. Этап “Адгледжэнне” найкрашча працюе, калі яго розглядаць як вімерную плошчу. Запісайце адна ідэальная транскрыпцыя, адзін прыклад неудачы і прыметку з вярнення да пачатковага стану прычаму расшырэння масштаба. Запісвайце часы выканення і косты токенаў або запытак праза функцыйнае рэзультат. Відкрытыя даныя пра косты з’являюцца ранішэ, таму не будзе неспакою з рахункамі, калі працэс перэйдзе з дэма-серавераў у спільныя асяроддзя.
Загальная картына: адзін стак, пяць слоёў
Для этапы The Big Picture One неабяжна ўзначыць вхідныя даны, адпаведальнага за крок і крытэрыя завершэння пры зміне коду. Аперацыйныя працавнікі должны магчымае запускаць крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Конфігурацыю трэба залічыць пазначкай ад коду прыемлівання. Файлы сераўнавальнага сэрвісу, хранілішчы секрэтных дадзеных і флагі функцыйяў должны знаходзіцца ў аднам месцы, якое працавнікі можуць пераглядаць, не чытаючы весь ланцуг задач. Прызначыць людскія апраўджэння для рэбер, якія вітрачаюць грошы або зменяюць даны у працэйнай сістэме. Падключэння пад час компіляцыі не ўзначае повнасці бізнес-процэсу.
Частка 1: Тры анансы, якія задаюць рамкі для всаго
Для часткі 1, стадыі «Тры ўровні», перш чым зменяць код, неабходна візначыць вхідныя даны, адпаведальнага за крок і крытэрыя завершэння. Аператары должны магчымае перадзеісцаваць крок з вядомай точкі контролю, не спрабоўваючы здогадвацца пра схованы стан. Неабходна задокументаваць як шлях успеху, так і шлях вярнення. Перапрыбуткі, людзкіе перакрыцця і апрацоўка некорэктных паведамленняў ёсць часткай продукту, а не чымсь, што дадаецца пазней. Неабходна людзкая затверджэнняе для тых крокаў, якія выкарыстоўваюць грошы або зменяюць даны праўдзівай працы. Працэс складання коду не ёсць гарантыяй повнай адпаведнасці продукту бізнес-трэбованням.
Частка 2: Навыкі агента, інжынерная дысцыпліна ў фармаце Markdown
Для этапы «Навыкі агента», частка 2, перш чым зменяць код, неабходна ясная дэфініцыя вхідных дадзеных, адпаведнага адпаведальнага за крок і крэтарыяў завершэння. Аперацыйныя працавнікі должны магчымае перзапускаць крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Лепш выбіраць маленькія, тэставаныя елементы замест большых скрыптов. Калі крок не выконваецца, прычына неудачы должна вказываць на адзін конкрэтны элемент, а не на заплутаны ланцюг задач. Неабходна людская апраўда для тых крокаў, якія выкарыстоўваюць грошы чыто зміняюць даны варабочай сістэмы. Компіляцыйныя налашчанні не ўзначаюць повнае адпрацоўвання всіх аспектаў бізнес-процэсу. Для этапы «Навыкі агента», частка 2, перш чым зменяць код, неабходна ясная дэфініцыя вхідных дадзеных, адпаведнага адпаведальнага за крок і крэтарыяў завершэння. Аперацыйныя працавнікі должны магчымае перзапускаць крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Неабходна фіксацыя часу выканання, а таксама вартосці токеноў чы запытанняў разам з функцыйнальнымі рэзултатамі. Відразувая візуабільнасць вартасцей запобегае неспакойным рахункам, калі працэс пераходзіць з дэмовай сістэмы ў спяльныя сераўеры.
Жыцёвы цыкл, супараджаваны з прыказамі
Калі працуеце над «Жыцёвым цыклам, супараджаваным з стадыямі», спачатку запісайце умовы вікорыстання: неабяжлівыя даны, сігнал успеху і тое, што выходзіць на падзею частковага нявыпання. Такі спіс дапамагае заліцвачыць змяны ў кодзе. Храніце настройкі парадульна ад коду прыемліка. Файлы сераўнавання, хранальнікі секрэтных дадзеных і флагі функцый крануцца ў аднам месцы, якое аператары можаць пераглядаць без неабяжлівага чытання всей структуры. Зрабіце перапаказ пасля дорогіх крокаў. Функцыя адновлення не должна зноў выклікаць той самы вызов LLM, калі аператар прабуе зноў выконаць пазнейшы вузел.
Шаблон, які варта скопіюваць
Калі працюеце над стадзіяй «Шаблон, які варта скопіюваць», спачатку запісайце угоду: неабяжлівыя даны, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі спіс пераконтроўвае чыстасць пазнейшых змян у кодзе. Документавайце як шлях успеху, так і шлях вяснавання. Перапрыбуткі, людзкія контралі і обработка некорэктных паведамленняў ёсць часткай продукту, а не пазнейшым дапрацоўкам. Зробіце пераконтроль пасля дорогіх крокаў. Сістэма вярнення не павінна зноў вырахоўваць адпаведную плата за вызов LLM, калі аператар перапрыбуе пазнейшы вузел.
name: test-driven-development
description: Use when implementing new logic or fixing bugs. Enforces red, green, refactor with a failing test first.
## Overview
Write a failing test, implement the minimum code to pass, then refactor.
## When to use
New functions, bug fixes with reproducible cases, pure logic layers.
## Rationalizations
Use it: logic that other slices depend on.
Skip it: throwaway prototypes and pure visual tweaks.
## Red flags
Tests written after implementation. Tests that never failed.
Edits to files outside the task scope.
## Verification
Test suite runs green. Each acceptance criterion maps to a test.
Рэальны рабочы працэс, ад пачатку да канца
Калі працуеце над стадзіяй запуску жывага рабочага практыку, спачатку запісайце умовы кантракту: неабяжлівыя даны, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі спіс пераконвае ў тым, што пазнейшыя змены коду будуць чыстымі. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, прычына нявыпання павінна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг задач. Зробіце перапактаванне пасля дорогіх крокаў. Сістэма не павінна зноў выраховваць адплату за той самы вызыв LLM, калі аператар праказвае пазнейшы вузел. Калі працуеце над стадзіяй запуску жывага рабочага практыку, спачатку запісайце умовы кантракту: неабяжлівыя даны, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі спіс пераконвае ў тым, што пазнейшыя змены коду будуць чыстымі. Запісвайце час выканання і кост токеноў або запытаў разам з функцыйнальнымі рэзултатамі. Відразувая візуабільнасць костаў запобегае неспакойным рахункам, калі працэс пераходзіць з дэмавай версіі ў спяльныя сераўы.
Компрэсіі, якія обгаваруюцца адкрыта
Адаптаванні, працоўнае абсалютнае рашэнне якіх обгаваруецца адкрыта, працюе найэфектывнейша, калі яе спрыяваць як меравальную плошчу. Запісаўце адна ідэальная версія, адзін прыклад неудачы і запіс пра вярнэнне да поперадньага стану пры расшырэнні масштаба. Зберагайце настройкі пазырочна ад коду прыемліка. Файлы сяродавішча, хранільнікі секрэтных дадзеных і флагі функцый должны знаходзіцца ў аднам месцы, куды аператары можаць адбавляць без неабходнасці чытання всей структуры. Зберагайце стан структуры у простам і тыпаваным фармаце. Вкладзеныя блокі маскуюць інфармацыю пра тое, які вузел запісаў які поле, і спакоююць працэс пасля перэрываў.
Частка 3: SDK Copilot, час адработкі Агента як бібліятэка
Этап „Copilot“ частыні 3 працюе наяўней, калі яго розглядаць як вімерную паверхню. Зафіксавайце адна ідэальная транскрыпцыю, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расшырваць сферу дзеяння. Документавайце як шлях успеху, так і шлях вярнэння. Перапрыбуткі, людзкія контрольныя пункты і обработка некорэктных паведамленняў ёсць часткай продукту, а не наступным етапам дорабачання. Храніце стан графаў у простам і тыпаваным фармаце. Вкладзеныя блокі маскуюць інфармацыю пра тое, які вузел запісаў якое поле, і спакоююць працэс пасля перарываў.
import { CopilotClient } from "@github/copilot-sdk";
const client = new CopilotClient();
// Provide your own sessionId so the session can be resumed later
const session = await client.createSession({
sessionId: "release-notes-writer",
model: "gpt-5.5",
});
await session.sendAndWait({
prompt: "Summarize the merged PRs in this repo into release notes.",
});
Частына 4: Аддаленны кантроль, ваша сесія ў вашай кішэнцы
Этап «Удалённае кераванне» часткі 4 працюе наяўней, калі яго спрыяваць як мерыемую паверхню. Зберажыце адны ідэальны прыклад працы, адзін кейс неудачы і прыметку па вярнэнню да пачатковага стану пры расшырэнні масштаба. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выходзіць, прычына неудачы павінна вказываць на адную адпаведальнасць, а не на заплутаны ланцюг задач. Рэзультаты графа павінны быць простымі і з адначытаемымі датамі. Вярнутыя структуры маскуюць інфармацыю пра тое, які вузел запісаў канкрэтны поле, і спакоююць працу пасля перэрываў. Этап «Удалённае кераванне» часткі 4 працюе наяўней, калі яго спрыяваць як мерыемую паверхню. Зберажыце адны ідэальны прыклад працы, адзін кейс неудачы і прыметку па вярнэнню да пачатковага стану пры расшырэнні масштаба. Запісвайце часы выканання і косты токеноў або запытак праза функцыйнае рэзультаты. Відразувая візуабілізація костаў запобегае неспакойным рахункам, калі працэс пераходзіць з дэмавайнага рэжыма ў спяльныя сераўеры.
Частка 5: Copilot CLI, чаму распрацоўшчыкі знову вяртаюцца да тэрміналу
Для этапы Part 5 The Copilot неабяжна ўзначыць даныя, які будуць вводзіцца, адпаведальнага за крок і крытэрыя завершэння пры змены коду. Аперацыйныя працавнікі должны магчымае запускаць крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Конфігурацыю трэба залічыць пазначкай ад коду прыемліка. Файлы сяродавішча, хранілішчы секрэтных дадзеных і флагі функцыйяў должны знаходзіцца ў аднам месцы, якое працавнікі можуць пераглядаць, не чытаючы весь ланцуг. Прыявленне людзкага апраўлення трэба застосавляць да рэласаў, якія вітрачаюць грошы або зменяюць даныя ў працэсе. Прыўязка пад час компілявання не ёсць адпаведнай для падтрымкі всіх бізнес-функцыйяў.
Частка 6: Кодавальны інструментарый, чаму кожны модэль патрэбуе сабе індывідуальной наладкі
Для этапы кодавання, якая ўскладнена 6-ю частчай, пярэд тым, як зменіць код, неабходна вялічыні вхідных дадзеных, адпаведальную особу за даны крок і крытэрыі завершэння. Аперацыяныя працавнікі павінны магчымае перазапускаць крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Неабходна адначасова документаванне шляху успеху і шляху вярнення. Перапрыбуткі, людзкіе перакрыцця і апрацоўка некорэктных паведамленняў ёсць часткай продукту, а не яго пазнейшай дапрацоўкі. Калі наступны крок — гэта код або вызов інструмента, лепш выкарыстоўваць структураваныя выходныя даны з перакананнем схэмы, чым вольныя тэкстовыя апісанні.
Частка 7: Спецыяльна створаная модэлі кодавання
Для ўрагу Part 7 A Purpose-Built неабяжна пазначыць вхідныя даны, адпаведальнага за крок і крэтыры завершэння пры змяне коду. Аперацыйныя працавнікі должны магчымае перайсці на выкананне кроку з вядомага пункта контролю, не спрабоўваючы здогадвацца пра захаваны стан. Лепш выбіраць маленькія, тэставаныя елементы замест большых скрыптаў. Калі крок не выкананы, прычына неудачы должна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг задач. Калі наступны крок — гэта код або вызов інструмента, лепш выкарыстоўваць структураваныя выходныя даны з перакананнем схэмы, чым вольныя тэкстовыя апісанні. Для ўрагу Part 7 A Purpose-Built неабяжна пазначыць вхідныя даны, адпаведальнага за крок і крэтыры завершэння пры змяне коду. Аперацыйныя працавнікі должны магчымае перайсці на выкананне кроку з вядомага пункта контролю, не спрабоўваючы здагадвацца пра захаваны стан. Запісвайце час выканання і вартасьць токенаў або запытаванняя разам з функцыйнальнымі рэзультатамі. Відразувыя даны пра вартасьці запобегаюць неспакоўным рахункам, калі працэс пераходзіць з дэмавай версіі ў спяльныя сераўысы.
Частка 8: Порт TypeScript для Go і кампайляр у 10 разоў шырэй
Калі працуеце над часткай 8, спачатку запісаўце умовы вікорыстання: неабходныя даныя, сігнал успеху і тое, што вядзець да частковага невыпання. Такі спіс дапамагае заліцвачыць змяны ў кодзе пазнейша. Хавайце настройкі за межамі коду прыемліка. Файлы сераўнавання, храненні секрэтных даных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаць пераглядаць іх без неабяжнага чытання всіх элементаў сістэмы. Стварайце контрольныя пункты пасля дорогіх крокаў. Сістэма вярнення не должна занова ставіць плату за той самы вызыв LLM, калі аператар перапрыямляе працу да наступнага етапу.
Што насправды паведамляюць даны аналізу
Калі працуеце над стадзіяй «Што на самай праўдзе паказваюць даны», спачатку запісайце угоду: неабходныя даны, сігнал успеху і тое, што выходзіць пад час частковага невыпання. Такі спіс пераконтроўкаў дапамагае заліцвачыць змяны ў кодзе адпаведна да плану.
Спробуйце гэта за тыдзень
Калі працюеце над стадыяй «Спробуйце гэты тыдзень», спачатку запісайце умовы працы: неабяжлівыя даныя, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі спіс контроля дапамагае заліцвачыць пазнейшыя змены ў кодзе. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, прычына нявыпання павінна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцужок задач. Зрабіце перапактаванне пасля дорогіх крокаў. Сістэма не павінна зноў вырахоўваць адплату за той самы вызов LLM, калі аператар праканае выконанне наступнага элемента. Калі працюеце над стадыяй «Спробуйце гэты тыдзень», спачатку запісайце умовы працы: неабяжлівыя даныя, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі спіс контроля дапамагае заліцвачыць пазнейшыя змены ў кодзе. Запісвайце час выканання і кост токеноў або запытаў разам з функцыйнаімі рэзультатамі. Відразлівасць костаў з самага пачатку запобегае неспакойным вырахункам, калі працэс пераходзіць з дэмавай версіі ў спяльныя сераўы.
Заключныя мысляй
Этап «Заключныя меркіі» працюе найэфектывней, калі яго розглядаць як вімерную паверхню. Запісаўце адна «золатая» транскрыпцыя, адзін прыклад неудачы і запіс пра вярнэнне да поперадньага стану прычым расшырэнню масштаба. Зберагачце настройкі праза код аплікацыі. Файлы сераўіса, хранільнікі секрэтных дадзеных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаць адбавляць контроль без неабяжнага чытання всіх дадзеных. Зберагачце стан графа ў простам і тыпаваным фармаце. Вкладзеныя блокі дадзеных маскуюць інфармацыю пра тое, які вузел запісаў кожны поле, і спакоююць працэс пасля перарываў.
Рычыманні
Этап рэсурсаў працуе наякша, калі яго спрыятарабатваць як вімерную паверхню. Зафіксавайце адны ідэальны прыклад, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расшырваць масштабы. Дакументавайце як шлях успеху, так і шлях вяснавання разам. Перапрыбуткі, людзкія контралі і обработка некорэктных паведамленняў ёсць часткай продукту, а не чымось, што дадаецца пазней. Храніце стан графаў у простам і тыпаваным фармаце. Вярнутыя структуры дакументаў маскуюць інфармацыю пра тое, які вузел запісаў канкрэтны поле, і спакшваюць продовжэнне працы пасля перарываў.
Microsoft Learn
Этап Microsoft Learn працюе найкрашча, калі яго спрыяваць як меркаваную плошчу. Зберагачыце адны ідэальны прыклад працы, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расшырваць сферу дзеяння. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, прычына неудачы павінна вказываць на адную адпаведальнасць, а не на заплутаны ланцюг дзеяння. Рэжым графа павінен быць простым і з адначыным тыпам. Вярнутыя структуры маскуюць інфармацію пра тое, каней вузел запісаў канкрэтны поле, і спаказваюць працу пасля перарываў. Этап Microsoft Learn працюе найкрашча, калі яго спрыяваць як меркаваную плошчу. Зберагачыце адны ідэальны прыклад працы, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расшырваць сферу дзеяння. Запісвайце часы выканання і косты токенаў або запытав, падаючы іх разам з функцыйнальнымі рэзултатамі. Відразы костаў з самага пачатку запобегаюць неспакойным рахункам, калі працэс пераходзіць з дэмавайнага рэжыму ў спяльныя сераўы.
Рэпазітарыя GitHub
Для этапы рэпазітарыў GitHub неабходна прадзефінаваць вхідныя даны, абяронніка крока і крэтырыя завершэння пры змены коду. Аперацыйныя працавнікі должны магчымае перайсці каля крока з вядомага пункта контролю, не прымушаныя здогадвацца пра схованы стан. Конфігурацыю трэба залічыць параду ад коду прыемлівання. Файлы сяродавішча, хранільнікі секрэтных дадзеных і флагі функцыйяў должны знаходзіцца ў аднам месцы, якое працавнікі можуць пераглядаць, не чытаючы весь ланцуг задач. Пры выконанні дзеяння, якія купуюць грошы або зменяюць даны ў працоўнай сістэме, неабходна людская апраўда. Падключэння па часе кампілявання не ўзроўнавалася з повнасцю бізнес-процэсаў.
Анансы
Для этапы аанаунсавання неабяжна ўзначыць вхідныя даны, адпаведальнага за крок і крэтыры завершэння пры перадзеі коду. Аперацыйныя працавнікі павінны магчымае перадзеі крок з вядомай точкі контролю, не падозрываючы схованы стан. Неабяжна задокументаваць як шлях успеху, так і шлях вярнення. Перапрыбуткі, людзкіе пераказы і апрацоўка некорэктных паведамленняў ёсць часткай продукту, а не пасляднім дапрацоўкам. Неабяжна застаўляць людзкую апраўдку для тых крокоў, якія выкарыстоўваюць грошы або зміняюць даны ў працэсе. Працэс кампілявання не ўзначае повнайшага адпрацоўвання продукту з точкі зору бізнеса.
Дзякujemy, што ўжо ў складзе спільнаты
Для етапа «Дзякую за удзел» неабяжна ўскладнення вхідных дадзеных, адпаведальнага за крок і крэтарыяў завершэння працы перад змінайом коду. Аператары должны магчымае перзапускаць крок з вядомай точкі контролю, не спрабоўваючы здагадвацца пра схованы стан. Лепш выбіраць маленькія, тэставаныя елементы замест большых скрыптов. Калі крок не выконваецца, прычына неудачы должна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны працэс. Неабяжна людская апраўда для тых крокоў, якія выкарыстоўваюць грошы або зміняюць даны варабочай сістэмы. Праця ў часе компілявання не ёсць гарантыяй полнай адпрацоўкі задачы. Для етапа «Дзякую за удзел» неабяжна ўскладнення вхідных дадзеных, адпаведальнага за крок і крэтарыяў завершэння працы перад змінайом коду. Аператары должны магчымае перзапускаць крок з вядомай точкі контролю, не спрабоўваючы здагадвацца пра схованы стан. Запісвайце час выканання і кост токенаў або запытаў разам з функцыйнальнымі рэзультатамі. Відразлівасць костаў з самага пачатку запобегае неспакойным рахункам, калі працэс пераходзіць з дэмовай сістэмы ў спяльныя сераўы.
Чэк-ліст аператыўнай працы
Калі працуеце над стадзіяй чэк-ліста аператыўнай працы, спачатку запісуйце умовы контракту: неабходныя даныя, сігнал успеху і тое, што выканаецца у разы ўзелькая невыпавальнасць. Такі чэк-ліст дапамагае заставаць пазнейшыя змены коду чыстымі.
Спрыяйце цій стадзіі як контракту межа данымі і перакананымі выходамі. Дайце назвы артыфактам, задаць правіла пераканання успеху і адмовіцеся ад мовчазнага частковага завершэння.
Зробіце чэкпоінт пасля дорогіх крокаў. Сістэма вярнення не павінна знову ставіць рахунак за той самы вызов LLM, калі аператар прабуе зноў запрацаваць пазнейшы узел.
Фіксуйце версіі залежнасцяў і запісвуйце хэш адобраза, які выканаў дэманстрацыю. Возможнасць перадаравання рэзультатаў лепшая за традыцыйныя знання.
Запісвуйце часы выканання і кост токеноў або запытаў разам з функцыйнаімі рэзультатамі. Відкрытыя даныя пра косцы з’являюцца рана і запобегаюць неспакойным рахункам, калі працэс пераходзіць з дэманстрацыі ў спяльныя сераўеры.
Пауза пасля дорогіх крокаў. Сістэма адновлення не должна занова сцягуваты плата за той самы вызыв LLM, калі аператар прабуе зноў запрацаваць з пазнейшым вузлам.
Перад паўзачыненням працы стэка неабходна заморазіць версіі, зафіксаваць «золаты» транскрыпт для крытычнага шляху і падтвердзіць крокі для вярнення да пачатковага стану. У спільных серэдовісках трэба встановіць ліміты швайнаў, пераканацца ў належнасці рэсурсаў і вказаць чысткага адпаведальнага за зміны секрэтных даных. Лепшая простая надзеянасць на стабільнасць, чым хітрыя експерыменты, якія выкалічваюцца разова.
Прымечанне для пакету 590c1fbe1f11: не клаціць ключы прадаўця ў рэпазітары, встановіць ліміт токена на кожную сесію і зберагчыць транскрыпты разам з фіксатрамі для ацэнкі, ўпрымку празьмены мадэляў застаюцца поручнальнымі.