پرش به محتوای اصلی

هزینه تله‌متری یک متغیر طراحی عامل است، نه یک صورت‌حساب زیرساختی

بارهای کاری عامل هزینهٔ نظارت‌پذیری را چند برابر می‌کنند، زیرا هر مرحله ردها، لاگ‌ها و معیارها را منتشر می‌کند. راه‌حل، سیاست نمونه‌برداری و نگهداری است که در کنار عامل طراحی شود.

عکس ماکرو از یک برد مدار که ردها، نقاط لحیم‌کاری و قطعات نصب‌شده روی سطح را با جزئیات دقیق نشان می‌دهد

منحنی هزینه‌ای که هیچ‌کس پیش از عرضه مدل نمی‌کند

یک سرویس متعارف تله‌متری را تقریباً به نسبت درخواست‌هایی که سرویس می‌دهد منتشر می‌کند. یک عامل این‌گونه نیست. یک درخواست کاربر به یک مرحلهٔ برنامه‌ریزی، دنباله‌ای از فراخوانی ابزار، یک مرحلهٔ اعتبارسنجی، یکی دو تلاش مجدد و یک ترکیب نهایی منشعب می‌شود. هر یک از این مراحل یک span است؛ هر span ویژگی‌ها، رویدادها و اغلب یک payload حمل می‌کند. این ضرب ساختاری است، نه اتفاقی.

گزارش‌های صنعتی شروع به نام‌گذاری این الگو کرده‌اند. پوشش راهنمای نظارت‌پذیری Splunk، تفسیر گسترده‌تر در Network World، و مطالب تله‌متری Cisco همگی یک شکل را توصیف می‌کنند: بارهای کاری مبتنی بر عامل و LLM حجم نظارت‌پذیری را سریع‌تر از نرخ درخواست زیربنایی بالا می‌برند، و بخش زیادی از هزینهٔ حاصل پنهان است زیرا در ذخیره‌سازی، دریافت و مجوزهای به‌ازای هر کاربر انباشته می‌شود نه در یک قلم قابل مشاهده. پوشش مرتبط با Splunk، بحث Network World و نوشته‌های نظارت‌پذیری Cisco را برای روند کلی ببینید.

مشاهدهٔ ناراحت‌کننده این است که بیشتر این داده هرگز خوانده نمی‌شود. نگهداری می‌شود زیرا نگهداری پیش‌فرض است: SDK ردیابی همه‌چیز را صادر می‌کند، بک‌اند آن را برای پنجرهٔ پیکربندی‌شده نگه می‌دارد، و هیچ‌کس سیاست را بازبینی نمی‌کند زیرا سیاستی وجود ندارد. صورت‌حساب بعداً می‌آید، جدا از تصمیمی که آن را ایجاد کرده است.

نمای نزدیک از یک سوئیچ فیبر نوری با کابل‌های متصل، از پایین

آنچه عامل‌ها منتشر می‌کنند و سرویس‌ها نمی‌کنند

تله‌متری درخواست سنتی کوچک و ساختاریافته است: یک مسیر، یک کد وضعیت، یک مدت‌زمان. تله‌متری عامل بزرگ و معنایی است. چهار دسته بر حجم غالب‌اند.

payloadهای prompt و completion. هر فراخوانی مدل می‌تواند زمینهٔ کامل ورودی و خروجی کامل تولیدشده را حمل کند. این‌ها مفیدترین رکوردها برای اشکال‌زدایی و گران‌ترین برای ذخیره‌سازی هستند، زیرا با تعداد توکن مقیاس می‌گیرند نه با تعداد درخواست.

آرگومان‌ها و نتایج ابزار. یک span فراخوانی ابزار ارزان است؛ ویژگی‌های آن نه. آرگومان‌ها می‌توانند اشیاء ساختاریافتهٔ بزرگ باشند، و نتایج می‌توانند کل اسناد باشند. وقتی یک ابزار در یک حلقه فراخوانی می‌شود، همان شکل مکرراً منتشر می‌شود.

