Галоўная / Артыкулы / Практычныя прытамулі: Агент — это цікл While

Практычныя прытамулі: Агент — это цікл While

Практычныя прыказкі: Агент — это цікл While; дагаванні, пераконтрэбы і слоты для коду для команд, якія выкарыстоўваюць гэты шаблон.

1429 слоў

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

Весь агент у двадцох лініях

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

messages = [system_prompt, user_question]
while True:
    reply = model(messages, tools=TOOLS)    if not reply.tool_calls:
        return reply.text                    # the model answered; done    for call in reply.tool_calls:
        result = TOOLS[call.name](**call.args)   # your code runs it
        messages.append(tool_result(call.id, result))

Пазірце, як ён працуе аднойчы

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

Тепер запускайце яго ўтокам.

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

Нарисавайце крокі у вачох

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

Што такое LangChain

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

from langchain.agents import create_agent
agent = create_agent(
    model="anthropic:claude-sonnet-4-6",
    tools=[search_runbooks, get_release_notes],
    system_prompt="You are the on-call triage assistant.",
)
result = agent.invoke({"messages": [("user", "Why is ERR_4412 failing?")]})

Што такое LangGraph

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

from langgraph.graph import StateGraph
g = StateGraph(TriageState)
g.add_node("classify", classify)
g.add_node("search", search_runbooks)
g.add_node("propose", propose_fix)
g.add_node("approve", ask_human)
g.add_edge("classify", "search")
g.add_conditional_edges("search", route_by_error_type)
g.add_edge("propose", "approve")app = g.compile(checkpointer=PostgresSaver(...))

Адзін стак, а не два варыянты

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

Што бы вы сказалі камандзе

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

Чэрніцкі список для эксплуатацыі

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

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

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

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

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

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

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

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

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

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

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

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