Watch
1
0
Fork
You've already forked Seyyed_arc
0
forked from hesabix/arc
Seyyed_arc/docs/ai-agent/phase-13-production-evidence-gate.md
2026-08-21 00:15:57 +00:00

11 KiB
Raw Permalink Blame History

Phase 13 — Production Evidence Gate for Indexed Retrieval

وضعیت: Canary ۵٪ مسلح است. ترافیک زنده این فرآیند صفر است → HOLD. Promotion به ۱۰٪ ممنوع است. Adaptive K / Hybrid / Progressive خاموش می‌مانند.
تاریخ: ۲۱ اوت ۲۰۲۶
نتایج: evals/phase-13/latest.json

No live evidence, no promotion.

Gold proves the design is plausible; production evidence proves the feature is safe and useful.

Candidate indexing must be independently measurable from ranking, Adaptive K, Hybrid Search, and Schema Loading.

INDEXED_CANDIDATE_RETRIEVAL = False
INDEXED_CANDIDATE_ROLLOUT_PERCENT = 5
INDEXED_CANDIDATE_FALLBACK = True

ADAPTIVE_DISCOVERY_K = False
HYBRID_TOOL_DISCOVERY = False
PROGRESSIVE_SCHEMA_LOADING = False

Final K: Analyzer = 48 / Autonomous = 128
Candidate N = 100

این Phase معماری Retrieval جدید نمی‌سازد. Hybrid، embedding، Adaptive K، Progressive Schema و تغییر N ممنوع‌اند.


1. Production Evidence Model

دو منبع کاملاً جدا:

منبع برچسب چه چیزی را ثابت می‌کند
Offline Gold offline_gold طراحی قابل‌قبول است (Recall روی مجموعهٔ برچسب‌خورده)
Production Live production_live ویژگی روی ترافیک واقعی امن و مفید است
Gold Recall@100 = 100%     ← فقط Offline Gold
Production Recall@100      ← وجود ندارد مگر از ترافیک زنده اندازه‌گیری شود

هرگز Gold را به‌جای Production گزارش نکن. در این فرآیند Live Control = 0 و Live Experiment = 0؛ نرخ‌ها null هستند نه صفرِ ساختگی.

۱۰k bench (~۶ms indexed / ~۱۱۰ms full rank) فقط Offline Performance Evidence است.

Indexing ≠ کاهش توکن. K هنوز ۴۸/۱۲۸ است. Indexing باید latency retrieval، CPU و مقیاس را بهتر کند. توکن بعداً با Adaptive K + Progressive Schema.


2. Control / Experiment

Assignment پایدار است و بین درخواست‌ها عوض نمی‌شود:

SHA256("indexed-retrieval-v1" + business_id + user_id) % 100 → bucket
bucket < INDEXED_CANDIDATE_ROLLOUT_PERCENT → experiment

Salt = indexed-retrieval-v1. مستقل از Adaptive (adaptive-k-v1). تغییر Salt = آزمایش جدید.

Arm رفتار
Control Authorized set → Phase 6 Ranker → K=48/128
Experiment Authorized set → Indexed N=100 → همان Ranker → همان K

شناسه‌ها لاگ نمی‌شوند. Kill switch بدون restart کد: HESABIX_INDEXED_CANDIDATE_KILL=1 → همان tenant/user به Control برمی‌گردد.


3. Exposure

هر درخواست زنده یک رویداد:

indexed_candidate_exposure

فیلدها: arm, channel, mode, effective_candidate_retrieval.

ذخیره نمی‌شود: user_id, business_id, متن کامل query، دادهٔ مالی.

effective_candidate_retrieval:

  • indexed — ایندکس مجموعهٔ قابل‌استفاده داد
  • full_authorized — Control، یا Experiment پس از Fallback

4. Telemetry

شمارنده‌های زنده:

control_requests
experiment_requests
experiment_enabled_requests
experiment_fallback_requests

