تصور کنید خرابی یک سیستم به جای اینکه فقط با یک هشدار در داشبورد تمام شود، بلافاصله یک پیشنهاد کد اصلاحی برای برنامهنویس ارسال کند. یک نمونه اولیه از عامل SRE (مهندس reliability سایت) با بهرهگیری از Llama 3.1 دقیقاً همین کار را میکند؛ این ابزار تلهمتری را میخواند و گامهای اصلاحی مشخصی را برای توسعهدهندگان پیشنهاد میدهد و بدین ترتیب، از محدودیتهای ابزارهای سنتی مشاهدهپذیری فراتر میرود.
ابزارهای مدرن مشاهدهپذیری در جمعآوری دادهها بسیار بهینه هستند، اما بار ذهنی تحلیل علت ریشهای (Root Cause Analysis) هنوز کاملاً بر دوش مهندس انسان است. طبق گزارشی که در ۲۵ ژوئیه ۲۰۲۶ در وبسایت dev.to منتشر شد، این پروژه قصد دارد با تبدیل دادههای تلهمتری به یک پرامپت برای مدل زبانی بزرگ (LLM) — مثل کتابخانهداری که میلیاردها صفحه را خوانده و حالا با همان لحن کتابها جواب میدهد — فاصله بین هشدار و راهکار را کوتاه کند. این تلاش برای تبدیل دادههای خام به بصیرت عملی، شباهت زیادی به رویکردهای نوین در تحلیل دادهها دارد، مشابه آنچه در معماری Cortex AI برای تبدیل زبان طبیعی به SQL مشاهده میکنیم تا دسترسی به تحلیلهای پیچیده تسهیل شود.
زمینه و تکامل پروژه
همانطور که در تحلیلهای پیشین ما دربارهی معماریهای عاملمحور اشاره کردیم، جابهجایی از سیستمهای پاسیو به عاملهای فعال، نقطهی عطفِ بهرهوری در DevOps است. این پروژه در ابتدا به عنوان یک آزمایش ساده در یک هکاتون برای درک سازوکار مشاهدهپذیری آغاز شد. در مراحل نخست، توسعهدهنده برای تولید دادههای تلهمتری جهت ارسال به SigNoz، از یک بکاند شناسایی گیاهان (PlantNet) که پیشتر ساخته شده بود، استفاده کرد.
بر اساس مستندات پروژه، محیط Google Colab برای اجرای SigNoz و تست مداوم سرویس بکاند مناسب نبود، زیرا پایداری لازم برای اجرای همزمان این سرویسها را نداشت. در نتیجه، کل گردشکار برای دستیابی به ثبات بیشتر به GitHub Codespaces منتقل شد.
یادگیری خط لوله (Pipeline) تلهمتری سختترین بخش کار بود. توسعهدهنده تقریباً یک هفته کامل را صرف تنظیم SigNoz، اصلاح بکاند و عیبیابی این موضوع کرد که چرا دادهها در داشبورد ظاهر نمیشوند. در بسیاری از موارد، مشکل از کد نبود بلکه سرویسهای SigNoz متوقف میشدند و نیاز به بازراهاندازی دستی با دستور docker restart signoz-signoz-0 داشتند.
جزئیات فنی
هدف اولیه، مانیتورینگ استاندارد شامل بررسی درخواستهای شکستخورده و تجسم تأخیر (Latency) بود. اما توسعهدهنده متوجه شد که صرفاً در حال مصرف دادههایی است که پیشتر در داشبورد نمایش داده شدهاند و این کار ارزش افزودهای ایجاد نمیکند. همین موضوع منجر به شکلگیری فرضیه اصلی شد: «چه میشود اگر تلهمتری به جای نمایش در داشبورد، توسط یک عامل (Agent) مصرف شود؟»
برای تحقق این هدف، سیستم از یک گردشکار چندمرحلهای مشخص استفاده میکند:
- اسکن تشخیص: کاربر از طریق یک رابط کاربری ساخته شده با Streamlit، عملیات اسکن را فعال میکند.
- استخراج داده: عامل، تلهمتری مورد نیاز را با فرمت JSON از SigNoz درخواست میکند.
- استدلال: این محموله (Payload) JSON به Groq ارسال میشود و در آنجا مدل Llama 3.1 تحلیل علت ریشهای را انجام میدهد.
- اصلاح: مدل یک بلوک کد پایتون تولید میکند که حاوی یک راهکار اصلاحی پیشنهادی برای رفع خطا است.

