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

Аўтаномны SRE-памочнік у AWS на MCP, Bedrock Nova і з пацвярджэннем чалавека

Будуем SRE-агента для расследавання інцыдэнтаў: MCP-сервер з інструментамі CloudWatch і DynamoDB, цыкл Bedrock Converse, пераноснасць мадэлі і пацвярджэнне чалавекам кожнага выпраўлення.

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

Крыніцы: Building an Autonomous AWS SRE Copilot: Giving LLMs “Hands and Eyes” in the Cloud with MCP

На працягу майжэ року індустрыя зосерэджэна на ChatOps – вікорыстанні Шымів у Slack чы Telegram як ефектывніх інструментаў для інтэграціі з працэсамі CI/CD. Однак чат-боты ёсць лішэ відымою частыною рышэння. Справжня корысць для підпрыемств полягае у перэходы ад рэактывніх чат-ботыв до автономніх агентаў. Автономній помічнік з інжэнерыі надыйносты сайту (Site Reliability Engineering, SRE), створэній на основі Amazon Bedrock (Nova) і Model Context Protocol (MCP), разом із сервісамі AWS дэмонструе, як гэта можа віглядаты на практыці. Ён не лішэ запускае працэсі, а й самостыйно аналізуе інцыдэнты в рэжымі рэального часу, збірае метрыкі і журналі, візначае прычыні проблем і застосовуе відповідні корэкціі, усе гэта в межах захішчэного серэдовішча з удзелам людыні.

Управлінській варыант: AWS DevOps Agent

Перш чым ствараць што-небудзь спецыяльна, архітэктару следуе запытацца, чы не праслужвае гэта ўжо AWS. Так, але толькі часткова. AWS запусціла DevOps Agent на выставе re:Invent 2025, у прыёмнай версіі з грудня 2025 года, а повнаста доступна з марца 2026 года. Цэў адзін з серйозных багатоагентных сістэм, прызначаных для автонамнай рэакціі на інцыдэнты ў AWS.