وضعیت ایندکس (جدا از Adaptive K retrieval_miss):

Event معنی
indexed_retrieval_hit مجموعهٔ کاندید قابل‌استفاده از ایندکس
indexed_retrieval_miss ابزار لازم در candidate set نبود
indexed_retrieval_empty ایندکس نتیجهٔ خالی داد
indexed_retrieval_stale ایندکس کهنه / غیرقابل‌استفاده

Fallback reasons (کاننیکال Phase 13):

empty | low_candidate_quality | stale_index | index_error | index_inconsistency | unknown

fallback_rate و fallback_reason ثبت می‌شوند.

Fallback Success ≠ Index Success

Index Miss / empty → Fallback → Task Success
task_success = TRUE
index_success = FALSE

هر دو همزمان مجازند. تکمیل Task را با موفقیت Retrieval یکی نکن.

Task completion مصنوعی ساخته نمی‌شود. فقط سیگنال‌های موجود:

  • first-pass بدون rediscovery (tool execution مسیر)
  • موفقیت اجرای ابزار
  • در آینده: workflow completion / explicit agent success / user confirmation اگر واقعاً موجود باشند

اگر سیگنالی نباشد، task_success = null.

Latency جدا:

discovery_latency | index_latency | rank_latency | total_ai_request_latency
p50 / p95 / p99 per arm

هدف اصلی end-to-end است، نه فقط lookup ایندکس.

candidate_count (معمولاً نزدیک N=100 یا کمتر) جدا از final_tool_count (K نهایی روی سیم).

کانال‌ها: chat / subagent / crm / ticket / workflow.

عملیات پرخطر per arm: delete / write / export / execute / financial_mutation × success / failure / approval / unexpected_rejection.

Health:

tool_index_health:
  active_tool_count
  indexed_tool_count
  stale_tool_count
  disabled_tool_count
  last_refresh
  healthy

اگر ایندکس ناسالم باشد (مثلاً last_refresh صفر یا inconsistency) → fallback به full authorized rank.

قرارداد رویداد Production (privacy-safe):

timestamp, arm, channel, mode, candidate_count, final_tool_count,
index_hit, index_miss, fallback, fallback_reason,
discovery_miss, schema_miss, tool_execution_success,
task_success, index_success, latency, effective_candidate_retrieval

5. Security Gate (Gate A)

authorization bypass = 0
tenant leakage = 0
permission violation = 0

هر مقدار غیرصفر → IMMEDIATE ROLLBACK (Case D). Fallback هرگز Global Registry نیست.


6. Task Gate (Gate B)

Control و Experiment با دو نسبت (Wilson score interval، ۹۵٪) مقایسه می‌شوند.

آستانهٔ درصدی ساختگی («اگر ۵٪ افت کرد») استفاده نمی‌شود.

پس از n ≥ 500 در هر بازو: اگر CI آزمایش کاملاً زیر CI کنترل باشد و نرخ آزمایش کمتر باشد → ROLLBACK (Case C).

قبل از ۵۰۰ نمونه: HOLD.


7. Retrieval Gate (Gate C)

indexed_retrieval_miss_rate جدا از tool_discovery_miss / Adaptive retrieval_miss گزارش می‌شود.

این Metric موفقیت ایندکس را می‌سنجد، نه موفقیت Ranker یا Schema.


8. Fallback Gate (Gate D)

اگر Fallback زیاد باشد، ایندکس سریع که اکثر درخواست‌ها را به full rank برمی‌گرداند موفقیت نیست.

پس از ۵۰۰ نمونه: اگر حد پایین CI نرخ Fallback آزمایش > 0.5 باشد → HOLD و اصلاح ایندکس (Case B). آستانهٔ درصدی اختیاری دیگر ساخته نمی‌شود.


9. Latency Gate (Gate E)

مقایسه:

Control p95 vs Experiment p95
Control p99 vs Experiment p99

