کیفیت و benchmark

AiraCode چطور ادعاهای کیفیت رو با fixture‌های task قابل replay ثابت می‌کنه.

benchmark‌های AiraCode روی مخزن‌های موقتِ کوچیک اجرا می‌شن، نه prompt خالی. هر fixture یک مخزن می‌سازه، CLI رو اجرا می‌کنه، رفتار رو با بررسی‌های deterministic راستی‌آزمایی می‌کنه، و فایل‌های تغییرکرده، اندازهٔ diff، مصرف توکن، هزینه و زمان اجرا رو audit می‌کنه.

Fixture‌ها

  • invoice: منطق مالی و تست.
  • page: state رابط کاربری و مدیریت ورودی.
  • dashboard: بارگذاری داده و aggregation.
  • cache: انقضا و invalidation کش.
  • api: مسیر backend و رفتار contract.
  • cli: parsing فلگ و argument.
  • subagent: delegation اجباری با audit روی event‌های parent/child.

فرمان‌ها

گیت آفلاین

پریست آفلاین fixture‌ها، audit محدوده و بودجه‌ها رو با یک مسیر oracle چک می‌کنه و نباید اعتبار مدل خرج کنه.

pnpm --filter @airachat/airacode bench:agents:offline

گیت زندهٔ AiraCode

AIRA_BENCH_BIN=aira \
AIRA_BENCH_MODEL=aira-code \
pnpm --filter @airachat/airacode bench:agents:aira

مسیر پیش‌فرض کاربر

این گیت مسیر معمول aira -p رو بدون اجبارِ یک toolset خاص چک می‌کنه.

pnpm --filter @airachat/airacode bench:agents:aira-default

اجراهای مقایسه

پریست‌های مقایسه برای هر agent از همون fixture‌ها و verifier‌ها استفاده می‌کنن. رقیب‌های در دسترس‌نبودن جدا از failure‌های واقعی طبقه‌بندی می‌شن.

AIRA_BENCH_BIN=aira \
AIRA_BENCH_MODEL=aira-code \
pnpm --filter @airachat/airacode bench:agents:compare

بودجه‌ها

harness می‌تونه حداکثر توکن هر task، کل توکن، هزینه، فایل‌های تغییرکرده، خطوط diff و حداقل score رو الزامی کنه.

node apps/airacode/scripts/agent-bench.mjs \
  --agents aira-default \
  --budget-agents aira-default \
  --tasks invoice,cache,cli,api,page,dashboard \
  --max-turns 12 \
  --max-tokens-per-task 30000 \
  --max-total-tokens 100000 \
  --max-cost-usd 1 \
  --max-changed-files 3 \
  --max-diff-lines 300 \
  --min-score 95

Replay نتایج موجود

نتایج JSON ذخیره‌شده رو می‌شه با بودجه‌های سخت‌تر و بدون فراخوانی دوبارهٔ مدل، replay کرد.

node apps/airacode/scripts/agent-bench.mjs \
  --from-results /tmp/airacode-agent-bench-current.json \
  --budget-agents aira \
  --max-tokens-per-task 30000 \
  --max-total-tokens 100000 \
  --max-changed-files 3 \
  --max-diff-lines 300 \
  --min-score 95

بسته‌های شواهد

وقتی یک مسیر خروجی داده بشه، harness شواهدی مثل patch diff، لیست فایل‌های تغییرکرده، خروجی verifier، خروجی نهایی agent و summary JSON رو هم می‌نویسه. وقتی CI به یک مکان artifact ثابت نیاز داره از --evidence-dir <path>استفاده کن.

گیت regression نسبت به baseline

نتایج فعلی رو با یک فایل نتیجهٔ کاملِ قبلی یا JSON‌ leaderboard مقایسه کن تا از regression‌های پنهان جلوگیری بشه.

node apps/airacode/scripts/agent-bench.mjs \
  --from-results /tmp/airacode-agent-bench-current.json \
  --baseline-results /tmp/airacode-agent-bench-baseline-leaderboard.json \
  --baseline-agents aira \
  --max-token-regression-ratio 1.10 \
  --max-speed-regression-ratio 1.25 \
  --min-score-delta -5 \
  --min-pass-rate-delta 0