𝗠𝗮𝗱𝗶𝗿𝗶𝘀𝗵𝗮 𝘆𝗮 𝗠𝘂𝗸𝘁𝗮𝘁𝗵𝗮 𝗬𝗮𝗻𝗮𝘇𝗶𝗱𝗶 𝗞𝘂𝘁𝗮𝗻𝘂𝗸𝗮

Watu hutumia neno "agent" kwa kila kitu.

Kazi (function) inayoiita zana (tool) ni agent. Chatbot yenye kumbukumbu ni agent. Script yenye mzunguko (loop) ni agent.

Kosa hili husababisha uhandisi mbaya. Timu hufanya kazi nyingi zisizohitajika (over-engineer) kwenye kazi rahisi na kufanya kazi ndogo mno (under-engineer) kwenye kazi ngumu. Naona timu zikitumia wiki kadhaa kwenye uratibu wa agent (agent orchestration) kwa mifumo ya kazi (workflows) inayohitaji prompt moja tu nzuri.

Hii hapa ni tafsiri yangu ya agent halisi.

Agent ina lengo. Haifuati tu maelekezo. Inaamua nini cha kufanya baadaye. Inashughulikia makosa. Inajua wakati wa kuacha.

Tumia vigezo hivi:

  • Ikiwa binadamu lazima aongoze kila hatua, hiyo ni interface ya mazungumzo (chat interface).
  • Ikiwa mfumo unajirekebisha baada ya wito wa zana (tool call) kushindwa, unakaribia kuwa agent.
  • Ikiwa mfumo unagawanya lengo katika kazi ndogo na kuzigawa, hiyo ni agent halisi.

Agent nyingi zenye mafanikio ni mahususi (narrow). Zinafanya kazi moja vizuri. Zinashughulikia upatanishi wa huduma kwa wateja (customer support triage) au uchimbaji wa nyaraka (document extraction). Si injini za uwezo wa kufikiri wa jumla (general reasoning engines).

Timu zenye mafanikio huzingatia mambo haya matatu:

  • Usanifu wa zana (Tool design): Interface ni safi kiasi gani?
  • Ushughulikiaji wa makosa (Failure handling): Nini kinatokea wakati zana inarudisha kitu chochote?
  • Uwezo wa kufuatilia (Observability): Je, unaweza kufuatilia kwa nini agent alifanya uamuzi fulani?

Timu zisizofanikiwa hubadilisha tu modeli moja na nyingine mpya na kutarajia matokeo bora. Wanapuuza usanifu wa mfumo.

Frameworks kama LangChain au CrewAI hubadilika kila mwezi. Framework ina umuhimu mdogo kuliko mfumo (pattern).

Tumia mifumo (patterns) hii:

  • Panga kisha utekeleze: Tenganisha hatua ya kufikiri na hatua ya utekelezaji.
  • Tenganisha upatikanaji (retrieval) na uwezo wa kufikiri: Kupata muktadha (context) ni kazi tofauti na kuutumia.
  • Makabidhiano ya wazi (Explicit handoffs): Tumia logi zilizopangwa (structured logs) wakati agent mmoja anapomkabidhi mwingine kazi.

Framework ni kama mbao za ujenzi tu. Usanifu (architecture) ndio jengo lenyewe.

RAG ni kiwango cha kawaida, lakini mgawanyo (chunking) mara nyingi hukosewa. Ukigawanya nyaraka vibaya, modeli inapoteza muktadha. Hii husababisha upotoshaji (hallucinations).

Ikiwa matokeo yako ya RAG hayafai, kagua mgawanyo (chunking) na metadata yako. Mara chache modeli ndiyo tatizo.

Modeli zitakuwa bora zaidi. Madirisha ya muktadha (context windows) yataongezeka. Gharama za token zitapungua.

Hakuna hata moja kati ya hayo linalotatua changamoto halisi ya uhandisi. Lazima ujenge mifumo inayofanya kazi kwa usahihi wakati huangalii.

