LangGraph ને લાંબી ચેઈન તરીકે ન ગણો
LangGraph ને માત્ર વધુ સ્ટેપ્સ ધરાવતી LangChain તરીકે જોવાનું બંધ કરો. આ ભૂલથી એજન્ટ્સ બગડી શકે છે.
LangGraph એવા વર્કફ્લો માટે છે જેને state, branches, tool calls અને માનવીય મંજૂરી (human approval) ની જરૂર હોય છે. તે એવા એજન્ટ્સ માટે છે જેમને ફરીથી શરૂ કર્યા વિના ભૂલોમાંથી સુધરી (recover) શકવા જોઈએ.
જો તમે તેનો ઉપયોગ કરો છો, તો તમારે પહેલા ત્રણ વસ્તુઓ વ્યાખ્યાયિત કરવી આવશ્યક છે: state, interrupts, અને recovery.
પ્રથમ સીમા: State Schema
સિંગલ પ્રોમ્પ્ટ માટે, સીમા ટેક્સ્ટ છે. LangGraph માટે, સીમા State schema છે. તમારે નક્કી કરવું પડશે:
- કયા ફીલ્ડ્સ નોડ્સ વચ્ચે વહેંચાય છે.
- કયા ફીલ્ડ્સ નોડ અપડેટ કરે છે.
- સમાંતર (concurrent) બ્રાન્ચિસ કઈ રીતે વેલ્યુઝને મર્જ કરે છે.
- કઈ વેલ્યુઝ ચેકપોઈન્ટમાં જાય છે.
- કઈ વેલ્યુઝ ક્યારેય કાયમી (persist) ન હોવી જોઈએ.
અહીં Reducers અત્યંત મહત્વપૂર્ણ છે. જો તમે મેસેજ ઉમેરવા (append) માટે યોગ્ય નિયમ સેટ નહીં કરો, તો તમારું પેરેલલ કામ ડેટા ગુમાવી દેશે.
નાની શરૂઆત કરો. એક schema, એક node, અને એક reducer સાથે ગ્રાફ બનાવો. જો તમે તે કામ કરી શકતા નથી, તો ટૂલ્સ ઉમેરવાથી માત્ર તમારી ભૂલો છુપાઈ જશે.
The Runtime Boundary
compile() ને કોલ કરતા પહેલા, તમારો ગ્રાફ માત્ર એક વર્ણન છે. compile() પછી, runtime કામ સંભાળે છે.
જ્યારે ગ્રાફ નિષ્ફળ જાય, ત્યારે માત્ર નોડને જ ન જુઓ. આ ચાર બાબતો તપાસો:
- શું State schema નોડને તે કી (key) લખવાની મંજૂરી આપે છે?
- શું નોડ એક માન્ય (valid) State field રિટર્ન કરે છે?
- શું reducer ડેટાને યોગ્ય રીતે મર્જ કરે છે?
- શું conditional edge પાસે એક્ઝિટ પાથ (exit path) છે?
Human In The Loop
માનવીય મંજૂરીને UI ફીચર તરીકે ન ગણો. તેને ગ્રાફ કોન્ટ્રાક્ટ (graph contract) તરીકે ગણો.
એક વિશ્વસનીય પેટર્ન આ મુજબ દેખાય છે:
- મોડેલ એક tool call સૂચવે છે.
- ગ્રાફ એક interrupt ઊભો કરે છે.
- માનવી એક્શનને મંજૂરી આપે છે અથવા તેમાં સુધારો કરે છે.
- ગ્રાફ બરાબર તે જ બિંદુથી ફરી શરૂ થાય છે.
આ એજન્ટ્સને માત્ર રિએક્ટિવ (reactive) બનાવવાને બદલે રિકવરેબલ (recoverable) બનાવે છે.
તમારી Smoke Checklist
પ્રોડક્શનમાં જતાં પહેલાં, આ ટેસ્ટ ચલાવો:
- કોઈ પ્રોડક્શન ડેટા વગરની ટેમ્પરરી ડિરેક્ટરીનો ઉપયોગ કરો.
- ન્યૂનતમ (minimal) State વ્યાખ્યાયિત કરો.
- એક એવો નોડ લખો જે માત્ર માન્ય ફીલ્ડ્સ જ રિટર્ન કરે.
- append એક્શન્સ માટે reducer નો ઉપયોગ કરો.
- ટૂલ એક્શન પહેલાં એક interrupt ઉમેરો.
- એક checkpointer ઉમેરો.
- જાણીજોઈને નિષ્ફળતા (failure) લાવો અને resume વર્તણૂક તપાસો.
જો આ માર્ગ નિષ્ફળ જાય, તો વધુ ટૂલ્સ ઉમેરશો નહીં. સમસ્યા તમારી runtime boundary માં છે.
LangGraph એ વન-ઓફ (one-off) મોડેલ કોલ્સ માટે નથી. જ્યારે તમારા AI ને એવું મલ્ટી-સ્ટેપ કામ કરવાની જરૂર હોય જે ઇન્સ્પેક્ટ કરી શકાય (inspectable), પોઝ (pausable) કરી શકાય અને રિવ્યુ કરી શકાય (reviewable), ત્યારે તેનો ઉપયોગ કરો.
Optional learning community: https://t.me/GyaanSetuAi