مراحل استدلال میانی. ردهای برنامه‌ریزی، محتوای scratchpad و مراحل خودنقدی به ازای هر مرحله منتشر می‌شوند. وقتی یک مسیر اشتباه می‌رود واقعاً ارزشمندند و وقتی درست می‌رود تقریباً بی‌ارزش.

تقویت تلاش مجدد. طوفان تلاش مجدد بدترین حالت برای نسبت هزینه به اطلاعات است: همان عملیات منطقی بارها ردیابی می‌شود، هر تلاش spanها، رویدادها و ویژگی‌های خطا اضافه می‌کند. تعداد span بالا می‌رود در حالی که اطلاعات حاشیه‌ای به صفر نزدیک می‌شود، زیرا واقعیت جالب این است که یک حلقهٔ تلاش مجدد رخ داده، نه محتوای تلاش چهاردهم.

یک لایهٔ فراداده نیز وجود دارد — تعداد توکن، شناسه‌های مدل، تأخیر فراخوانی، پرچم‌های برخورد کش — که به ازای هر رکورد ارزان و در مجموع مفید است. با وفاداری کامل در هر span، خودش به یک قلم ذخیره‌سازی قابل‌توجه تبدیل می‌شود.

سیاست نمونه‌برداری متصل به نقاط تصمیم

انتزاع مفید نه سرویس است و نه نوع span. تصمیم است. هر مرحلهٔ عامل یا وضعیت را می‌خواند، یا وضعیت را تغییر می‌دهد، یا تصمیم می‌گیرد下一步 چه کند. نمونه‌برداری باید از این طبقه‌بندی پیروی کند.

  • ردهای کامل را برای فراخوانی ابزارهایی که وضعیت را تغییر می‌دهند نگه دارید. نوشتن‌ها، حذف‌ها، پرداخت‌ها، پیام‌های خروجی، تغییرات فایل. این‌ها فراخوانی‌هایی هستند که بازبینی حادثه به آرگومان‌های دقیق و نتیجهٔ دقیق نیاز خواهد داشت، و جایی که یک رد حسابرسی ارزشی فراتر از اشکال‌زدایی دارد.
  • خواندن‌ها را تهاجمی نمونه‌برداری کنید. بازیابی، جستجوها و فراخوانی‌های API فقط-خواندنی را می‌توان با نرخ پایین با نمونه‌برداری مبتنی بر سر در ریشهٔ رد، یا نمونه‌برداری مبتنی بر دنباله کلیدخورده بر وضعیت خطا نمونه‌برداری کرد. اطلاعات از دست رفته کم است زیرا خواندن‌ها بازتولیدپذیرند.
  • خلاصه‌های ساختاریافته را در سطح مسیر نگه دارید. برای هر مسیر تکمیل‌شده، یک رکورد فشرده ذخیره کنید: برنامه، فهرست مرتب نام ابزارها، نتیجه، مجموع توکن‌ها، تفکیک تأخیر. این شکل آنچه رخ داده را بدون payloadها حفظ می‌کند.
  • payloadهای خام را فقط در صورت شکست نگه دارید. وقتی یک مسیر به خطا، برخورد guardrail یا شکست قابل مشاهده برای کاربر می‌رسد، رد کامل را به ذخیره‌سازی پایدار ارتقا دهید. این یک قاعدهٔ مبتنی بر دنباله است و تک‌تنها بالاترین اهرم را در سیاست دارد.
  • نگهداری را بر اساس کلاس تصمیم تنظیم کنید، نه بر اساس سرویس. یک فراخوانی تغییردهنده ممکن است پنجرهٔ طولانی را توجیه کند؛ یک span خواندن ممکن است ساعت‌ها را توجیه کند. بیان نگهداری به‌عنوان ویژگی کلاس تصمیم، سیاست را خوانا نگه می‌دارد و آن را هنگام تغییر رفتار عامل قابل بازبینی می‌کند.