Zingatia utawala (governance), uwezo wa kufuatilia (observability), na matumizi ya zana yanayoaminika. Wahandisi bora hawatawa kuwa watafiti wa modeli. Watakuwa wasanifu wa mifumo (systems designers) wanaojenga AI inayofanya kazi kwa uaminifu.

Madirisha ya muktadha yanazidi kuwa makubwa, hapa kuna sababu inayobadilisha kila kitu

Kwa muda mrefu, uwezo wa mifumo ya AI (LLMs) "kukumbuka" habari iliyowekwa kwenye mazungumzo imekuwa na mipaka ya chini. Lakini sasa, mambo yanabadilika haraka sana. Tunashuhudia mapinduzi ambapo madirisha ya muktadha (context windows) yanapanuka kutoka tokeni chache elfu hadi mamilioni.

Dirisha la muktadha ni nini?

Dirisha la muktadha ni kiasi cha habari ambacho modeli inaweza "kuishikilia" akilini wakati inafanya kazi. Unaweza kuifikiria kama "kumbukumbu ya muda mfupi" (working memory) ya AI. Ikiwa unampa AI kitabu kizima, dirisha la muktadha ndilo linaloamua ikiwa inaweza kusoma kitabu chote kwa mkupuo mmoja au ikiwa itahitaji kusoma sehemu moja baada ya nyingine.

Hapo awali, madirisha haya yalikuwa madogo. Ikiwa uliweka habari nyingi zaidi ya uwezo wa dirisha, AI ingaanza "kusahau" sehemu za mwanzo za mazungumzo au hati uliyoweka.

RAG dhidi ya Muktadha Mrefu (Long Context)

Kwa muda mrefu, suluhisho la kutoa habari nyingi kwa AI lilikuwa ni RAG (Retrieval-Augmented Generation).

RAG hufanya kazi kwa kutafuta vipande vidogo vya habari muhimu kutoka kwenye database na kuvipeleka kwa AI. Ni kama kuwa na msaidizi anayekupa kurasa mahususi za kitabu kila unapouliza swali. Hii ni njia ya bei nafuu na yenye ufanisi, lakini ina mapungufu: msaidizi wako anaweza kukosa uhusiano wa ndani kati ya kurasa tofauti.

Hapa ndipo muktadha mrefu (long context) unapoingia. Badala ya kutafuta vipande vidogo, unampa AI habari zote kwa mkupuo mmoja. Badala ya msaidizi anayekupa kurasa chache, unampa AI kitabu chote na kusema, "Soma hiki chote kisha unijibu."

Kwa nini inabadilisha kila kitu?

Upanuzi wa madirisha ya muktadha unabadilisha jinsi tunavyoweza kutumia AI:

  • Codebases nzima: Badala ya kunakili na kubandika vipande vidogo vya kodi, unaweza kuweka codebase nzima ya programu yako. AI inaweza kuelewa jinsi sehemu mbalimbali za kodi zinavyofanya kazi pamoja.
  • Uchambuzi wa nyaraka ndefu: Unaweza kupakia ripoti za miaka mingi, vitabu, au mikataba mirefu na kuuliza maswali tata yanayohitaji uelewa wa jumla.
  • Video na Sauti: Kwa madirisha makubwa zaidi, AI inaweza "kuona" na "kusikia" video nzima, ikielewa matukio yanayotokea kuanzia mwanzo hadi mwisho.

Changamoto: "Sindano kwenye Nyasi" (Needle in a Haystack)

Si kila dirisha kubwa ni bora. Kuna changamoto inayoitwa "Needle in a Haystack". Hii ni kipimo cha uwezo wa modeli kupata habari ndogo na mahususi (sindano) iliyojificha ndani ya kiasi kikubwa cha habari (nyasi).

Baadhi ya modeli zinaweza kuwa na dirisha kubwa, lakini zikashindwa kupata habari hiyo "sindano" ikiwa imewekwa katikati ya nyasi nyingi. Hivyo, ukubwa pekee hautoshi; uwezo wa kufikiri (reasoning) ndani ya muktadha huo ni muhimu zaidi.

Hitimisho

Tunapoele