اگر Experiment p95 از Control p99 بدتر باشد (پس از نمونهٔ کافی) → HOLD. ROLLBACK به‌خاطر latency تنها نیست.

هدف: end-to-end. ۱۰k bench آفلاین جایگزین Production latency نمی‌شود.


10. Kill Switch

HESABIX_INDEXED_CANDIDATE_KILL=1

یا HESABIX_INDEXED_CANDIDATE_RETRIEVAL=0. Adaptive K / Hybrid / Schema را عوض نمی‌کند. بدون restart غیرضروری: assignment در هر درخواست خوانده می‌شود.

canary active → kill switch → requests become control

11. Rollout

5% → 10% → 25% → 50% → 100%

نردبان مستقل است. propose_indexed_rollout ثابت‌ها را نمی‌نویسد. Auto-promotion ممنوع است. Promotion فقط با تصمیم صریح اپراتور (INDEXED_CANDIDATE_ROLLOUT_PERCENT).

حداقل قبل از هر پله: ۵۰۰ live request در هر بازو.


12. Statistical Method

  • نسبت‌ها: Wilson score interval با z=1.96 (۹۵٪).
  • مقایسهٔ دو بازو: همپوشانی CI؛ regression معنادار = CI آزمایش کاملاً زیر کنترل و delta < 0.
  • enough_for_significance فقط وقتی هر بازو n ≥ 500.
  • بدون آستانهٔ درصدی اختراعی برای «چند درصد افت مجاز است».

13. Privacy

رویدادها و snapshot نباید شامل این‌ها باشند:

  • user_id / business_id / session_id
  • متن query
  • مبلغ، شناسهٔ فاکتور/شخص، ایمیل، تلفن

Assignment از شناسه استفاده می‌کند ولی آن‌ها را لاگ نمی‌کند.


14. Current Status

این فرآیند / این محیط:

Metric Value
Live control 0
Live experiment 0
Exposure 0
Indexed hit/miss/fallback rates null (no live samples)
Task completion null (no live signal)
Tool execution success null
Security clean (0 bypass in this process)
p50 / p95 / p99 null
Index health manifest vs postings (offline-observable)
Kill switch armed (HESABIX_INDEXED_CANDIDATE_KILL=1 works)
Current rollout 5%
Promotion HOLD
Adaptive K OFF
Hybrid OFF
Progressive Schema OFF

15. Promotion Criteria

قبل از ۵٪ → ۱۰٪:

>= 500 control
>= 500 experiment
Security clean
Task no material regression (Wilson CI)
Fallback acceptable
Index miss acceptable (reported, not substituted)
p95 acceptable
Explicit operator decision

اگر همه برقرار باشند، helper حداکثر REVIEW + allow_operator_promote می‌دهد — هرگز auto-promote نمی‌کند.


16. Rollback Criteria

Case معنی اقدام
A Healthy + ۵۰۰/بازو + Gateها اجازهٔ Promotion به ۱۰٪ با تصمیم صریح
B مشکل ایندکس / Fallback زیاد / latency بد HOLD و اصلاح ایندکس
C افت معنادار Task Success ROLLBACK
D Security / tenant leakage / permission IMMEDIATE ROLLBACK

17. Next Phase

Phase 14 فقط بعد از شواهد زنده معنا دارد: جمع‌آوری ترافیک واقعی روی Canary ۵٪، پر کردن Gateها، سپس تصمیم صریح برای ۱۰٪.

تا آن زمان:

  • Adaptive K را روشن نکن (حتی اگر Indexed به ۱۰۰٪ برسد؛ آزمایش جدا است).
  • Hybrid و Progressive را روشن نکن.
  • N را عوض نکن.
  • Gold را به‌جای Production مصرف نکن.

Recommended Phase 14: Live traffic collection on the 5% canary (observability + Gate fill). Not Adaptive K. Not Hybrid. Not 10% promotion.