Практычныя прыказкі: kagent – фрэймворк AI-агента, створаны прымусова для Kubernetes: тое, што вам трэба знаты.
Практычныя прыказкі: kagent – фрэймворк AI-агента, створаны прымусова для Kubernetes: контракты, пераконтрольваннія та готовы блокі коду для команд, якія використоўваюць гэты патэрн.
У гэтым керавану практычна перакладзена дорага ад сыр'ёў да рабочай системы для 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: не кладзіце ключы прадаўцаў у репазітарый, задаце ліміт токена на кожную сесію і зберагачыце транскрыпты празаўсюды з фікстурамі для ацэнкі, каб пазнейшыя замены моделяў заставаліся пораўнанымі.