agentcov؛ ابزاری که میبینه ایجنتهای AI کدوم خط کد رو واقعاً خوندن
خلاصهٔ کاملتر
تیم امنیتی Trail of Bits ابزار متنباز agentcov رو منتشر کرده که بهجای اندازهگیری کاوریج تستها، کاوریج «خوندن» کد توسط ایجنتهای کدنویسی هوش مصنوعی رو اندازه میگیره. این ابزار با قلابگذاری روی ابزارهایی مثل Bash، apply_patch و ابزارهای MCP، ردیابی میکنه هر ایجنت کدوم فایل و کدوم خط رو موقع کار دیده، و این آمار رو بهصورت شمارش دفعات خوندن هر خط ذخیره میکنه.
agentcov از سه منبع داده پشتیبانی میکنه: هوکهای مستقیم روی Codex، بازسازی (backfill) ترنسکریپتهای Codex، Claude Code و Pi از روی شناسه سشن یا فایل JSONL، و همچنین دستورهای معمول شل مثل sed، cat، head، tail و awk. خروجی rg و grep هم بهصورت جدا بهعنوان «جستوجوشده» ثبت میشه، نه «خوندهشده». فایلهای ردیابیشده تو گیت که هیچوقت خونده نشدن هم با کاوریج صفر تو گزارش نشون داده میشن.
خروجی نهایی شامل یه فایل JSON بومی با اطلاعات کامل هر خط (ایجنت، شناسه سشن، ابزار، دستور و زمان)، یه فایل agentcov.info سازگار با LCOV، فایلهای متنی gcov و یه گزارش HTML خودبسنده به شکل هیتمپه. تنظیمات پروژه هم از طریق فایل .agentcov.toml قابل تغییره، مثلاً میشه مسیرهایی مثل node_modules یا dist رو از ردیابی حذف کرد.
از نظر حریم خصوصی، agentcov بهطور پیشفرض دستورها، مسیرها، بازه خطها، زمانبندی و اطلاعات تسک رو ذخیره میکنه، اما خروجی خام ابزارها یا تکهکد رو تو لاگ رویدادها نگه نمیداره؛ فقط گزارش HTML چون خودش یه ویووِر سورسکدـه، خطهای کد رو هم توش کنار اطلاعات جای میده. طبق نقشه راه پروژه، پشتیبانی از ایجنتهای بیشتر، فیلتر تسک و سابایجنت تو گزارش HTML، و ذخیرهسازی تاریخچه کاوریج در سطح کاربر هنوز تو برنامهست.
نکات کلیدی:
- agentcov کاوریج «خوندهشدن» کد توسط ایجنتهای AI (نه کاوریج تست) رو اندازه میگیره و اونرو به فرمتهای LCOV و gcov نگاشت میکنه.
- از Codex، Claude Code و Pi پشتیبانی میکنه و میتونه از روی ترنسکریپت سشنهای قبلی هم داده رو بازسازی کنه.
- دستورهای شل مثل sed، cat، head، tail و awk رو تشخیص میده و خروجی grep/rg رو جدا بهعنوان جستوجو ثبت میکنه، نه خوندن مستقیم.
- خروجیها شامل JSON بومی، فایل LCOV، gcov و یه گزارش HTML هیتمپ هستن که با .agentcov.toml قابل تنظیمه.
- طبق نقشه راه، پشتیبانی از ایجنتهای بیشتر و ذخیرهسازی تاریخچه در سطح کاربر هنوز پیادهسازی نشده.




