Галоўная / Артыкулы / Teams Built Judikt: плоскас керування безпекай і надзеямою для агентаў AI, якія выкарыстоўваюць MCP.

Teams Built Judikt: плоскас керування безпекай і надзеямою для агентаў AI, якія выкарыстоўваюць MCP.

Практычныя інструкцыі па викорыстоўванні Teams Built Judikt: плоскас керування безпекай і надзеямою для агентаў AI, якія выкарыстоўваюць MCP: контракты, перакананні та шаблоны коду для команд, якія розповсюджуюць MCP.

2239 слоў

У гэтым керавану практычна адбудоваць шлях ад сыр'ёў да рабочай системы для проекта «I Built Judikt: A Security and Reliability Control Plane for AI Agents Using MCP». Акцэнт ставіцца на крокі, якія можна выконваць, чыстае перакананне ў правільнасці дзействаў, а таксама на код, які можна проста дадаць у репозытарый без неабязковасці з'ясоўвання меты. Для загальнага адгледзення, перш чым зменяць код, неабходна визначыць вхідныя даны, адпаведальнага за крок і критэрыя завершэння. Аператары должны магчымае перадзваніць крок з вядомай точкі контролю, не падозрюючы пра схованы стан. Неабходна аддокументаваць як шлях успеху, так і шлях вяснавання проблем. Перапрыбуткі, людзкія перакананні і обробка некоректных паведамленняў є частью продукту, а не чымсь, што дадаецца пазней.

Шта такое Judikt?

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

Проблема, якую вы хацелі рашыць

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

Як запыт праходзіць через Judikt

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

AI agent or MCP client
        |
        v
Authentication and actor binding
        |
        v
Tool allowlist and argument inspection
        |
        v
Risk scoring and environment checks
        |
        v
Rate limit, approval, rollback plan, kill switch
        |
        +---- DENY / REQUIRE_APPROVAL / DRY_RUN_ONLY
        |
        v
Pinned MCP tool-definition verification
        |
        v
JSON-RPC tools/call over stdio or Streamable HTTP
        |
        v
Operational backend or external MCP server
        |
        v
Prompt-injection inspection and secret redaction
        |
        v
Agent-visible result
        |
        v
Signed audit event, metrics, traces, and findings

Калі працуеце над тым, як запит праходзіць через Judikt, спачатку запісайте умовы вярбунка: неабяцковыя даны, сігнал успеху і тое, што выходзіць у разе частковага невыпання. Такі список контроля дапамагае заліцвачыць пазнейшыя змены ў кодзе. Адначасова задокументавайце шлях успеху і шлях вярнення. Перапрыбуткі, людзкія контрольныя пункты і обработка непрацюючых запітоў є часткай продукту, а не пазнейшым дапрацоўкам.

Што насправды запускаецца ў локальнай дэманстрацыі

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

runtime.call_tool(
    "platform-ops",
    "platform.health",
    {"service": "payments-api"},
)
python -m judikt.cli backend platform-ops
JudiktRuntime.call_tool
  -> PolicyEngine.evaluate
  -> StdioMCPClient.call_tool
  -> JSON-RPC tools/call
  -> PlatformOpsBackend.call
  -> ContentGuard.inspect
  -> PolicyEngine.redact
  -> AuditStore.record
  -> Metrics.observe
  -> ToolCallResult

Операцыйныя бэкенды

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

Управлінне з боку запыту

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

Усуненне проблем з атрыбутам ужоцьвярджэння

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

Тэставанне без рэальных дадзенняў, режым тэневага аператара і механізмы зупінкі

Для режыма працы без рэальных наследків, режыма „тэнь“ і функцый канцэлювання неабяжна пазначыць вхідныя данні, адпаведальную особу за выкананне крока і критэрыі завершэння пры перадзеяванні коду. Аператары должны магчымаць перывыканне крока з вядомай точкі контролю без неабяжнага адгадвання схованага стану. Спрыяйце цэму этапу як кантракту межа вхіднымі данніма і перакананымі выходнымі рэзультатамі. Дайце назвы артыфактам, пазначыце критэрыі успеху і не прымайце часткова завершанне без паведамлення. Автентыфікуйцеся на в’язку і парадзеўжыце разрэшэння на роўні дадзеных. Толькі токэн-носіцель не ёстся межай арендаванага ресурсу.

Захаванне шляху адпаведзі

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

Рэдакцыя і секрэты

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

Доказы аудыту, якія паказваюць пранарушэння

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

Візуабельнасць

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

Што пакрывае дэманстрацыя

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

Варыянты развёртвання

Варыянты развёртвання працуюць наўсёх краща, калі іх спрыяглядаць як мерыемую плошчу. Зафіксавайце адны ідеальны прыклад роботы, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расширваць сферу дзеяння. Спрыяглядайце гэты этап як кантракт межа вхіднымі даннымі і перакананымі выходнымі рэзультатамі. Даўце назвы артыфактам, задаць критэрыя успеху і не падзеўляйцеся частым, непূরным выкананнем задач. Адкройце інструменты з вузкімі схемамі та чысткімі пазначэннямі побачных эфектаў. Адпаведальныя за хоставанне должны знать, якія вызовы мутуюць стан, перш чым автаматычна схваліць іх.

Тэставанне та перакананне безпекі

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

Што ўсё яшчэ не вырашана

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

Што вы навучыліся

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

Прабуйце проект

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

git clone https://github.com/gaurav-gs7/Judikt.git
cd Judikt
./scripts/run_demo.sh --audit-db /tmp/judikt-demo.db

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

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

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

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

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

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

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

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

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

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