Галоўная / Артыкулы

Практычныя нататкі: kagent — фрэймворк AI-агентаў, натыўны для Kubernetes

Практычны разбор тэмы «kagent, фрэймворк AI-агентаў, натыўны для Kubernetes»: кантракты, праверкі і гатовыя фрагменты кода для каманд, якія ўкараняюць гэты падыход.

Выдавец: REACTAPP.TOP20 хв чытання4687 слоў

Крыніцы: kagent: The Kubernetes-Native AI Agent Framework You Should Actually Know About

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

Што такое kagent?

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

Архітэктура

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

┌─────────────────────────────────────────────────────────┐
│                   Kubernetes Cluster                     │
│                                                         │
│  ┌──────────────┐     ┌──────────────┐                  │
│  │  Controller  │────▶│  Agent CRDs  │                  │
│  │   (Go)       │     │  ToolServers │                  │
│  └──────────────┘     │  ModelConfig │                  │
│         │             └──────────────┘                  │
│         ▼                                               │
│  ┌──────────────┐     ┌──────────────┐                  │
│  │   Engine     │────▶│  MCP Server  │                  │
│  │ (Python ADK  │     │  (Built-in   │                  │
│  │  or Go ADK)  │     │   tools)     │                  │
│  └──────────────┘     └──────────────┘                  │
│         │                                               │
│  ┌──────▼───────┐                                       │
│  │  Dashboard   │  ← Web UI (React/TypeScript)          │
│  │  + CLI       │  ← kagent CLI (Go)                   │
│  └──────────────┘                                       │
└─────────────────────────────────────────────────────────┘

Кантролер

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

Энжын (Програма)

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

Сэрверы інструментаў

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

Участка чалавека (HITL)

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

tools:
  - type: McpServer
    mcpServer:
      name: kagent-tool-server
      kind: RemoteMCPServer
      apiGroup: kagent.dev
      toolNames:
        - k8s_get_resources       # runs immediately
        - k8s_apply_manifest      # pauses for approval
        - k8s_delete_resource     # pauses for approval
      requireApproval:
        - k8s_apply_manifest
        - k8s_delete_resource

Шаблоны запітаў

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

systemMessage: |
  You are a Kubernetes management agent named {{.AgentName}}.
  {{include "builtin/safety-guardrails"}}
  {{include "builtin/tool-usage-best-practices"}}
  {{include "my-prompts/cluster-specific-rules"}}
  Your tools: {{.ToolNames}}

Памяць агента і стысненне кантэксту

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

Агенты як інструменты (A2A)

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

Падтрымваныя прадаўцы LLM

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

apiVersion: kagent.dev/v1alpha2
kind: ModelConfig
metadata:
  name: default-model-config
  namespace: kagent
spec:
  provider: OpenAI
  model: gpt-4o
  apiKeySecret: kagent-openai
  apiKeySecretKey: OPENAI_API_KEY

Працыскі

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

Недакладнасці

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

Выбір мадэлі: локальная проты API

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

Што працюе надзейна з локальнымі модэлямі

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

Што патрэбуе модэлю API

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

Рэальная стоімасць і прыватнасць

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

Канкурантскі ландшафт

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

k8sgpt проты kagent

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

BotKube проты kagent

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

HolmesGPT vs kagent

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

kubectl-ai vs kagent

Калі працуеце над стадзіяй kubectl-ai vs kagent, спачатку запісайце угоду: неабяжлівыя даныя, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі спіс пераконвае ў тым, што пазнейшыя змены коду будуць чыстымі. Документавайце як шлях успеху, так і шлях вяснавання. Перапрыбуткі, людзкія контралі і обработка некорэктных паведамленняў ёсць часткай продукту, а не пазнейшым дапрацоўкам. Стварайце контрольныя пункты пасля дорогіх крокаў. Функцыя вяснавання не должна зноў выклікаць той самы вызов LLM, калі аператар перапрыбуе пазнейшы вузел. Калі працуеце над стадзіяй kubectl-ai vs kagent, спачатку запісайце угоду: неабяжлівыя даныя, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі спіс пераконвае ў тым, што пазнейшыя змены коду будуць чыстымі. Спрыймайце гэтую стадзію як угоду межаў між вхіднымі данымі і перакананымі выходнымі рэзультатамі. Назвайце файлы, задаць правіла пераканання успеху і не падтрымайце тыхню частковую завершэння.

Дама: kagent на Kind (Docker Desktop для Mac)

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

git clone https://github.com/simonjday/kagent-demo

cd kagent-demo

Прыямыя прычынкі

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

brew install kind kubectl helm kagent

Шаг 1: Створыце кластэр такога тыпу

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

kind create cluster \
  --name kagent-demo \
  --config kind-cluster.yaml \
  --wait 120s
export OPENAI_API_KEY="sk-..."
./scripts/install.sh
kubectl cluster-info --context kind-kagent-demo
kubectl get nodes
# NAME                        STATUS   ROLES           AGE
# kagent-demo-control-plane   Ready    control-plane   90s

Этап 2: Установіце kagent з дамо-прфілем

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

# OpenAI
export OPENAI_API_KEY="sk-..."

# --- or Ollama (no API key needed) ---
# export KAGENT_DEFAULT_MODEL_PROVIDER=ollama
# (ensure: ollama serve && ollama pull qwen3:8b)

