Kujenga Mtiririko Salama wa Utoaji kwa Ajenti

Maonyesho mengi ya ajenti hupuuza swali muhimu. Unamruhusu vipi mfumo huru kutuma vitu kwa niaba yako bila kutuma mara mbili au kutuma kazi ambayo haijaidhinishwa?

Kutuma mara mbili si kosa adimu. Ni tabia ya kawaida ya foleni (queue) rahisi wakati mfanyakazi (worker) anapofeli katikati ya kazi. Mfanyakazi anatuma ujumbe kisha mfumo unaharibika kabla haujarekodi mafanikio. Mfumo unadhani kazi imefeli na kumwambia mfanyakazi mpya ujaribu tena. Mteja anapata barua pepe mbili na wewe unapata ombi la msaada (support ticket).

Huwezi kuzuia kila hitilafu. Lazima uunde mfumo unaozingatia hitilafu inayotokea katika pengo kati ya kitendo na rekodi.

Tumia mtiririko huu wa hatua sita kwa matokeo yoyote ya ajenti yenye madhara ya kweli:

• Produce: Ajenti anatengeneza bidhaa kamili (artifact). Bado hajatuma chochote. • Persist: Andika nia na bidhaa kwenye hifadhi ya kudumu kwanza. • Score: Ambatanisha alama ya uaminifu (confidence score) kwenye matokeo. • Review: Elekeza vitu vyenye uaminifu mdogo kwa binadamu. • Approve: Tumia lango la fail-closed. Mfumo unazuia matumizi yote ya kutuma isipokuwa binadamu atakapotoa idhini ya wazi. • Send and Attest: Tuma bidhaa chini ya leseni (lease), kisha andika risiti ya ushahidi.

Kila hatua lazima iwe mabadiliko ya kudumu na ya pekee. Hali (state) inapaswa kuwa kwenye hifadhidata yako, si kwenye kumbukumbu (memory) ya mfanyakazi.

Ili kuzuia marudio, tumia ukodishaji wa kiwango cha mstari (row-level leasing). Katika Postgres, tumia SELECT ... FOR UPDATE SKIP LOCKED. Hii inahakikisha kuwa mfanyakazi mmoja tu anamiliki kazi kwa wakati mmoja.

Sheria muhimu zaidi ni jinsi unavyoshughulikia leseni zilizopita muda wake. Ikiwa mfanyakazi atafeli wakati akituma ujumbe wa nje, usijaribu tena kiotomatiki. Badala yake, acha kazi hiyo iachwe kwa ajili ya ukaguzi wa binadamu. Kazi iliyokwama inayoweza kuonekana ni bora kuliko kutuma mara mbili bila kujua.

Lazima pia ufuate kanuni za fail-closed:

  • Kutuma kuzimwa kwa asili. Bendera (flag) moja lazima iweze kuwezesha trafiki zote zinazotoka nje.
  • Utambulisho unakaguliwa. Mfumo lazima uthibitishe anwani ya mtumaji na usalama wa usafirishaji wakati wa kutuma.
  • Kila kitu kinaacha risiti. Kutuma bila rekodi ni kufeli.

Usijenge mfumo huu kwa kazi zisizo na hatari kubwa kama vile kumbukumbu za ndani (internal logs). Utumie wakati makosa yanapogharimu pesa, yanapozua suala la kisheria, au yanapohitaji ombi la msaada.

Chanzo: https://dev.to/danmercede/building-a-governed-double-send-safe-delivery-pipeline-for-agent-outputs-80e

Jumuiya ya kujifunzia ya hiari: https://t.me/GyaanSetuAi