یک انتخاب فنی متمایز در این پروژه، «مشاهدهپذیر کردن خودِ عامل» بود. توسعهدهنده برای این کار از OpenTelemetry استفاده کرد تا خودِ عامل را نیز ابزارگذاری (Instrument) کند. این یعنی عملیاتی مثل دریافت تلهمتری، استدلال روی شکستها و فراخوانی مدل LLM، هر کدام «اسپنهای» (Spans) خاص خود را ایجاد میکنند. این رویکرد به دنبال ایجاد شفافیت کامل در عملکرد مدل است، چیزی که در پلتفرم متنباز FLARE-AI برای ردیابی شکستهای هوش مصنوعی نیز به عنوان یک هدف بنیادین دنبال میشود.
این رویکرد یک حلقه بازگشتی (Recursive Loop) ایجاد میکند که در آن، ابزار تشخیص توسط همان سیستمی که تحلیل میکند، مانیتور میشود و تمام عملیات داخلی عامل در داخل SigNoz قابل مشاهده و ردیابی است.

حلقه اصلاح خودکار (Auto-Fix Loop)
سیستم تنها پیشنهاد متنی نمیدهد؛ بلکه کد پایتون تولید شده را استخراج کرده و مستقیماً آن را به سرویس هدف الحاق میکند. رابط کاربری برای تسهیل این فرآیند شامل موارد زیر است:
- یک نمایشگر کد زنده (Live Code Viewer) برای تأیید نهایی کد توسط انسان.
- دکمهای برای اجرای سرویس بهروزشده با کد جدید.
- دکمهای برای بازگرداندن (Restore) سرویس به حالت اولیه در صورت بروز مشکل.

این تغییر رویکرد از «تجسم داده» به «مصرف داده»، نقش SRE را از یک بازرس دستی که ساعتها لاگها را میکاود، به یک بررسیکننده (Reviewer) تغییر میدهد. با خودکارسازی خط لوله تبدیل JSON به بصیرت، عامل وظایف خستهکننده بررسی لاگها را بر عهده میگیرد تا مهندس بتواند تمام تمرکز خود را بر اعتبارسنجی منطق اصلاحیه معطوف کند.
چالشهای مهندسی و ساختار
ساخت این نمونه اولیه نیازمند تکرارهای متعدد برای غلبه بر موانع فنی خاص بود. چالشهای کلیدی عبارت بودند از:
- بهبود پرامپتها برای اطمینان از اینکه LLM به جای ارائه توصیههای کلی و تئوریک، اصلاحیههای کاربردی و دقیق تولید کند.
- جلوگیری از ایجاد وصلههای تکراری (Duplicate Patches) که باعث تغییرات مکرر و نابجا در سرویس هدف میشد.
- مدیریت همزمان چندین پروسه ترمینال در محیط محدود GitHub Codespaces.
ساختار مخزن پروژه به چهار مؤلفه اصلی تقسیم میشود: agent2.py (مدیریت تلهمتری و ارتباط با Groq)، app.py (رابط کاربری Streamlit)، ai_agent_tracer.py (ابزار ردیابی و ابزارگذاری عامل) و service.py (سرویس هدف که برای دموها استفاده میشود).
با این حال، باید تأکید کرد که این سیستم هنوز یک نمونه اولیه (Prototype) است. در حال حاضر اسکنها باید به صورت دستی فعال شوند و مکانیسمهای استقرار خودکار یا اعتبارسنجی خودکار وجود ندارد. بازبینی انسانی قبل از اعتماد به هر وصله (Patch) تولید شده، همچنان الزامی و ضروری است.
در نسخههای آینده، تمرکز بر تحلیل چندین میکروسرویس به جای یک بکاند واحد خواهد بود. همچنین توسعهدهنده برنامهریزی کرده است تا تشخیصها را به صورت خودکار از طریق هشدارها (Alerts) فعال کند و به جای ویرایش فایلهای محلی، سیستم را به گونهای تغییر دهد که مستقیماً Pull Requestهای گیتهاب را ایجاد کند.
گام بعدی شما
- اگر از SigNoz استفاده میکنید، بررسی کنید که آیا میتوانید دادههای JSON تلهمتری را به یک مدل استدلالی متصل کنید.
- برای کاهش خطای مدل در تولید کد، از تکنیکهای SFT (تنظیم نظارتشده) روی دادههای مربوط به لاگهای سیستم خود استفاده کنید.
- معماری «رقابت عامل» (Agentic Loop) را برای تبدیل هشدارها به PRهای گیتهاب در زیرساخت خود پیاده کنید.
این تنها آغاز ماجراست؛ اثر موجگونهی این رویکرد بر آینده مشاغل SRE را در گزارش بعدی بررسی خواهیم کرد.




گفتگو