Практычныя прытамулі: Кантролюванне кальканаець разных агентоў у прымэтнай експлуатацыі: кантролюванне супрацоўкі
Практычныя прыказкі: Кантролюванне колькасці агентаў у працэсе вырабоцтва: кантролюванне трафіку: контракты, перакрыцчы і слоты для коду для команд, якія викорыстоўваюць гэты патэрн.
Наступныя прыміткі паказваюць практычны падход да тэмы «Кантролл мнагах агентаў у працоўным серавысе: кантролл спадзей навантажэння ў вялікых масштабах». Акцэнс ставяецца на контракты, перакантрольванні і месцы для коду, які можна легка адключыць, а не на мотывацыйныя аспекты. Калі працуеце над стадзіяй агледжэння, спачатку запісайце контракт: неабяжныя даны, сігнал успеху і тое, што выканаецца у разе частковай нявыполненасці. Такі список дапамагае залишыцца чыстым пад час пазнейшых змян у кодзе. Запісвайце час выканання і кост токеноў або запытаў разам з функцыйнальнымі рэзултатамі. Відразувыя даны пра косцы запобегаюць неспакойным рахункам, калі процес пераходзіць з дэмаверсіі ў спяльныя серавысы.
Чаму гэта мае значэнне зараз
Этап «Парадокс значэння гэтаго зараз» работае наяўней, калі яго спрыяваць як мерыемую структуру. Запісаўце адну «золатую» транскрыпцыю, адны прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расширваць масштаб. Зберагаўце настройкі праза код аплікацыі. Файлы сяродавішча, хранільнікі секрэтных дадзеных і флагі функций павінны знаходзіцца ў адном месцы, куды аператары можаць адбавляць без падчытання всей структуры. Зберагаўце стан структуры у простам і типаваным формате. Вярнутыя блокі маскуюць, який вузел запісаў канкрэтны поле, і спакоююць працу пасля перарываў.
Трыверховы контракт
Этап трывяруховага контракта працюе наўсёрэдзе, калі яго спрыяваць як мерыемую паверхню. Зафіксавайце адны «золаты» транскрыпт, адзін прыклад неудачы і запіс пра абратыванне роботы, перш чым расширваць сферу дзеяння. Дакументавайце як шлях успеху, так і шлях вярнення да стану нормы. Перапрыбуткі, людзкія контралі і обработка некоректных паведамленняў ёсць часткай продукту, а не пасляднім дапрацоўкам. Храніце стан графа ў простым і типаваным формате. Вярнутыя структуры дакументаў маскуюць інфармацыю пра тое, калькі вузел запісаў калькі поле, і спакшваюць продовжэнне роботы пасля перарываў.
Слой 1: Калекцыя як контролер
Этап Layer 1 The Queue працюе найкраща, калі яго розглядаць як вимерную паверхню. Зберагчыце адны ідеальны прыклад роботы, адзін кейс неудачы і прыметкі па адвярненню перад расшырэнням масштаба. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, прычына неудачы павінна вказываць на адную адпаведальнасць, а не на заплутаны ланцюг задач. Рэзультаты графа павінны быць простымі та з адначытаемым типам. Вкладзеныя блокі маскуюць інфармацыю пра тое, який вузел запісаў канкрэтны поле, і спакоююць працу пасля перарываў. Этап Layer 1 The Queue працюе найкраща, калі яго розглядаць як вимерную паверхню. Зберагчыце адны ідеальны прыклад роботы, адзін кейс неудачы і прыметкі па адвярненню перад расшырэнням масштаба. Запісвайце часы виконання та косты токеноў або запытак праза функцыйнальныя рэзультаты. Відразлівасць костаў з самага пачатку запобегае неспакойным рашчыткам, калі процес пераходзіць з дэмаверсіі ў спяльныя сераўы.
Layer 2: Оркестрацыя як маршрутазатор і регулятор
Для архітектуры оркестрацыі на роўні 2 як стадіі неабходна пазначыць вхідныя даны, адпаведальнага за кожны крок і критэрыя завершэння пры перадзеіснаванні коду. Аператары должны магчымае перайсці на гэты крок з вядомага пункта контролю, не спрабоўваючы здогадвацца пра схованы стан. Конфігурацыю трэба залічыць параду ад коду прыкладнення. Файлы сераўіса, хранільнікі секрэтных дадзеных і флагі функцыйяў должны знаходзіцца ў аднам месцы, якое аператары можаць пераглядаць, не чытаяўшы весь ланцуг задач. Прызначыць людскія апраўдкі для рэшэнняў, якія выкарыстоўваюць грошы або зміняюць даны у працэсе. Прыўязка на час компілявання не є падтверджэннем полныя адпаведнасці да бізнес-трэбаванняў.
Роўень 3: Палітыкі як непрыемлівыя умовы
Для правіл роўня 3 як стадій выявіце вхідныя даны, адпаведальнага за кожную ступень і крэтыяры завершэння перад змінайом коду. Аператары должны магчымае перазапускати ступень з вядомай точкі контролю, не падозрываючы прыхованы стан. Документавайце як шлях успеху, так і шлях вярнення. Перапрыбуткі, людзкіе перакрыцця і обробка некоректных паведамленняў є частью продукту, а не наступным этапам дорабкі. Заставьце людзкую затверджэнняе на тых кроках, дзе відбываецца выдатак грошэй або зміняюцыся даны для працы. Працэс складання коду не ўзроўнаважваецца з повнасцю бізнес-функцыяў.
Мінімальны псэудаграф
Для стадіі A Minimal Pseudo-Graph неабяжна ўзначыць вхідныя даны, адпаведальнага за крок і крэтыры завершэння пры змяне коду. Аперацыйныя працавнікі должны магчымае запускаць крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Лепш выбіраць маленькія, тэставаныя елементы замест большых скрыптов. Калі крок не выйшаў, прычына нехасабності должна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг задач. Пры выконанні дзеянь, якія коштуюць грошы або зменяюць даны ў працэсе, неабяжна ўрахоўваць людскія аправарэння. Компіляцыйные налашчэнні не ўзначаюць павнае адпрацоўвання задачі. Для стадіі A Minimal Pseudo-Graph неабяжна ўзначыць вхідныя даны, адпаведальнага за крок і крэтыры завершэння пры змяне коду. Аперацыйныя працавнікі должны магчымае запускаць крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Запісваць час выконання і кост токенаў або запытаў разам з функцыйнальнымі рэзультатамі. Відразлівасць костаў з самага пачатку запобегае неспакойным рахункам, калі процес пераходзіць з дэмовай среды ў спяльныя сераўеры.
.[ Incoming Request ]
│
▼
[ Queue Gatekeeper ]
• Validate Schema
• Enforce Rate Limits
• Assign Priority
│ (Pass)
▼
[ Orchestration Router ]
• Check Agent Capacity
• Route to Target Node
│
▼
[ Tool-Level Gate ]
• Sync Policy Check
• Per-Tool Concurrency Limits
• Circuit Breaker / DLQ
│ (Pass)
▼
[ Tool Execution ]
Сцэнарыя спайка ў рэальным свете
Калі працуеце над стадзіяй сцэнарыя спайка ў рэальным свете, спачатку запісуйце контракт: неабходныя даны, сигнал успеху і тое, што выканаецца у разы частковай нявыполненні. Такі список пераканаецца дапамагае залічваць змяны ў кодзе чыста. Зберагайце настройкі паза кодам прыемліка. Файлы сераўнавання, хранільнікі секрэтных дадзеных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куда аператары можу пераглядаць іх без неабяжнага чытання всіх элементаў. Стварайце контрольныя пункты пасля дорогіх крокаў. Функцыя вярнення роботы не должна занова ставіць плату за той самы вызов LLM, калі аператар перапрыяўляе роботу да наступнага элемента.
Як гэта реалізаваць
Калі працюеце над этапам «Як гэта рэалізаваць», спачатку запісайце умовы працы: неабяжлівыя данні, сігнал успеху і тое, што выходзіць у разе частковага невыпання. Такі список контроля дапамагае заліцвачваць змяны коду пазнейша.
Пачніце з LangGraph
Калі працуеце над стадзіяй «Пачатак з LangGraph», спачатку запісайце умовы викорыстоўвання: неабходныя даны, сігнал успеху і тое, што выходзіць у разе частковага невыпання. Такі список дапамагае заліцвачыць пазнейшыя змены ў кодзе. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, невыпанне павінна вказваць на адную адпаведальнасць, а не на заплутаны ланцюг задач. Стварайце контрольныя пункты пасля дорогіх крокаў. Програма не павінна зноў стягваць плата за той самы вызов LLM, калі аператар прабуе зноў запрацаваць пазнейшы вузел. Калі працуеце над стадзіяй «Пачатак з LangGraph», спачатку запісайце умовы викорыстоўвання: неабходныя даны, сігнал успеху і тое, што выходзіць у разе частковага невыпання. Такі список дапамагае заліцвачыць пазнейшыя змены ў кодзе. Запісвайце час выконання і кост токенав або запита праза функцыональныя рэзултаты. Відразувая візуабільнасць костаў запобегае неспакойным рахункам, калі процес пераходзіць з дэмавайнага режыма ў спяльныя сераўеры.
from functools import wraps
from typing import Callable, Any
class PolicyViolation(Exception):
"""Raised when policy check fails."""
pass
def enforce_tool_policy(
policy_fn: Callable[[str, dict], bool]
):
"""Sync tool execution guardrail."""
def decorator(func: Callable):
@wraps(func)
def wrapper(*args, **kwargs):
tool_name = func.__name__
context = kwargs.get(
"request_context", {}
)
# Must fail closed
if not policy_fn(tool_name, context):
raise PolicyViolation(
f"Denied: {tool_name}"
)
return func(*args, **kwargs)
return wrapper
return decorator
# Example Usage
def strict_policy_check(tool_name: str, context: dict) -> bool:
if not context.get("is_authenticated"):
return False
if (context.get("role") != "admin" and tool_name.startswith("execute_")):
return False
return True
@enforce_tool_policy(strict_policy_check)
def execute_refund(
order_id: str,
amount: float,
request_context: dict = None
):
# Downstream API call
return f"Refund ${amount} sent: {order_id}"
Звярніце увагу на памеры
Этап «Measure It» працюе найкраща, калі яго розглядаць як вимерную паверхню. Зафіксавце адна «золатая» транскрыпцыя, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць сферу дзеяння. Зберагаюце настройкі пазыроўна ад коду прыемліка. Файлы сераўнавальной среды, хранільнікі секрэтных данных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаць адбавляць контроль без неабяжнага чытання всіх дадзеных. Зберагаюце стан графа ў простам і типаваным формате. Вкладзеныя блокі дадзеных маскуюць інфармацыю пра тое, який вузел запісаў канкрэтны поле, і спакоююць продажчыку роботы пасля перарываў.
Скептычны падход
Механізм The Skeptical Take працюе наякшы, калі яго спрыяваць як меравальную паверхню. Запісаце адны «золаты» прыклад роботы, адны прыклад неудачы і прыметку па вярнэнню да пачатковага стану пры расшырэнні масштаба. Дакументавайце як шлях успеху, так і шлях вярнэння. Перапрыбуткі, людзкія контраліны і обработка некоректных паведамленняў ёсць часткай продукту, а не элементамі пазнейшага доўрабатвання. Храніце стан графаў у простам і типаваным формате. Вярнутыя структуры дакументаў маскуюць інфармацыю пра тое, який вузел запісаў канкрэтны поле, і спакшваюць продовжэнне роботы пасля перарываў.
Выводы
Этап Takeaways работае наякраща, калі яго спрыяваць як мерыемую паверхню. Зберагчыце адны ідеальны прыклад роботы, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расширваць масштабы. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, прычына неудачы павінна вказываць на адную адпаведальнасць, а не на заплутаны ланцюг задач. Рэзультаты графа павінны быць простымі та з адначытаемымі датамі. Вярнутыя структуры дакладнаў хаваюць інфармацыю пра тое, канферы які вузел запісаў канкрэтны поле, і спакшваюць продовжэнне роботы пасля перерываў. Этап Takeaways работае наякраща, калі яго спрыяваць як мерыемую паверхню. Зберагчыце адны ідеальны прыклад роботы, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расширваць масштабы. Запісвайце час выканання і вартасць токеноў або запытаванняя пры кожных функцыйнаых рэзультатах. Відразувая вартасці запобегае неспакойным расчыткам, калі процес пераходзіць з дэмавайнага режыма ў спяльныя среды.
Што далей
Для стадіі «Што далей» неабяжна ўзначыць вхідныя даны, адпаведальнага за крок і крэтырыя завершэння пры зміне коду. Аперацыйныя працавнікі павінны магчымаецца перазапускаць крок з вядомага пункта контролю, не спрабоўваючы здогадвацца пра заштынены стан.
Чэк-ліст для аперацый
Для стадіі чэк-ліста для аперацый неабяжна ўзначыць вхідныя даны, адпаведальнага за крок і крэтырыя завершэння пры зміне коду. Аперацыйныя працавнікі павінны магчымаецца перазапускаць крок з вядомага пункта контролю, не спрабоўваючы здагадвацца пра заштынены стан.
Спрытваце гэты ўрадок як кантракт межа вхіднымі дадзеннямі і пасвярджанымі выходнымі рэзультатамі. Дайце назвы артыфактам, задаце критэрыя успеху і не падзеўляйцеся частым, непасвярджаным завершэнням задач.
Неабходна людская апраўка для тых процесаў, якія витрачаюць грошы або зменяюць данні ў працэсе виробніцтва. Праця ў часе компілявання не абавязкова значыць повную завершанасць бізнес-процэсаў.
Напісце кароткі посібнік: як зменяць канфігурацыйныя ключы, як апустошыць чергу задач, як вярнуць стан да пярэдніх налашоўкаў.
Зазначайце час выканання задач, а таксу на токены чы запиты пад функцыйнальнымі рэзультатамі. Відразлівае відображэння костоў з’являецца прычыной парадоксальных сум у момент пераходу з дэмовай среды ў спільныя сервісы.
Неабходна людская апраўка для тых процесаў, якія витрачаюць грошы або зменяюць данні ў працэсе виробніцтва. Праця ў часе компілявання не абавязкова значыць повную завершанасць бізнес-процэсаў.
Перш чым запускать стак, заморозьце версіі, зафіксавце «золаты» транскрыпты для критычнага шляху і паказвце способы абяроны. У спільных средах неабходны ліміты частоты запуска, пераконтрольванне прав на выкарыстоўвання ресурсаў і чысткі власнік для змены секрэтных даных. Лепш выбіраць простую надзею на надзейнасць, чым хітрыя експерыментальныя дэманстрацыі.
Прыметкі для 6b6239b3fc1b: не кладзіце ключы прадаўцоў у репазітарый, задаце верхнюю межу токеноў на кожную сесію і зберагачыце транскрыпты празаўсёды пад фікстурамі для ацэнкі, каб пазнейшыя замены моделяў заставаліся пораўнанымі.