Практычныя прытамулкі: ваш АІ-агент стаўляе працоўную перашкоду на 12-м кроку. Deep Agents ад LangChain
Практычныя прытамулкі: ваш агент на базе AI сталкаецца з працоўнымі труднасцямі на 12-му кроку. Deep Agents ад LangChain: контракты, перакананні та спецыяльныя слоты для коду для команд, якія викорыстоўваюць гэты патэрн.
У гэтым керавану практычна перакладзець шлях ад сыр'ёў да рабочай системы для наступных ситуацый: ваш AI-агент сталкнуўся з працою на 12-м кроку. Deep Agents ад LangChain пояснюе прычыны. Акцэнт ставіцца на крокі, якія можна выконваць, чыстае перакананне і код, які можна проста дадаць у репазітарый без неабяснення меты. У стадзіі агульнага пераканання неабходна прадзефінаваць вхідныя даны, адпаведальную особу за крок і критэрыя завершэння пры перамены коду. Аперацыйныя працавнікі должны магчымае перадзеўсці крок з вядомага пункта перапытку без неабяснення схованага стану. Спрыятлівае ставленне да гэтай стадзіі як да кантракту межа вхіднымі данымі і падтверджанымі выходнымі рэзультатамі. Назваце артыфакты, прадзефінаваце пераканання на успех і адмовіцеся ад беззвучнага частковага завершэння.
Проблема паверхневага агента
Калі працюеце над стадзіяй «Проблема паверхневага агента», спачатку запісайце контракт: неабяжлівыя даны, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список дапамагае заліцьваваць змяны ў кодзе пасля таго, як яны былі здабыты.
Чатыры основныя элементы, проста
Калі працуеце над стадзіямі «Чатыро сталпа», спачатку запісайце угоду: неабяжлівыя даны, сігнал успеху і тое, што выходзіць у разе частковага неяксамоства. Такі список контроля дапамагае заліцвачыць змянам у кодзе пазнейша. Зберагайце настройкі за межамі коду прыемліка. Файлы сераўнавання, хранальнікі секрэтных данных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаюць адбавіць аудыт без неабяжлівага чытання всей структуры. Ставьце контрольныя пункты пасля дорогіх крокаў. Програма для продакцыі не должна занова ставіць плата за той самы вызов LLM, калі аператар перапрыяўляе роботу да наступнага вузла.
Сталп 1: Запісайце план там, дзе модель можа яго бачыць
Калі працуеце над Піларам 1, спачатку запісайте этап і дакладны контракт: неабяжлівыя данні, сигнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список пераконтроўкаў дапамагае заставіць пазнейшыя змены коду чыстымі. Дакументавайце як «шчаслівы» шлях, так і шлях вяснавання. Перапрыбуткі, людзкія контралі і обработка некоректных паведамленняў ёсць часткаю продукту, а не пазнейшым дапрацоўкам. Зберагаюце у кэшы стабільныя інструкцыі системы і схемы інструментаў. Перадача таго ж самога прамэра ёсць частым выклікам зношвання ресурсаў. Калі працуеце над Піларам 1, спачатку запісайте этап і дакладны контракт: неабяжлівыя данні, сигнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список пераконтроўкаў дапамагае заставіць пазнейшыя змены коду чыстымі. Спрыймайце гэты этап як контракт межа даннімі і перакананымі выходнымі рэзультатамі. Даўце назвы артыфактам, задайце критэрыя успеху і адмовіцеся ад беззвучнага частковага завершэння.
Пілар 2: Система файлавання, якую агент можа выкарыстоўваць як памяць
Этап файлавой системы Pillar 2 працюе наякраўжэй, калі яго спрыяваць як мерыемую паверхню. Запісаце адна ідеальная транскрыпцыя, адзін прыклад неудачы і прыметку па абратанні змян перад расшырэнням масштаба. Запісвайце часы выканання і косты токеноў або запытак па боку ад функцыйнаых рэзультатаў. Візуабельнасць костаў з самага пачатку запобегае неспакойным рахункам, калі працэс пераходзіць з дэмавай версіі ў спяльныя среды. Храніце стан графа ў простам і типаваным формате. Вкладзеныя блобы маскуюць інфармацыю пра тое, який вузел запісаў які поле, і спакшваюць продажчыку роботу пасля перарываў.
Pillar 3: Падагенты для кварантайны раздзелу контэкста
Падзеўнік 3 для роботы на стадіях працюе найэфектывней, калі яго розглядаць як вимерную паверхню. Зафіксавайце адна «золатая» транскрыпцыю, адзін прыклад неудачы і запіс пра вярнэнне да попераднего стану перш чым расширваць сферу дзеяння. Зберагаюце настройкі пазыроўна ад коду прыемліцеля. Файлы сяродавішча, хранільнікі секрэтных дадзеных і флагі функций павінны знаходзіцца ў адном месцы, куда аператары можуць адбавляць контроль без неабяжнага чытання всіх дадзеных. Зберагаюце стан графа ў простам і типаваным формате. Вкладныя блокі маскуюць інфармацыю пра тое, який вузел запісаў якое поле, і спакоююць працу пасля перерываў.
Pillar 4: Навыкі, якія агент завантажае за патрэбай
У роўні Pillar 4 Skills всё працюе найкраща, калі яго спрыяглядаць як вимерную паверхню. Зафіксуйце адна ідеальная транскрыпцыя, адзін прыклад неудачы і прыметку па анулюванні змян перш чым расширваць масштаб. Документавайце як шлях успеху, так і шлях вяснавання разам. Перапрыбуткі, людзкія контралі і обработка некоректных паведамленняў є частью продукту, а не наступным етапам дорабкі. Храніце стан графаў у простам і типаваным формате. Вкладзеныя блокі маскуюць, який вузел запісаў якое поле, і спакшуюць продовжэнне роботы пасля перерываў. У роўні Pillar 4 Skills всё працюе найкраща, калі яго спрыяглядаць як вимерную паверхню. Зафіксуйце адна ідеальная транскрыпцыя, адзін прыклад неудачы і прыметку па анулюванні змян перш чым расширваць масштаб. Спрыяглядайце гэты роўнь як кантракт між вхіднымі даннымі і перакананымі выходнымі рэзультатамі. Даўце назвы артыфактам, задайце критэрыя успеху і адмовіцеся ад беззвучнага частковага завершэння.
- research: Conducts multi-source web research with citation
- writer: Drafts long-form content matching house style
- sql_query: Runs read-only queries against the analytics warehouse
Чатыры сталпы — это той самы трюк чатыры разы
Чатыры асаліны — гэта этап, апрацоўкі вхідных дадзенняў, адпаведальны за даны этапу і крэтыяры завершэння, якія трэба визначыць пры змены коду. Аператары должны магчымае перзапускать даны этап з вядомай точкі контролю, не падозрываючы прыхованы статус. Запісваць час выконання і кост токенаў або запытаў праза функцыйнае рэзультат. Відкрытыя данні пра косцы запобегаюць неспакоўным рахункам, калі процес пераходзіць з дэмаверсіі ў спяльныя среды. Пры застосаванні грошэй або змены дадзенняў у працы трэба атрымваць затверджэнне чалавека. Праця ў час компілявання не абавесць цэлыснасцю бізнес-процэса.
Як насправдзе прабавіць гэта
Для этапу «Як насправды спробаваць» неабяжна пазначыць вхідныя даны, адміністратара крока і критэрыя завершэння пры перадзеіснавленні коду. Аператары должны магчымаць перзапуск крока з вядомай точкі контролю, не падозрываючы прыхованы стан. Конфігурацыю трэба залічыць пазнаходзяцца за межамі коду прыкладнення. Файлы сераўнавання, хранільнікі секрэтных данных і флагі функцыйяў павінны знаходзіцца ў адном месцы, якое аператары можаць пераглядаць, не чытаяўшы весь ланцуг задач. Неабяжна працаваць з апраўданнем чалавека для рэшэнняе, якія ведуць да выдаткаў грошаў або змян у продакшн-данных. Підключэння пад час компіляцыі не є гарантіяй полнай адпаведнасці бізнес-процэсаў.
pip install deepagents
import os
from pathlib import Path
from deepagents import create_deep_agent
from deepagents.backends import FilesystemBackend
from tavily import TavilyClient
tavily = TavilyClient(api_key=os.environ["TAVILY_API_KEY"])def web_search(query: str, max_results: int = 5):
return tavily.search(query, max_results=max_results)workspace = Path("./workspace").resolve() # root_dir must be absolute
workspace.mkdir(exist_ok=True)agent = create_deep_agent(
model="anthropic:claude-3-5-sonnet-latest",
system_prompt="You are a senior analyst. Use web search to find sources, save the raw results to disk, then synthesize.",
tools=[web_search],
backend=FilesystemBackend(root_dir=str(workspace), virtual_mode=True),
)result = agent.invoke({"messages": [{"role": "user", "content": "Brief me on the current state of LLM agent frameworks"}]})print(result["messages"][-1].content)
Што дадаць даўжэй
У другій стадії «Што дадаць» неабяжна практычна ваказваць інпуты, адміністратара крока і крэтырыя выходу пры перадзеіснаванні коду. Аператары павінны магчымаць перзапуск крока з вядомай точкі контролю без адгадванняя схованага стану. Неабяжна задокументаваць як шлях успеху, так і шлях вярнення. Перапрыбуткі, людзкіе перакрыцця і обробка некоректных паведамленняў ёсць часткай продукту, а не пасляднім дапрацоўкам. Неабяжна застаўляць людзкую апраўдку для тых крокаў, якія выкарыстоўваюць грошы або зміняюць даны праўдзівай роботы. Працэс кампілявання не ўзроўнаваецца з повнасцю бізнес-функцый. У другій стадії «Што дадаць» неабяжна практычна ваказваць інпуты, адміністратара крока і крэтырыя выходу пры перадзеіснаванні коду. Аператары павінны магчымаць перзапуск крока з вядомай точкі контролю без адгадванняя схованага стану. Спрыймайце гэтую стадію як кантракт межа інпутамі і апраўданымы выходамі. Даць назву артыфактам, ваказваць перакрыцці успеху і адмовіцца ад безгучнага частковага завершэння.
Дзе Deep Agents ўжо не падходзіць як інструмент
Калі працуеце на стадії Where Deep Agents, спачатку запішыце умовы викорыстання: неабяжлівыя даны, сигнал успеху і тое, што будзе адбывацца у разе частковага невыпання. Такі список дапамагае залишацца чыстым пад час пазнейшых змян у кодзе. Запісвайце час выконання і кост токеноў або запытаў разам з функцыйнальнымі рэзултатамі. Відразувая візуабельнасць костаў запобегае неспакойным рахункам, калі праця пераходзіць з дэмаверсіі ў спакульнаныя сераўсы. Запісвайце назву інструмента, хэш аргументаў, час затрымкі і рэзултат кожнага вызову. Без такога журналу дэбаггін цыклаў агента губіць гадзіны.
Вывык, які можна выкарыстоўваць, нават якщо вы ніколі не будзеце працаваць з гэтай бібліятэкай
Калі працуеце над процэсам выкарыстоўвання, спачатку запішыце угоду: неабходныя даны, сігнал успеху і тое, што выканаецца у разе частковага невыпалення. Такі список пераканальвае ў тым, што пазнейшыя змены коду будуць чыстымі. Зберагаюце настройкі паза кодам прыемлі. Файлы сераўіса, хранільнікі секрэтных дадзеных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаць адбавіць аудыт без неабяжнага чытання всіх элементаў. Ствараюце контрольныя пункты пасля дорогіх крокаў. Система вярнення не должна занова ставіць плату за той самы вызыв LLM, калі аператар перапрыяўляе роботу да наступнага элемента.
Чэк-ліст для эксплуатацыі
Этап чэк-ліста для эксплуатацыі працюе найэфектывней, калі яго спрыяглядаць як мерыемую плошчу. Запісаўце адну ідеальную транскрыпцію, адзін прыклад невыпалення і прыметкі па вярненню да пачатковага стану, перш чым расширваць сферу дзеяння.
Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі крок не выканаецца, прычына невыпалення должна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг задач.
Зберагаюць стан графа ў простам і типаваным формате. Вкладаныя блобы маскуюць інфармацію пра тое, який вузел запісаў якое поле, і спакоююць працэзвалечэнне пасля перерываў.
Калі дозволяе бюджет, дадзіце тэст на перакананне, які працюе з критычным шляхам у CI за дапамою фіксатываў, а не з рэальнымі платнымі API.
Спрыяйце цэй стадзіі як кантракту межа вхіднымі дадзеннямі і перакананымі выходнымі рэзультатамі. Даўце назвы артыфактам, задзержыце перакананні на успех і адмовіцеся ад беззвучнага частковага завершэння.
Зберагаюць стан графа ў простам і типаваным формате. Вкладаныя блобы маскуюць інфармацію пра тое, який вузел запісаў якое поле, і спакоююць працэзвалечэнне пасля перерываў.
Перш чым апранаваць стэк, заморозьце версіі, зафіксуйце ідеальны транскрыпт для критычнага шляху і падтвердзіце крокі для абраткі. У спадзяльных сэрвісах патрабуецца наяўнасць лімітаваў швайна, перакананняў на прыналежнасць і чыстае відпаведальнае аб’екта для ротацыі секрэтных дадзенняў. Валіце надзейнасць працы над красавім разовым дэманстрацыйным прыкладам.
Запіска параграфу 8916e9958e68: не трэба кантрацеўваць ключы прадастоўніка ў репазітарыі, задаць максімальную кантроль на токены за сесію, а таксама зберагчы транскрыпціі праза фіксатуры адлічэння, каб пазнейшыя замены моделей заставалі пораўняннымі.
Калі працуеце над стадзіяй 0 запіскі пра зміцнэнне, спачатку запісайце контракт: неабходныя вхідныя даны, сігнал успеху і тое, што выходзіць у разе частковага невыпання. Такі чэк-ліст дапамагае заставаць пазнейшыя змены коду чыстымі. Валіце маленькія, тэставаныя елементы працы над кодам замест аб’емных скрыптав. Калі якісь крок не выйшае, прычына невыпання павінна вказваць на адну конкрэтную адпаведальнасць, а не на заплутаны процес.
Дзеянне пра зміцнэнне 0/751: вы мерзіце час выканання, класыя ошибак і витрату токенав для гэтай запіскі, а пасля выявляеце, чы рашаце застаўіць змену на адной фіксованай сэтке пытанняў, а не на адной лячбе.