یک مکانیسم مشخص: هر span را در زمان انتشار با یک ویژگی کلاس تصمیم حاشیه‌نویسی کنید — read، mutate، decide — که توسط پوشش ابزار تنظیم می‌شود نه توسط فراخوان. سپس جمع‌کننده بر اساس آن ویژگی مسیریابی می‌کند. spanهای تغییردهنده به ذخیره‌سازی با وفاداری کامل و پنجرهٔ طولانی می‌روند؛ spanهای خواندن به یک جریان نمونه‌برداری‌شده با پنجرهٔ کوتاه؛ spanهای تصمیم ویژگی‌ها را نگه می‌دارند اما payloadها را حذف می‌کنند. ارتقای شکست توسط پردازشگر دنبالهٔ جمع‌کننده انجام می‌شود، که یک رد را به‌طور مختصر بافر می‌کند و وقتی span ریشه وضعیت خطا دارد کل آن را ارسال می‌کند. کد عامل تغییر نمی‌کند؛ سیاست در پوشش و پیکربندی جمع‌کننده زندگی می‌کند، و هر دو با عامل نسخه‌بندی می‌شوند.

معامله، صادقانه بیان شده

نمونه‌برداری شواهد موجود برای بازبینی حادثه را کاهش می‌دهد. این هزینه است، و واقعی است. خواندنی که نمونه‌برداری شده قابل بازسازی پس از واقعه نیست، و شکستی که معلوم می‌شود مهم است ممکن است همان شکستی نباشد که قاعدهٔ دنباله برای آن تنظیم شده است.

راه کاهش، نمونه‌برداری بر اساس ریسک تصمیم است نه به‌طور یکنواخت. نمونه‌برداری یکنواخت هر تحقیقی را به یک اندازه تخریب می‌کند؛ نمونه‌برداری وزن‌دار بر اساس ریسک، شواهد باقی‌مانده را در جایی متمرکز می‌کند که تحقیق بیشترین احتمال نیاز را دارد. ردهایی که مهم‌اند با وفاداری کامل زنده می‌مانند، آنهایی که نیستند با خلاصه‌ها نمایش داده می‌شوند، و لایهٔ فراداده تجمیعی به اندازهٔ کافی کامل می‌ماند برای تحلیل ظرفیت و هزینه.

این باید پیش از عرضهٔ عامل تصمیم‌گیری شود. اعمال یک سیاست نمونه‌برداری بر یک عامل در حال اجرا به معنای از دست دادن خط پایه است: هیچ مقایسهٔ تمیزی بین دورهٔ وفاداری کامل قدیم و دورهٔ نمونه‌برداری‌شدهٔ جدید وجود ندارد، و اولین حادثه پس از تغییر در برابر مجموعه شواهدی متفاوت از آخرین حادثه پیش از آن تشخیص داده می‌شود. طراحی سیاست در کنار عامل — همان‌طور که طرح‌واره‌های ابزار و guardrailها طراحی می‌شوند — یک خط پایهٔ پایدار از روز اول و یک وضعیت نگهداری می‌دهد که می‌تواند به‌طور عمدی تنظیم شود نه اینکه در یک صورت‌حساب کشف شود.

هزینهٔ تله‌متری یک ویژگی از طراحی عامل است. با آن به‌عنوان یکی رفتار کنید.

نمای نزدیک از یک برد مدار الکترونیکی که تراشه‌ها و الگوهای رد پیچیده را نشان می‌دهد

اشتراک‌گذاریXLinkedInپیوند یکتا5 دقیقه مطالعه

خواندن مرتبط

پرسش‌هایی که این پاسخ می‌دهد

Why do agent workloads cost more to observe than ordinary services?

Each user request fans out into planning, tool calls, validation and retries, and each of those stages emits its own spans, events and payloads. Volume scales with steps rather than with requests, and prompt and completion payloads scale with token count rather than request count.

What is decision-class sampling?

It is a policy that classifies every span as a read, a mutation or a decision, annotates it at emission time, and routes it accordingly: full fidelity and long retention for mutations, aggressive sampling for reads, attributes without payloads for decisions.

Why must the policy be set before the agent ships?

Retrofitting sampling destroys the baseline. Traces collected before the change are not comparable with those collected after, so the first post-change incident is diagnosed against a different evidence set than earlier ones.

How are raw payloads kept without storing everything?

A tail-based rule buffers each trace briefly and promotes the full payload to durable storage only when the trajectory fails, trips a guardrail or ends in an error. Completed trajectories keep a compact structured summary instead.