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

تنها پس از تأیید ثبت است که فراخوانی ابزار اجرا میشود. بنابراین لاگ یک وابستگی زمان اجراست: اگر نویسندهٔ لاگ در دسترس نباشد، اقدام پیش نمیرود. این همان معاملهٔ صادقانه است. تیمهایی که حسابرسی نوشتن پیشازاجرا را میپذیرند قبول میکنند که قطعی لاگ به قطعی قابلیت تبدیل شود. جایگزین — لاگگیری با بهترین تلاش که هرگز مسدود نمیکند — دقیقاً همان رژیمی است که بازسازیهای بالا را پدید آورد.
لاگ همچنین به نقطهٔ بازیابی تبدیل میشود. در هنگام کرش، kill یا timeout، بازپخش مسیر ثبتشده تعیین میکند که یک اقدام دوباره تلاش شود، برگردانده شود یا قرنطینه شود. چون قصد پیش از اجرا ثبت شده بود، فرایند بازیابی میتواند بین هرگز شروع نشد و شروع شد و نتیجه نامعلوم است تمایز قائل شود، و همین تمایز برای idempotency و منطق جبران اهمیت دارد. بدون آن، تلاشهای دوباره اثرات جانبی را تکرار میکنند و برگرداندنها آنها را از دست میدهند.
در نهایت، نویسنده باید از فرایند ایجنت جدا شود. یک الگوی رایج یک سرویس لاگ است که تحت هویتی متمایز اجرا میشود، ثبتها را از طریق یک کانال احرازهویتشده میپذیرد و تنها اعتبارنامهٔ نوشتن را در اختیار دارد. فرایند ایجنت یک قابلیت فقطافزودنی دارد که به شناسهٔ اجرای خودش محدود است؛ نمیتواند حذف کند، تغییر دهد یا بین اجراها بخواند. آنگاه یک ایجنت بهخطرافتاده میتواند از عمل امتناع کند، اما نمیتواند آنچه را قبلاً اعلام کرده پاک کند.
سابقه چه چیزی باید داشته باشد
یک طرحوارهٔ کمینه برای یک ورودی ثبت:
{
"seq": 41822,
"run_id": "run_7f3a...",
"parent_step": 41819,
"ts_monotonic": 918273645,
"kind": "tool.intent",
"tool": "http.fetch",
"args_hash": "sha256:9c1f...",
"policy_rule": "net.egress.allowlist.v4",
"credential": "svc-fetch-readonly@proj-9",
"context_refs": ["doc_31a", "doc_88b"]
}
چند فیلد وزن نامتناسبی دارند.
هش آرگومان، نه خود آرگومانها. هش کردن اسرار را از لاگ بیرون نگه میدارد و در عین حال ورودی را به ورودی دقیق مقید میکند. جایی که آرگومانها باید برای بازپخش قابل بازیابی باشند، آنها را در یک انبار ر
یره کنید.

گام والد. اجراهای ایجنت درختاند، نه خط. ثبت گام والدی که هر اقدام را درخواست کرده، همان چیزی است که انتساب رفتار یک زیرایجنت به تفویضی که آن را پدید آورده ممکن میکند. بدون والدیت، اقدامات یک ازدحام به جریانی بیتمایز فرو میریزد.
منشأ برای زمینهٔ بازیابیشده. هر سند، قطعه یا نتیجهٔ ابزاری که وارد پنجرهٔ زمینه میشود باید با شناسه و هش محتوا ارجاع داده شود. این همان چیزی است که امکان میدهد یک سند مسموم به هر اجرایی که آن را مصرف کرده ردیابی شود، و به عقب تا مسیر ورود داده که آن را پذیرفته است. بازیابی بدون منشأ، یک حادثهٔ تزریق را به یک تحقیق بیکران تبدیل میکند.
زمانبندی قطعی و شمارههای ترتیبی یکنوا. مهرهای زمانی ساعتدیواری هر کارگر در یک ارکستراتور توزیعشده قابل مرتبسازی نیستند؛ انحراف ساعت و کارگران همزمان رویدادهایی را که بهطور علّی متوالی بودند بازچینی میکنند. یک توالی یکنوای واحد که توسط ارکستراتور تخصیص مییابد، با زمان ساعتدیواری بهعنوان فیلد ثانویه برای خواندن انسانی، ترتیب کاملی میدهد که از بازپخش جان سالم به در میبرد.
پیامدهای عملیاتی
تقویت نوشتن و نگهداری به ردیفهای بودجه تبدیل میشوند. هر فراخوانی ابزار اکنون حداقل یک ثبت پایدار هزینه دارد، اغلب چندین (قصد، تصمیم سیاست، حل اعتبارنامه، نتیجه). در ایجنتهای پرتکرار این کسر معناداری از بودجهٔ ذخیرهسازی و I/O است و در کنار هزینهٔ استنتاج مینشیند، نه درون یک سهمیهٔ رصدپذیری. سیاست نگهداری به یک تصمیم طراحی تبدیل میشود: مسیر کامل چه مدت نگه داشته شود، چه چیزی به هش کاهش یابد، چه چیزی به انبار سرد صادر شود. کاهش هرگز نباید زنجیره را بشکند — یک هش تنها زمانی مفید است که پیشتصویرش تحت سیاستی که آن را قابل اعتماد نگه میدارد قابل بازیابی باشد.
نسخهبندی طرحواره از روز اول. بازبینی حادثه ماهها پس از تغییر کد رخ میدهد. اگر طرحوارهٔ لاگ بدون نسخه باشد، ورودیهای دورهٔ تحت بررسی ممکن است برای ابزارهای فعلی ناخوانا باشند و تحقیق روی مهاجرت قالب متوقف شود. طرحوارهٔ ورودی را صریحاً نسخهبندی کنید، خوانندهها را برای هر نسخهای که تاکنون صادر شده نگه دارید و تغییرات طرحواره را بهعنوان تغییرات شکننده با همان سختگیری یک API در نظر بگیرید.
واکنش به حادثه از باستانشناسی به بازپخش تغییر میکند. وقتی مسیر کامل و مرتب باشد، پرسش چه اتفاقی افتاد با بازپخش اجرای ثبتشده در برابر تصمیمهای ثبتشده پاسخ داده میشود. کار جالب به چرا سیاست آن را مجاز دانست و چه چیزی باید تغییر کند منتقل میشود. این یک بهبود واقعی است و همچنین سطح انتظار را بالا میبرد: سازمانی که میتواند ایجنتهایش را دقیق بازپخش کند دیگر نمیتواند حادثهها را به دید ناقص نسبت دهد.
موضع
ردیابی حسابرسی برای ایجنتها یک مسئلهٔ نوشتن پیشازاجراست. لاگ باید پیش از اجرا ثبت شود، توسط فرایندی نوشته شود که ایجنت نمیتواند بر آن اثر بگذارد، توسط ارکستراتور مرتب شود و برای خوانندههایی که هنوز وجود ندارند نسخهبندی شود. داشبوردها برای عملیات مفید میمانند؛ آنها شواهد نیستند. تیمهایی که این تمایز را درونی میکنند قادر خواهند بود ثابت کنند ایجنتهایشان چه کردند. تیمهایی که این کار را نمیکنند همچنان آن را از هر تلهمتریای که جان سالم به در برده بازسازی خواهند کرد.
