Практычныя прытамулі: LangChain Deep Agents: Система файлавання вашага агента — гэта рашынак.
Практычныя прыказкі: LangChain Deep Agents: Система файлавання вашага агента — гэта рашынка. Указаны кантракты, пераконтрольваннія і шаблоны коду для команд, якія викорыстоўваюць гэты патэрн.
Існавайце гэта як пераклад ідэй з “LangChain Deep Agents: Your Agent’s Filesystem Is a Decision. Most People Make It by Accident. IV” для аператараў: чыткія этапы, арранжаваныя блакі коду і прыметкі па вяснаванню, якія застаюцца пасля перадачы.
Частка 4: Deep Agents дае кожнаму агенту файлавую систему, але дзе самэй гэтая файлавая система будзе знаходзіцца — гэта ваш выбар: у памяці, на дыску, у стойкай системе зберагчыка межа аддзінамі потакамі, чыяўо ў сумесці.
Этап Deep Agents з Часткі 4 працуе найэфектывней, калі яго спрыяваць як меравальную плошчу. Запісаўце адна ідеальная транскрыпцыю, адзін прыклад неудачы і прыметкі па анулюванні змян перш чым расширваць масштаб. Зберагачыце настройкі параду ад коду прыемлівача. Файлы сяродавішча, храненні секрэтных дадзенаў і флагі функций павінны знаходзіцца ў адном месцы, якое аператары можаць пераглядаць без неабяжнай чытанняў усіх элементаў. Раздзеляйце правілы часткавання дадзенаў ад правілаў ўзяць іх. Змена аднаго з іх не павінна вымагаць перапісву другога, калі зменяюцца паказнікі якосці.
Файлавая система ўявная; база дадзеных — гэта тое, дзе яна рэалізуецца
Этап файлавай системы, якая ўявная, працюе найкраща, калі яго спрыяваць як меравальную паверхню. Запісаце адны ідеальны прыклад роботы, адну ситуацыю неудачы і прыметкі па поверненню да пачатковага стану пры розширэнні масштаба. Дакументавайце як шлях успеху, так і шлях вярнення да нормальнага стану. Перапрыбуткі, людзкі контроль і обработка некоректных паведамленняў є частью продукту, а не дадатковым элементам для пасляднейшай дапрацоўкі. Храніце стан графа ў простам і типаваным формате. Вкладзеныя блокі маскуюць інфармацыю пра тое, який вузел запісаў які поле, і спакоююць продовжэнне роботы пасля перерываў.
Пяць баз дадзеных, распараджаныя па таму, што застаецца
Пяць найкращах апшынкаў, якія вырахаваны на пасляпэльным этапе, працуюць наякша, калі іх розглядаць як мерыябельную паверхню. Запісаце адна ідеальная версія, адзін прыклад неудачы і прыметкі па поверненню да попярэдня стану пры расшырэнні масштаба. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, прычына неудачы павінна вказываць на адную адпаведальнасць, а не на заплутаны ланцужок задач. Рэгулюйце стан графа так, каб ён быў простым і з адзіным типам дадзеных. Вярнутыя структуры дадзеных маскуюць інфармацыю пра тое, який вузел запісаў канкрэтны поле, і спакойваюць працу пасля перарываў.
CompositeBackend: разныя шляхі, разная трываласць
CompositeBackend працюе найэфектывнейша, калі розныя шляхі та стадыі спрацоўкі расследжваюцца як мерыябельныя показнікі. Зафіксавце адна ідеальная транскрыпцыя, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць масштабы. Расследжвайце гэты стадій як кантракт межа вхіднымі даннымі та перакананымі выходнымі рэзультатамі. Даўце назвы артыфактам, задаце критэрыя успеху та адмовіцеся ад мовчанкавага частковага завершэння задачы. Храніце стан графа ў простаму та типаванаму формате. Вярнутыя структуры данных маскуюць інфармацыю пра тое, який вузел запісаў кожны поле, і спакшуюць возможнасць продажывання роботы пасля перарываў.
from deepagents import create_deep_agent
from deepagents.backends import CompositeBackend, StateBackend, StoreBackend
from langgraph.store.memory import InMemoryStore
agent = create_deep_agent(
model="anthropic:claude-sonnet-4-6",
backend=CompositeBackend( # ①
default=StateBackend(), # ②
routes={ # ③
"/memories/": StoreBackend(namespace=lambda _rt: ("memories",)), # ④
},
),
store=InMemoryStore(), # passed to create_deep_agent, not to the backend ⑤
)
Стратегія файловай системы для рэальнага агента
Этап «Даўанне рэальнам агенту» працюе наякша, калі яго спрыяваць як мерыемую паверхню. Зберагчыце адны ідеальны прыклад роботы, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расширваць масштабы. Запісвайце часы выконання і косты токеноў або запытак па боку ад функцыйнальных рэзультатаў. Візуабельнасць костаў з самага пачатку запобегае неспакойным рахункам, калі процес пераходзіць з дэмаверсіі ў спяльныя среды. Храніце стан графа ў простам і типаваным формате. Вярнутыя структуры данных маскуюць інфармацыю пра тое, який вузел запісаў кожны поле, і спакшваюць продовжэнне роботы пасля перарываў. Этап «Даўанне рэальнам агенту» працюе наякша, калі яго спрыяваць як мерыемую паверхню. Зберагчыце адны ідеальны прыклад роботы, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расширваць масштабы. Дакументавайце як шлях успеху, так і шлях вяснавання проблем. Перапрыбуткі, людзкія контрольныя пункты і обработка некоректных паведамленняў є часткай продукту, а не чымсь, што дадаецца пазней.
Там, дзе работае агент, а не толькі там, дзе знаходзяцца файлы
Для ўрагу «Дзе запускаецца агент» неабходна пазначыць вхідныя даны, адпаведальнага за крок і критэрыя завершэння пры перадзеіснавленні коду. Аператары должны магчымаць перапуск кроку з вядомай точкі контролю, не прабуючы спадарожваць схованы стан. Валідзіце маленькія, тэставаныя елементы замест амаль неконтрольваных скрыптав. Калі крок не выконваецца, прычына павинна быць адносна конкрэтнай адпаведальнасці, а не заплутанага ланцужка задач. Заставляйце людзей апраўдваць тыя крокі, якія ведуць да выдаткаў грошаў або зміны дадзэнняў у працоўным режыме. Компіляцыйныя налашчэння не ўзроўнаваны з повнасцю бізнес-процэсаў.
Едыная налашчэнне, якую нельга праігнораваць
Для той конфігурацыі, яю вы ствараеце, пярэд зменым коду неабходна ясная ваказка пра вхідныя даны, адпаведальнага за крок і критэрыя завершэння. Аперацыёныя працавнікі должны магчымасць перзапуск крока з вядомай точкі контролю, не прабуючы спадабіцца ся да захаванага стану. Спрэчвайце гэты этап як кантракт межа вхіднымі данымі і перакананымі выходнымі рэзультатамі. Даеце назвы артыфактам, вакажыце критэрыі успеху і не прабуйце прыймаць часткова завершаную роботу без падтверджэння. Заставляйце людзкія апраўленні для тых крокоў, якія выкарыстоўваюць грошы або зміняюць даны для працы системы. Компіляцыйныя налашчэнні не ўзроўнаўцяюцься з пачатковым станом бізнес-процэса.
from deepagents.backends import StoreBackend
backend = StoreBackend(
namespace=lambda rt: (rt.server_info.user.identity,),
)
Зрабіце гэта сёнь
Для стадії «Зробіце гэта сёнь» неабяжна як магчымая вказаць інпуты, адпавядаючага за крок адпаведнага спеціяліста і крэтарыя выходу, так і перад змінайом коду. Аператары должны магчымаюць перзапускаць крок з вядомага пункта контролю, не прыпускаючы стану, які залишаецца незрозумелым. Запісваюць час выканання і вартасць токенаў або запытак праза функцыйнальныя рэзултаты. Відразлівая вартасць з самага пачатку запобегае неспакоўным рахункам, калі процес пераходзіць з дэмавайнага режыма ў спяльныя среды. Неабяжна людскае затверджэння для тых крокоў, якія выкалічваюць грошы або зменяюць даны варабочага сервісу. Працэс складання коду не є адпаведнікам полныя рэалізацыі продукту. Для стадії «Зробіце гэта сёнь» неабяжна як магчымая вказаць інпуты, адпавядаючага за крок адпаведнага спеціяліста і крэтарыя выходу, так і перад змінайом коду. Аператары должны магчымаюць перзапускаць крок з вядомага пункта контролю, не прыпускаючы стану, які залишаецца незрозумелым. Неабяжна аддазіць дакументацыю як пра стандартны ход роботы, так і пра шляхі ўстранення праблем. Перапрыбуткі, людскія перакрыцця і обработка некоректных запытак є часткай самага продукту, а не чымсь, што дадаецца пазней.
Бэкенд большае не становіцца випадковасцю
Калі працуеце над стадзіяй «Бэкенд большае не становіцца випадковасцю», спачатку запісайце умовы викорыстоўвання: неабходныя даны, сігнал успеху і тое, што выканаецца у разе частковага абякання. Такі список контролю дапамагае заставіць пазнейшыя змены коду быць чыстымі. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок абякаецца, прычына абякання павінна вказваць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг задач. Зрабіце перапактаванне пасля дорогіх крокаў. Система вярнення праблем не павінна зноў стаўляць плату за той самы вызов LLM, калі аператар праканае пазнейшы вузел.
Чэк-ліст для эксплуатацыі
Калі працуеце над стадзіяй «Чэк-ліст для эксплуатацыі», спачатку запісайце умовы викорыстоўвання: неабходныя даны, сігнал успеху і тое, што выканаецца у разе частковага абякання. Такі список контролю дапамагае заставіць пазнейшыя змены коду быць чыстымі.
Зберагаюце канфігурацыю паза кодам прыемліка. Файлы сяродавішча, храненні секрэтных дадзейнаў і флагі функцыйяй должны знаходзіцца ў аднам месцы, куды аператары можаюць адбавіць аудыт без неабяжнага чытання всіх элементаў.
Ствараюце контрольныя пункты пасля дорогіх крокаў. Функцыя вярнення роботы не должна занова нарахоўваць плата за той самы вызыв LLM, калі аператар прабуе зноў выконаць пазнейшы элемент.
Фіксуйце версіі залежнасцяў і запісвайце хэш адобраза, які выканаў дамэ. Возможнасць павторнага стварэння результата лепшая за традыцыйныя методы.
Документавайце як шлях успеху, так і шлях вярнення да нормальнага стану. Прабыткі, людзкія перакрыцчы і обработка некоректных паведамленняў є часткай продукту, а не дадатковым элементам пасля його стварэння.
Ствараюце контрольныя пункты пасля дорогіх крокаў. Функцыя вярнення роботы не должна занова нарахоўваць плата за той самы вызыв LLM, калі аператар прабуе зноў выконаць пазнейшы элемент.
Перш чым запускать даную систему, заморозьце версіі, зафіксавце ідеальны транскрыпт для критычнага шляху і паказвце способы анулювання змян. У спільных средах неабходны ліміты частоты запуска, пераконтрольванне прав на выкарыстоўвання ресурсаў і чысткі власнік для змены секретных даных. Лепш выбраць простую надзею на надзейнасць, чым хітрыя разовыя дэманстрацыі.
Прыметка для дадзеных deda52bb7774: не кладзіце ключы прадаўцоў у репазітарый, задаце ліміт токена на кожную сесію і зберагачыце транскрыпты разам з фіксатрамі для ацэнкі, каб пазнейшыя замены моделей заставаліся порównанымі.
Прыемка 0 па правілу змяцнення безпекі работае лепш, калі яе спрыяваць як мерыемую плошчу. Зафіксавце адны ідеальны транскрыпт, адзін прыклад неудачы і прыметку анулювання змян перш чым расширваце сферу дзейнасці. Спрыявайце гэтую стадію як даговор межа вхіднымі даннымі і перакананымі выходнымі рэзультатамі. Даце назвы артыфактам, задаце критэрыя успеху і адмовіцеся ад тыхняга частковага завершэння без паведамлення.
Дзеянне паўжасткі 0/914: звярніце увагу на час выканання, класы памылак і колькасць выкорыстоўваных токенаў для гэтага запісу, а пасля, на аднойчынай сэтце запытаў, а не на індывідуальных прыкладах, выявіце, чы хацяце застаўіць змену.
Для першага этапу паўжасткі запісу абявіце вхідныя даны, адпаведальнага за крок і критэрыя завершэння пры зміне коду. Аперацыйныя працавнікі павінны магчымае перазапускаць крок з вядомай точкі контролю, не спрабоўваючы здагадвацца пра схованы стан. Конфігурацыю трэба зберагчы за межамі коду прыкладнення. Файлы сераўіса, хранільнікі секрэтных дадзеных і флагі функцыяй павінны знаходзіцца ў аднам месцы, якое працавнікі можуць пераглядаць, не чытаючы весь структураны код.
Дзеянне паўжасткі 1/914: звярніце увагу на час выканання, класы памылак і колькасць выкорыстоўваных токенаў для гэтага запісу, а пасля, на аднойчынай сэтце запытаў, а не на індывідуальных прыкладах, выявіце, чы хацяце застаўіць змену.
Калі працуеце над 2-й стадзіяю практыкы заспеклення, спачатку запісайце умовы кантракта: неабяжныя вхідныя даны, сігнал успеху і тое, што выходзіць пад частковым неудачам. Такі список контроля дапамагае залічваць пазнейшыя змены ў кодзе чыста і прозрачна. Валіце маленькія, тэставаныя елементы замест вялікіх скрыптав. Калі якась ступеня не выйшла, неудача должна вказваць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг задач.
Дзеянне заспеклення 2/914: звярніце увагу на час выканання, класы каштоўкаў і витрату токенаў для гэтай практыкі, а потым вырашыце, чы робіць змены на адной фіксаванай базе пытанняў, а не на адной лічбе прыкладаў.
2-я стадзія практыкы заспеклення працюе лепей, калі яе спрыямаць як меравальную плошчу. Запісайце адны ідеальны прыклад роботы, адзін кейс неудачы і прыказку па абратанні пазнейшых змян, перш чым расширваць сферу дзеяння. Запісвайце часы выканання і вартасць токенаў або запыткаў разам з функцыйнальнымі рэзультатамі. Відкрытая інформацыя пра вартасці запобегае неспакойным рашчыткам, калі процес пераходзіць з дэмаверсіі ў спяльныя сераўы.
Дзеянне паўжчання 3/914: звярніце увагу на час выканання, клас памылакі і колькасць викорыстоўваных токенаў для гэтага запісу, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на асобістых спазырэннях, выявіце, чы хацяце застаўіць змены.
Для 4-го этапу паўжчання неабходна перад змянай коду чытко визначыць вхідныя даны, адпаведальнага за шаг і крэтыяры завершэння. Аперацыёныя працавнікі должны магчымае перадзвануць шаг з вядомай точкі контролю, не падозрываючы прыхованы стан. Неабходна адначасова задокументаваць шлях успеху і шлях вярнення да нормальнага стану. Праказы, людзкія перакрыцця і обробка некоректных паведамленняў є часткай продукту, а не чымсь, што дадаецца пазней.
Дзеянне паўжчання 4/914: звярніце увагу на час выканання, клас памылакі і колькасць викорыстоўваных токенаў для гэтага запісу, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на асобістых спазырэннях, выявіце, чы хацяце застаўіць змены.
Калі працуеце над 5-м падзёлам прыемкі забезпечэння, спачатку запісайце кантракт: неабяжлівыя вхідныя даны, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список пераконтроўвае, каб пазнейшыя змены коду былі чыстымі. Спрыятлівае ставленне да гэтага падзёла як да кантракта межу вхіднымі данымі і перакантролёваннымі выходнымі рэзультатамі. Дайце назвы артыфактам, задаце критэрыя успеху і адмовіцеся ад мовчанкавага частковага завершэння.
Дзеянне забезпечэння 5/914: вымерыце час выканання, класію памылак і витрату токенав для гэтай прыемкі, а пасля выберыце, чы робіць змену на адной пазначанай базе пытанняў, а не на адной толькі прымітцы.
5-й падзёл прыемкі забезпечэння работае найэфектывней, калі яго спрыятлівае ставленне як да вимернай плошчы. Запісайце адна ідеальная транскрыпцыя, адзін прыклад нявыпання і прыемку для анулювання, перш чым расширваце сферу дзейства. Зберагаюце конфігурацыю паза кодам прыкладнага програмнага забезпечэння. Файлы сераўіса, хранільнікі секрэтных дадзеных і флагі функций должны знаходзіцца ў аднам месцы, якое аператары можаць перакантролёваць, не чытаючы весь граф.
Дзеянне паўжчання 6/914: звярніце увагу на час выканання, клас памылак і колькасць викорыстоўваных токенав для гэтага зьязку, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на індывідуальных прыкладах, выявіце, чы хацяце застаўіць гэтыя змены.