# Installs kagent + pre-built demo agents (k8s-agent, helm-agent, observability-agent, istio-agent)
kagent install --profile demo
# Verify the install
kubectl -n kagent get pods
# NAME                          READY   STATUS    RESTARTS
# kagent-controller-xxxx        1/1     Running   0
# kagent-xxxx                   1/1     Running   0

Крок 2b: Выберыце свой модэль

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

export ANTHROPIC_API_KEY="sk-ant-..."

kubectl -n kagent create secret generic kagent-anthropic \
  --from-literal=ANTHROPIC_API_KEY="${ANTHROPIC_API_KEY}"
kubectl apply -f - <<'YAML'
apiVersion: kagent.dev/v1alpha2
kind: ModelConfig
metadata:
  name: claude-sonnet
  namespace: kagent
spec:
  provider: Anthropic
  model: claude-sonnet-4-6
  apiKeySecret: kagent-anthropic
  apiKeySecretKey: ANTHROPIC_API_KEY
  anthropic:
    apiVersion: "2023-06-01"
YAML
kubectl -n kagent get agents -o name | xargs -I {} kubectl -n kagent patch {} \
  --type=merge -p '{"spec":{"declarative":{"modelConfig":"claude-sonnet"}}}'
ollama pull qwen2.5:14b
kubectl apply -f - <<'YAML'
apiVersion: kagent.dev/v1alpha2
kind: ModelConfig
metadata:
  name: qwen25-14b
  namespace: kagent
spec:
  provider: Ollama
  model: qwen2.5:14b
  ollama:
    host: host.docker.internal:11434
YAML
kubectl -n kagent get agents -o name | xargs -I {} kubectl -n kagent patch {} \
  --type=merge -p '{"spec":{"declarative":{"modelConfig":"qwen25-14b"}}}'

Крок 3: Ачыніце панель керування

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

kagent dashboard
# kagent dashboard is available at http://localhost:8082
# Press Enter to stop the port-forward...

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

Шаг 4: Анаіз створанага

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

# See the Agent CRDs
kubectl -n kagent get agents
# NAME                  AGE
# helm-agent            2m
# observability-agent   2m
# istio-agent           2m
# k8s-agent    2m
# Inspect the Kubernetes agent
kubectl -n kagent get agent k8s-agent -o yaml

Шаг 5: Прыклад запытку 1 — Інвентар кластэра

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

List all namespaces in this cluster
How many pods are running in the kagent namespace?

Крок 6: Праблема дэманстрацыі 2 — Усведамленне пра Helm

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

What Helm releases are installed in this cluster?

Шаг 7: Дэманстрацыйны прыем 3 — Участка чалавека (адагу кіравання праз нявярненне)

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

kubectl apply -f - <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
  name: broken-app
  namespace: default
spec:
  replicas: 2
  selector:
    matchLabels:
      app: broken-app
  template:
    metadata:
      labels:
        app: broken-app
    spec:
      containers:
      - name: app
        image: nginx:nonexistent-tag
        resources:
          limits:
            memory: "64Mi"
            cpu: "250m"
EOF
There's a deployment called broken-app in the default namespace that's failing.
Diagnose what's wrong and propose a fix. Ask me before applying any changes.
kubectl delete deployment broken-app

Шаг 8: Абмен тэкстамі праз CLI

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

# List agents
kagent get agent
# Invoke the helm agent directly
kagent invoke -t "List all Helm releases and flag any that haven't been updated in 30+ days" --agent helm-agent

# Run the k8s agent
kagent invoke -t "Are there any pods in a non-Running state across all namespaces?" --agent k8s-agent

9-й крок: Створыце свой агента (YAML, гатовы для GitOps)

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

apiVersion: kagent.dev/v1alpha2
kind: Agent
metadata:
  name: platform-ops-agent
  namespace: kagent
spec:
  type: Declarative
  declarative:
    runtime: go                        # Fast startup; no Python deps
    modelConfig: default-model-config
    systemMessage: |
      You are a platform operations agent for this Kubernetes cluster.
      You help engineers diagnose issues, review Helm releases, and check
      workload health. You MUST ask for approval before modifying any resource.
      Be concise. Provide your reasoning before each tool call.
    tools:
      - type: McpServer
        mcpServer:
          name: kagent-tool-server
          kind: RemoteMCPServer
          apiGroup: kagent.dev
          toolNames:
            - k8s_get_resources
            - k8s_describe_resource
            - k8s_get_logs
            - k8s_get_events
            - k8s_apply_manifest
            - k8s_delete_resource
            - helm_list
            - helm_status
          requireApproval:
            - k8s_apply_manifest
            - k8s_delete_resource
    context:
      compaction:
        compactionInterval: 5          # Summarise after every 5 exchanges

Этап 10: Адынсталяваць

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

kagent uninstall

Чы трэба яго выкарыстоўваць?

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

Заключэнне

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

Чэк-ліст для эксплуатацыі

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

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

Дзеянне графа павінна быць простым і тыпаваным. Вкладзеныя блокі маскуюць інфармацыю пра тое, які вузел запісаў канкрэтны поле, і спакоююць працу пасля перарываў.

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

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

Дзеянне графа павінна быць простым і тыпаваным. Вкладзеныя блокі маскуюць інфармацыю пра тое, які вузел запісаў канкрэтны поле, і спакоююць працу пасля перарываў.

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

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