skipLink.label

Eng muhim qoida

Ishlaydi

Nega ikkita maydon

heading.anchorLabel

Bitta ijro ikkita mustaqil narsani o’z ichiga oladi:

Savol Maydon
Agent o’z ishini tugatdimi? status
Tashqi dunyoda effekt bo’ldimi? operations[].status

Ular bog’liq emas. Agent muvaffaqiyatli javob berishi, lekin SMS ketmasligi mumkin — va bu normal holat, xato emas.

{
"status": "completed",
"operations": [
{ "capability_id": "notification.send_sms", "status": "UNKNOWN" }
]
}

Yuqoridagi javobda: agent javob berdi, SMS yetganmi — noma’lum.

Bu qanday yuz beradi

heading.anchorLabel

Konnektor timeout bersa, xato modelga qaytariladi. Model esa javobini baribir yozadi — chunki u foydalanuvchiga nimadir aytishi kerak. Amal Ledger’da UNKNOWN bo’lib qoladi va reconciliation uni keyin aniqlaydi.

Amal holatlari

heading.anchorLabel
Holat Ma’nosi Sizga nima qilish kerak
VERIFIED Manbadan tasdiqlandi. Yagona «bajarildi» ma’nosi Davom eting
ACKNOWLEDGED Konnektor javob berdi — transport, natija emas Kuting
UNKNOWN Natija noma’lum ⛔ Qayta yubormang. Kuting
MANUAL_REVIEW Mas’ul ko’rigida Konsolda hal qilinadi
FAILED Aniq rad javobi — effekt bo’lishi mumkin emas Xavfsiz qayta urinish mumkin

To’g’ri va noto’g’ri kod

heading.anchorLabel

Noto’g’ri — eng ko’p uchraydigan xato:

n = dx.run(...)
if n.status == "completed":
print("SMS yuborildi!") # ⛔ YOLG'ON bo'lishi mumkin

To’g’ri:

n = dx.run(...)
if n.verified:
print("SMS yetkazildi") # ✅ manbadan tasdiqlangan
elif n.unknown:
print("Natija noma'lum — kuting, qayta yubormang")
else:
print("Bajarilmadi")

Nega bunday qilingan

heading.anchorLabel

Ko’p platformalar HTTP 200 ni «bajarildi» deb hisoblaydi. Bu xato:

  • konnektor so’rovni qabul qildi — bu transport;
  • provayder uni qayta ishladi — bu boshqa narsa;
  • effekt haqiqatan bo’ldi — bu uchinchi narsa.

Davirix faqat uchinchisini VERIFIED deb belgilaydi va buni manbadan qayta o’qib isbotlaydi. Read-back bo’lmasa — ACKNOWLEDGED da qoladi va bu halol javob.

Keyingi qadam

heading.anchorLabel