در سیستمهای توزیعشده و کلاسترهای پیچیدهی کوبرنتیز (Kubernetes)، هنگام وقوع حادثه معمولاً مهندسان با حجم عظیمی از هشدارهای همزمان، لاگها و متریکها مواجه میشوند. تریاژ سریع، تشخیص علت ریشهای و کاهش زمان بازیابی سرویس (MTTR) چالش روزمرهی تیمهای دوآپس و SRE است. الگوی نوین عملیاتی به این شکل تثبیت شده که ایجنتهای هوش مصنوعی وظیفهی خواندن تلهمتری و تحلیل گراف ارتباطات کلاستر را بر عهده بگیرند و انسانها تصمیم نهایی را برای اعمال تغییرات اتخاذ کنند.
در این پروژهی پایانی، یک ایجنت کامل عیبیابی با استفاده از LangGraph و پروتکل FastMCP میسازید که با دریافت وبهوک هشدار، دادههای Prometheus، Loki و Tempo را پیمایش میکند، محتملترین فرضیههای ریشهیابی خرابی را همراه با ارجاع دقیق به شواهد امتیازدهی کرده و خلاصهای تعاملی را به Slack میفرستد. تمرکز اصلی معماری بر ایمنی، تفکیک دسترسیهای فقطخواندنی و ثبت دقیق لاگهای بازرسی است.
اگر برای مدلهای ریشهیابی و خلاصهسازی از APIهای خارجی مانند Claude یا Gemini استفاده میکنید، توجه داشته باشید که این سرویسها دسترسی با IP ایران را با محدودیت مواجه کردهاند و امکان پرداخت مستقیم با کارتهای شتاب برای آنها وجود ندارد. در چنین شرایطی میتوانید از مدلهای باز محلی (مانند Llama 3.3 روی سرورهای اختصاصی) استفاده کنید یا ارتباط با ارائهدهندگان ابری را از طریق گیتویهای واسط سازگار با مشخصات OpenAI مدیریت نمایید.
سرویس DevOps Agent شرکت AWS به مرحلهی دسترسی عمومی (GA) رسید، Resolve AI کتابچههای راهنمای (playbooks) کوبرنتیز خود را منتشر کرد، NeuBird مانیتورینگ معنایی را به نمایش گذاشت و Metoro مهندسی قابلیت اطمینان سایت مبتنی بر هوش مصنوعی (AI SRE) را به اهداف سطح سرویس (SLO) به ازای هر سرویس گره زد. الگوی محیط عملیاتی (پروداکشن) دیگر تثبیت شده است: وبهوک هشدار فعال میشود، ایجنت دادههای تلهمتری را میخواند، گراف آبجکتهای کوبرنتیز را پیمایش میکند، فرضیههای ریشهیابی خرابی (root-cause) را رتبهبندی کرده و خلاصهای همراه با دکمههای تأیید در اسلک (Slack) میفرستد. دسترسی پیشفرض فقطخواندنی است. هرگونه اقدام اصلاحی به دروازهی تأیید نیروی انسانی وابسته است. این پروژهی پایانی دقیقاً پیادهسازی همین ایجنت است که روی 20 رخداد شبیهسازیشده ارزیابی شده و با ایجنت AWS در سه سناریوی مشترک مقایسه میشود.
فازهای تمرینشده: P11 · P13 · P14 · P15 · P17 · P18
مدت زمان: 30 ساعت
مسئله
روایت سالهای 2025 تا 2026 در دنیای SRE این شد: «ایجنتهای هوش مصنوعی رخدادها را تریاژ میکنند، انسانها اقدامات اصلاحی را تأیید میکنند». ابزارهای AWS DevOps Agent، Resolve AI، NeuBird، Metoro و PagerDuty AIOps همگی این الگو را در پروداکشن پیاده کردهاند. ایجنت متریکهای Prometheus، لاگهای Loki، تریسهای Tempo، دادههای kube-state-metrics و گراف دانشی از آبجکتهای کوبرنتیز را میخواند. سپس در کمتر از 5 دقیقه فرضیههای رتبهبندیشدهی علت ریشهای را با ارجاع دقیق به شواهد تلهمتری تولید میکند. این سیستم هرگز دستورات مخرب را بدون تأیید صریح انسان در Slack اجرا نمیکند.
بخش عمدهی چالش در تعیین دامنه (scoping) و ایمنی نهفته است، نه فرایند استدلال مدل. ایجنت به یک سطح کنترل دسترسی مبتنی بر نقش (RBAC) با حالت پیشفرض فقطخواندنی، یک سرور ابزار MCP ایمنسازیشده، و لاگهای بازرسی برای مقایسهی تکتک دستورات بررسیشده در برابر دستورات اجراشده نیاز دارد. ایجنت باید بداند چه زمانی موضوع خارج از توان تحلیلی اوست تا کار را به نیروی انسانی ارجاع دهد. همچنین هزینهی اجرای آن باید آنقدر پایین باشد که خطاهای آبشاری ناشی از کمبود حافظه (OOM-kill cascades) صورتحساب 5000 دلاری برای اجرای ایجنت روی دست تیم نگذارد.
مفهوم
این ایجنت روی یک گراف دانش کار میکند. گرهها شامل آبجکتهای کوبرنتیز (Pods، Deployments، Services، Nodes، HPAs و PVCs) بههمراه منابع تلهمتری (سریهای زمانی Prometheus، استریمهای لاگ Loki و تریسهای Tempo) هستند. یالها روابط مالکیت (Pod -> ReplicaSet -> Deployment)، زمانبندی استقرار (Pod -> Node) و مشاهده (Pod -> Prometheus series) را مشخص میکنند. این گراف با همگامسازی مداوم با kube-state-metrics بهروز نگه داشته میشود و با وقوع هر هشدار، دوباره نمونهبرداری میشود.
هنگام فعال شدن هشدار، ایجنت ریشهیابی را از همان آبجکت آسیبدیده آغاز میکند؛ یالها را میپیماید، برشهای مربوط به تلهمتری در 15 دقیقهی گذشته را واکشی میکند و پیشنویس فرضیه را مینویسد. فرضیهها بر اساس شواهد رتبهبندی میشوند: اینکه چه تعداد ارجاع تلهمتری از آن پشتیبانی میکند، این دادهها چقدر تازگی دارند و میزان دقت و اختصاصیبودن آنها چقدر است. سه فرضیهی برتر همراه با تصویر مسیر پیمایش در گراف و دکمههای تأیید برای اقدامات اصلاحی به Slack ارسال میشوند.
اقدامات اصلاحی پشت دروازهی تأییدیه قرار دارند. اقدامات مجازِ پیشفرض کاملاً فقطخواندنی هستند. اقدامات مخرب (کاهش مقیاس، بازگشت به عقب، حذف پادها) نیازمند تأیید در Slack هستند؛ هوکهای بازگشت به عقب در ArgoCD به توکن احراز هویتی نیاز دارند که هرگز در اختیار ایجنت قرار نمیگیرد. لاگ بازرسی تمام دستوراتی را که ایجنت بررسی کرده — نه صرفاً آنهایی که اجرا شدهاند — ثبت میکند تا فرایند بازبینی بتواند خطاهای بالقوه و نزدیک به وقوع (near-misses) را شناسایی کند.
معماری
PagerDuty / Alertmanager webhook
|
v
FastAPI receiver
|
v
LangGraph root-cause agent
|
+---- read-only MCP tools ----+
| |
v v
K8s knowledge graph telemetry slices
(Neo4j / kuzu) Prometheus, Loki, Tempo
ownership + scheduling last 15m, scoped
|
v
hypothesis ranking (evidence weight)
|
v
Slack brief + approval buttons
|
v (approved)
ArgoCD rollback hook / PagerDuty escalate
|
v
audit log: considered vs executed, every command
استک فنی
- منابع مشاهدهپذیری: Prometheus، Loki، Tempo، kube-state-metrics
- گراف دانش: Neo4j (مدیریتشده) یا kuzu (درونبرنامهای) برای آبجکتهای کوبرنتیز + یالهای تلهمتری
- ایجنت: LangGraph با لیست مجاز به ازای هر ابزار، در حالت پیشفرض فقطخواندنی
- بستر انتقال ابزار: FastMCP روی بستر StreamableHTTP؛ سرور جداگانه برای ابزارهای مخرب پشت دروازهی تأییدیه
- مدلها: Claude Sonnet 4.7 برای استدلال ریشهیابی خرابی، Gemini 2.5 Flash برای خلاصهسازی لاگها
- اقدام اصلاحی: وبهوک بازگشت به عقب در ArgoCD، ارجاع به PagerDuty، کارت تأییدیه در Slack
- لاگ بازرسی: لاگ ساختاریافتهی فقطافزودنی (بررسیشده، اجراشده، تأییدکننده، نتیجه)
- استقرار: دیپلوی کوبرنتیز با نقش RBAC محدود و اختصاصی در یک نیماسپیس جداگانه
پیادهسازی
-
ورود دادهها به گراف. همگامسازی kube-state-metrics با Neo4j/kuzu در بازههای 30 ثانیهای. گرهها: Pod، Deployment، Node، Service، PVC و HPA. یالها: OWNED_BY، SCHEDULED_ON، EXPOSES، MOUNTS و SCALES. یالهای لایهی تلهمتری: OBSERVED_BY (پادی که یک سری زمانی Prometheus آن را مشاهده میکند).
-
دریافتکنندهی هشدار. اندپوینت FastAPI برای دریافت وبهوکهای PagerDuty یا Alertmanager. استخراج آبجکتهای تحتتأثیر و نقض رخداده در SLO.
-
سطح دسترسی ابزارهای فقطخواندنی. کپسولهسازی دستورات kubectl، کوئریهای Prometheus، لاگهای Loki (logql) و تریسهای Tempo (traceql) از طریق FastMCP. هر ابزار محدود به افعال خواندنی RBAC مانند «get»، «list» و «describe» است. در سرور پیشفرض هیچ دستوری مانند «delete»، «exec» یا «scale» وجود ندارد.
-
ایجنت ریشهیابی خرابی. جریان کاری LangGraph با سه گره: گره
sampleبرش دادههای تلهمتری 15 دقیقهی گذشته را واکشی میکند، گرهwalkگراف را برای آبجکتهای همسایه کوئری میزند، و گرهhypothesizeپیشنویس فرضیههای رتبهبندیشدهی علت ریشهای را همراه با ارجاعات تلهمتری تدوین میکند. -
امتیازدهی به شواهد. فرمول امتیاز هر فرضیه: تازگی × اختصاصیبودن × معکوس طول مسیر در گراف × تعداد ارجاعات تلهمتری. 3 مورد برتر را برگردانید.
-
گزارش خلاصه در Slack. ارسال یک پیوست شامل فرضیه، تصویر مسیر طیشده در گراف (یک زیرگراف رندرشده در سمت سرور) و دکمههای تأیید برای حداکثر یک اقدام اصلاحی.
-
دروازهی تأییدیهی اقدامات اصلاحی. ابزارهای مخرب (کاهش مقیاس، بازگشت به عقب، حذف) روی یک سرور MCP ثانویه و پشت یک توکن تأیید قرار دارند. ایجنت تنها زمانی میتواند آنها را فراخوانی کند که کارت Slack توسط انسان تأیید شده باشد.
-
لاگ بازرسی. فایل JSONL فقطافزودنی: برای هر دستور کاندیدا، ثبت کنید که آیا بررسی شده، آیا اجرا شده و چه کسی آن را تأیید کرده است. ارسال روزانهی این لاگها به S3.
-
مجموعه سناریوهای رخداد شبیهسازیشده. ساخت 20 سناریو: خطای آبشاری OOMKill، ناپایداری موقت DNS، نوسان شدید HPA، پر شدن PVC، همسایهی پر سر و صدا (noisy neighbor)، مشکل در سایدکار، اعمال ConfigMap معیوب، چرخش گواهینامه، عقبگرد دریافت ایمیج (image-pull backoff) و مواردی از این دست. امتیازدهی به ایجنت بر اساس دقت در ریشهیابی و مدت زمان رسیدن به فرضیه.
استفاده عملیاتی
webhook: alert.pagerduty.com -> checkout-api SLO breach, error rate 14%
[graph] affected: Deployment checkout-api (3 Pods, Node ip-10-2-3-4)
[walk] neighbors: ReplicaSet checkout-api-abc, Service checkout-api,
recent rollout 14m ago
[sample] prometheus error_rate 14%, up-trend; loki 500s on /api/v2/pay
[hypo] #1 bad rollout: latest image checkout-api:v2.41 fails /healthz
citations: deploy.yaml (rev 42), prometheus errorRate, loki 500 stack
[slack] [ROLL BACK to v2.40] [ESCALATE] [IGNORE]
(approval required; agent does not roll back unilaterally)
تحویل نهایی
فایل outputs/skill-devops-agent.md خروجی کار است. این ایجنت با دریافت کلاستر کوبرنتیز و منبع هشدار، فرضیههای رتبهبندیشدهی علت ریشهای و یک جریان کاری اصلاحی با نظارت انسان در Slack را پیاده میکند.
| ضریب | معیار | نحوهی ارزیابی |
|---|---|---|
| 25 | دقت RCA در مجموعهی سناریوها | کسب حداقل 80٪ ریشهیابی درست در میان 20 رخداد شبیهسازیشده |
| 20 | ایمنی | فعال نشدن گارد اقدامات مخرب بدون وجود تأییدیهی اسلک در لاگ بازرسی |
| 20 | زمان رسیدن به فرضیه | صدک 50 (p50) زیر 5 دقیقه از لحظهی هشدار تا ارسال گزارش به Slack |
| 20 | قابلیت تفسیرپذیری | ارائهی مسیر پیمایش گراف و ارجاعات تلهمتری برای تمام فرضیهها |
| 15 | یکپارچگی کامل سیستم | کارکرد سرتاسری اتصال به PagerDuty، Slack، ArgoCD و Prometheus |
| 100 |
تمرینها
-
ایجنت خود را روی همان سه سناریویی که برای دموی AWS DevOps Agent استفاده شده است اجرا کنید. نتایج را در کنار هم منتشر کرده و نقاط واگرایی ایجنت را گزارش دهید.
-
قابلیت ممیزی «خطاهای نزدیک به وقوع» را اضافه کنید تا هر دستوری را که ایجنت بررسی کرده و در صورت نبود تأییدیه میتوانست مخرب باشد، ثبت کند. نرخ این خطاها را طی یک هفته اندازه بگیرید.
-
مدل تولید فرضیه را از Claude Sonnet 4.7 به مدل خودمیزبان Llama 3.3 70B تغییر دهید. تفاوت دقت RCA و هزینهی دلاری به ازای هر رخداد را مقایسه کنید.
-
یک فیلتر علّی بسازید: تمایز بین جهشهای آماری همبسته در تلهمتری و علت ریشهای واقعی. یک دستهبند کوچک بر اساس برچسبهای 20 سناریو آموزش دهید.
-
اجرای آزمایشی (dry-run) برای بازگشت به عقب اضافه کنید: اجرای ArgoCD rollback روی یک کلاستر استیجینگ با همان مانیفست. طرح بازگشت به عقب را قبل از فعال شدن دکمهی تأیید در Slack، داخل یک کلاستر زنده اعتبارسنجی کنید.
اصطلاحات کلیدی
| اصطلاح | در زبان عامیانه | معنای دقیق فنی |
|---|---|---|
| K8s knowledge graph | «گراف کلاستر» | گرهها = آبجکتهای کوبرنتیز + سریهای تلهمتری؛ یالها = مالکیت، زمانبندی و مشاهده |
| Read-only-by-default | «محدودسازی RBAC» | اکانت سرویس ایجنت فقط مجوزهای get/list/describe دارد؛ افعال مخرب در سروری جداگانه پشت تأییدیه هستند |
| Audit log | «بررسیشده در برابر اجراشده» | ثبت فقطافزودنی تکتک دستورات کاندیدا، وضعیت اجرای آنها و شخص تأییدکننده |
| Hypothesis ranking | «امتیاز شواهد» | تازگی × اختصاصیبودن × معکوس طول مسیر در گراف × تعداد ارجاعات تلهمتری |
| Slack approval card | «دروازهی HITL» | پیام تعاملی در Slack با دکمههای اقدام اصلاحی؛ ایجنت تا زمان کلیک انسان پیش نمیرود |
| Telemetry citation | «اشارهگر شواهد» | کوئری Prometheus، سلکتور Loki یا URL تریس Tempo که از ادعای مطرحشده پشتیبانی میکند |
| MTTR | «زمان رفع خرابی» | زمان واقعی سپریشده از لحظهی شلیک هشدار تا بازیابی کامل SLO |
برای مطالعهی بیشتر
- عمومی شدن AWS DevOps Agent: مرجع اصلی سال 2026
- عیبیابی کوبرنتیز در Resolve AI — مطالعهی نمونهی رقیب
- مانیتورینگ معنایی NeuBird — رویکرد مبتنی بر گراف معنایی
- سیستم هوش مصنوعی SRE در Metoro — طراحی پروداکشن با محوریت SLO
- پروژهی kube-state-metrics — منبع دریافت وضعیت کلاستر
- چارچوب LangGraph — هماهنگکنندهی مرجع برای ایجنتها
- کتابخانهی FastMCP — فریمورک پایتون برای سرور MCP
- بازگشت به عقب در ArgoCD — مقصد نهایی اقدامات اصلاحی تحت کنترل دروازهی تأییدیه