Ёй далёка да старэйшых інструментоў, такіх як DevOps Guru:

  • Автонамная рэакція на інцыдэнты. Апаведамленне пра проблему з CloudWatch пачынае расследаванне, якое аналізуе тэлеметрыя, логі, трэйсы, змены коду і історыю развяртання, каб знайсці прычыну і падготавіць планы ўсунення проблем.
  • Проактываўнае запобiegанне. Сістэма аналізуе історычныя патэрны інцыдэтаў і пропануе способы паспрабоўкі павышыць ступень стабільнасі, інфраструктуры і працэсаў.
  • Перагляды гатовна да чыгуру. У яго аналізуюцца змяны ў кодзе і працэсы развяртання прычым да таго, як яны прайдуць у працэйную срэду.
  • Дызайн з многама агентамі. Галоўны оркестрацыяр керуе спецыялізаванымі падагентамі для аналізу логаў, выявлення прычын і падобных задач; гэты ж патэрн выкарыстоўваецца ў гэтым рыштунку.
  • Шырокія інтэграцыі. Datadog, Dynatrace, New Relic, Splunk, PagerDuty, GitHub, GitLab, ServiceNow і Slack падключаюцца без дапамогі додатковых налаштаванняў.
  • На паперы гэта пакрывае все, чаго могла б патрабаваць команда SRE.

    Чаму ствараць сабеіндыяўны варыянт

    Проблема — доступ. DevOps Agent ўключаецца ў пакеты падтрымкі AWS на рэвэляціях Business+ і Enterprise, і ён не доступны для шырокай публікі за запатраненнем. Арганізацыі, якія выкарыстоўваюць падтрымку Developer, стартапы, незалежныя команды або кансультанты, якія працуюць у акаунтах кліентаў без падтрымкі Enterprise, проста не можуць яго выкарыстоўваць.

    Управляемая служба падчынна командам, які ужо выкарыстоўваюць Enterprise Support і працуюць па стандартным патэранам AWS, адколькі AWS ужо адважыў большую частку працы, а інтэграцыі ёсць шырокімі. Аднак для архітэктара AI болей цікавым ёсць пытанне, чы розумецца гэты патэран дастаткова добра, каб можна было стварыць яго самастойна і расшырыць там, дзе заканчваецца управляемы продукт. Самэ гэта паказвае гэты праект.

    Асновная проблема: інструменты у масштабе

    Мадэлі на кшталт Amazon Nova розумеюць распадзеленыя сістэмы, архітэктуры AWS і складную дыягнастыку. У сваёй первісной форме яны застаюцца «мозгамі ў банку» — яны не можуць бачыць показнікі CloudWatch чы выкарыстоўваць табліцы DynamoDB.

    Выкарыстоўванне LLM паўстаўным чыннам абычайна значыла стварэнне кранглых спецыяльных кодаў:

    1. Задаць схему JSON для інструмента.
    2. Напісаць функцыю на Python, якая яго запускае.
    3. Увесты кранглыя даны абліков AWS у час працы агента.

    Гэта строго прыяе агента да інфраструктуру, што стварая проблемы з безпекай і перашкоды ў тыямаванні.

    Працоўвае MCP

    Протакол Model Context Protocol, запрацаваны компаніяй Anthropic і што быстра стае стандартам у галузі, чыста рашае гэтыя проблемы. Гэта стандартызаваны протакол, падобны USB-C для AI, які спаўнае з’ёднанне модэляў з зовнішнімі джэрэламі дадзеных і інструментамі. У змену тым, каб інструменты AWS былі вбудаваны ў агента, ствараецца околачны сервер MCP. Ён знаходзіцца ў срэдовышчы AWS з неабходнымі ролямі IAM і надае строго тыпаваныя, семантычныя інструменты праз стандартны протакол. Агент, які работае будзь-дзе, падключаецца як кліент MCP. Ям не трэба крантактуў AWS, таму што ён проста прасіць сервер адрабатваць інструменты за яго.

    Свабода выбору модэля

    Пакалі MCP не зважае на тое, які модэль знаходзіцца на другай стороне, оркестрабіручы агент SRE можа выкарыстоўваць той, які падходзіць:

    Amazon Nova  ─┐
    Claude 3.5   ─┼──→  SRE Agent Orchestrator  ──→  MCP Server  ──→  AWS Cloud
    OpenAI GPT-4o─┘          (agent.py)                (server.py)
    

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

    Архітэктура SRE copilot

    1. Целевая інфраструктура

    Ёжчы агенту было чаго ляцераваць, з дапамогою Terraform запускаецца стандартны безсерверны мікросэрвіс: API Gateway падае перад функцыяй Lambda, якая запісвае даныя ў табліцу DynamoDB. Намераваныя недагодзі — цэе табліца з меркаванымі 1 ейкапасам чытання і 1 ейкапасам запісу. Пад будзьмі рэальнымі навантажэннямі гэты API выклікае памылкі ProvisionedThroughputExceededException.

    2. Сервер MCP

    Сервер Python FastMCP выполняе ролю «рукі і вока», надаючы чатыры можлівасці SRE:

    • describe_architecture знаходзіць усе рэсурсы AWS (ARN-ы), якія маюць таг прылады.
  • query_cloudwatch_metrics адзейнае даныя тайм-серыі, такія як ThrottledRequests.
  • query_cloudwatch_logs адзейнае запыткі CloudWatch Logs Insights для вышуквання стэка трэсаў.
  • remediate_dynamodb_capacity — гэта мутуючы інструмент, які падвайшвае ўместнасць тэблы.
  • Межа довер’я ўсё там, куды заходзіць чалавек. Інструменты толькі для чытання ўсё абавеснавальныя, таму модэль можа выкарыстоўваць іх насколькі хоча, каб адбыць расследаванне. Аднак інструмент для усунення проблемаў апэльвае да строгага правіла удзеле чалавека. Перш чым вызваць AWS API, ён зупіняецца і прасіць аператара ў тэрмінале прызначыць згоду за дапамою [y/N], паказваючы адгукі модэля. Наявнасць перапрацоўванага контрольнага пункта для кожной дзеяння, якае змінюе стан, і які формуецца па правілах самай організацыі, — гэта тое, чаго не прысвячаюць DevOps Guru і Amazon Q.

    3. Абавеснавальны агент

    Агент — гэта невялы ўскрыпт на Python, які ведае справу з API Amazon Bedrock Converse праз boto3; для выканання задач выбрана семья модэляў Amazon Nova за ўзніклымі можлівасцямі і нізкой вартасцю. Ён запускае автонамны цыкл while:

    1. Ён прыме запіт на кшталт "Пользоватары адзвяртаюць, што API для платэжаў выкананне задачы затрымляе. Што робіць?"
    2. Ён запытае сервер MCP, якія інструменты ў наявнасці.
    3. Ён перакладае схемы інструментаў MCP безпосерэдна у фармат Bedrock Converse.
    4. Ён прыначынае аналіз: знаходзіць рэсурсы API для платэжаў, перакантролюе іх показнікі, а потым чытае лог-файлы.
    5. Ён вызывае інструменты праз MCP, перадае рэзультаты назад у Bedrock і продовжвае, пакуль не знайдзе рашэння і не актывацые інструмент для выправлення.

    Цыкл у дзейнасці

    Калі агенту паказуюць табліцу DynamoDB, якая працюе з обмежэннямі, і запытаюць выясніць, чаму дэмаверсія API вяртае адпаведныя коды 429 і 500, ён выкананае этыя крокі:

    1. Ён вызвае describe_architecture, ўбачыць ARN-ы табліцаў Lambda і DynamoDB.
    2. Ён вызвае query_cloudwatch_metrics на гэтай табліцы, аналізуе паказнік ProvisionedThroughputExceededRequests і з’яўляецца вялікі сплеск.
    3. Ён вызвае query_cloudwatch_logs на функцыі Lambda, парасканавляе JSON-логі і паўтарае падтверджэнне пра ProvisionedThroughputExceededException.
    4. Ён вырашае, што ўстатку недастатнько, і вызвае remediate_dynamodb_capacity, прасячы 50 RCU і 50 WCU.

    Тут сервер MCP перэхопляе вызов і запрашае чалавека:

    =======================================================
    ⚠️ URGENT: AGENT REQUESTING PERMISSION TO MODIFY INFRASTRUCTURE
    =======================================================
    Action: Scale DynamoDB Table 'sre-copilot-payments-dev'
    New Capacity: Read=50, Write=50
    Agent's Reason: The table is experiencing severe throttling (ProvisionedThroughputExceededException). Scaling up to mitigate the incident.
    =======================================================
    Approve this change? [y/N]: y
    

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

    Што дае такая архітэктура

    Раздзелэнне „галавы“ (Amazon Nova праз Bedrock) ад „рукаў“ (AWS API-яў) за дапамогою MCP дае гнучкасць, якой не можу парабіцца інструменты для керавання AWS:

    • Перэноснасць LLM. Замена Nova на Claude або GPT-4o — гэта толькі змена ў налаштаваннях.
    • Безпека. Чыстыя аутантыфікацыйныя даныя ніколі не прабіваюць да асяроддзя выканання LLM.
    • Безпека ў працы. Змены дзеянняях праходзяць праз налаштавальны крок затверджэння чалавеком.
    • Расшыруемасць. Новы інструмент, чы гэта PagerDuty, запыт API Datadog або перагляд тыкета у ServiceNow, можна дадзець за дапамогою адной функцыі @mcp.tool().
  • Аўтанамія. Агент свабодна аналізуе тэлеметрыяны даны, якія можна толькі чытаць, таму ён можа дыяганаваць нештасныя проблемы, якія засталіся непазначанымі для інструментаў на адпаведнасць шаблонам, такіх як DevOps Guru.
  • Спадчыны хмарных сервісаў, вядома, будуць перайшчы з монолітных кераваных сервісаў, якія прыгвождваюць команды, да складальных, незалежных ад модэляў, падлежачых аўдыту агентаў, якія команды самі ствараюць, контролююць і продовжваюць удосконаляць. эта мадэль падходзіць для прыменення ў рэальных умовах, а не толькі для дамырання.

    Для інформацыі: спефікацыя MCP публікуецца на modelcontextprotocol.io, а AWS Labs падтрымвае серверы MCP з адкрытым кодам.