LangGraphను కేవలం ఒక పొడవైన చైన్‌గా పరిగణించవద్దు

LangGraphను కేవలం మరిన్ని స్టెప్స్ ఉన్న LangChain గా చూడటం ఆపండి. ఆ పొరపాటు వల్ల ఏజెంట్లు సరిగ్గా పనిచేయవు.

స్టేట్ (state), బ్రాంచెస్ (branches), టూల్ కాల్స్ (tool calls) మరియు మానవ ఆమోదం (human approval) అవసరమయ్యే వర్క్‌ఫ్లోల కోసం LangGraph రూపొందించబడింది. ఎర్రర్స్ నుండి మళ్ళీ ప్రారంభించకుండానే కోలుకోగలిగే (recover) ఏజెంట్ల కోసం ఇది ఉపయోగపడుతుంది.

మీరు దీనిని ఉపయోగిస్తే, మొదట మూడు విషయాలను నిర్వచించాలి: state, interrupts, మరియు recovery.

మొదటి సరిహద్దు: State Schema

ఒక సింగిల్ ప్రాంప్ట్ కోసం, సరిహద్దు అనేది టెక్స్ట్. LangGraph కోసం, సరిహద్దు అనేది State schema. మీరు వీటిని నిర్ణయించాలి:

  • ఏ ఫీల్డ్స్ నోడ్స్ (nodes) మధ్య మారుతాయి.
  • ఏ ఫీల్డ్స్‌ను ఒక నోడ్ అప్‌డేట్ చేస్తుంది.
  • కన్కరెంట్ బ్రాంచెస్ (concurrent branches) విలువలను ఎలా విలీనం (merge) చేస్తాయి.
  • ఏ విలువలు చెక్‌పాయింట్‌లోకి (checkpoint) వెళ్తాయి.
  • ఏ విలువలు ఎప్పటికీ నిల్వ (persist) ఉండకూడదు.

ఇక్కడ రిడ్యూసర్లు (Reducers) చాలా కీలకం. మెసేజ్‌లను యాపెండ్ (append) చేయడానికి సరైన రూల్‌ను మీరు సెట్ చేయకపోతే, మీ పారలల్ వర్క్ డేటాను కోల్పోతుంది.

చిన్నగా ప్రారంభించండి. ఒక స్కీమా, ఒక నోడ్ మరియు ఒక రిడ్యూసర్‌తో ఒక గ్రాఫ్‌ను నిర్మించండి. అది సరిగ్గా పనిచేయకపోతే, టూల్స్ జోడించడం వల్ల మీ తప్పులు కేవలం దాగిపోతాయి తప్ప పరిష్కారం కాదు.

రన్‌టైమ్ సరిహద్దు (The Runtime Boundary)

మీరు compile()ని పిలవకముందు, మీ గ్రాఫ్ కేవలం ఒక వివరణ మాత్రమే. compile() చేసిన తర్వాత, రన్‌టైమ్ (runtime) బాధ్యత తీసుకుంటుంది.

గ్రాఫ్ ఫెయిల్ అయినప్పుడు, కేవలం నోడ్‌ను మాత్రమే చూడకండి. ఈ నాలుగు విషయాలను తనిఖీ చేయండి:

  • State schema ఆ నోడ్‌ను ఆ కీని (key) రాయడానికి అనుమతిస్తుందా?
  • నోడ్ సరైన State ఫీల్డ్‌ను రిటర్న్ చేస్తోందా?
  • రిడ్యూసర్ డేటాను సరిగ్గా విలీనం (merge) చేస్తోందా?
  • కండిషనల్ ఎడ్జ్ (conditional edge) కి ఎగ్జిట్ పాత్ (exit path) ఉందా?

హ్యూమన్ ఇన్ ది లూప్ (The Human In The Loop)

మానవ ఆమోదాన్ని కేవలం ఒక UI ఫీచర్‌గా చూడకండి. దానిని ఒక గ్రాఫ్ కాంట్రాక్ట్‌గా పరిగణించండి.

ఒక నమ్మదగిన పద్ధతి ఇలా ఉంటుంది:

  • మోడల్ ఒక టూల్ కాల్‌ను ప్రతిపాదిస్తుంది.
  • గ్రాఫ్ ఒక ఇంటరప్ట్‌ను (interrupt) లేవనెత్తుతుంది.
  • ఒక మనిషి ఆ చర్యను ఆమోదిస్తారు లేదా సవరిస్తారు.
  • గ్రాఫ్ సరిగ్గా అదే పాయింట్ నుండి మళ్ళీ ప్రారంభమవుతుంది.

ఇది ఏజెంట్లను కేవలం రియాక్టివ్‌గా కాకుండా, రికవరేబుల్ (recoverable) గా మారుస్తుంది.

మీ స్మోక్ చెక్‌లిస్ట్ (Your Smoke Checklist)

మీరు ప్రొడక్షన్‌లోకి వెళ్లే ముందు, ఈ పరీక్షను నిర్వహించండి:

  • ప్రొడక్షన్ డేటా లేని తాత్కాలిక డైరెక్టరీని ఉపయోగించండి.
  • కనీస Stateను నిర్వచించండి.
  • కేవలం సరైన ఫీల్డ్స్‌ను మాత్రమే రిటర్న్ చేసే ఒక నోడ్‌ను రాయండి.
  • యాపెండ్ చర్యల కోసం రిడ్యూసర్‌ను ఉపయోగించండి.
  • టూల్ చర్యకు ముందు ఒక ఇంటరప్ట్‌ను జోడించండి.
  • ఒక checkpointerను జోడించండి.
  • కావాలని ఒక ఫెయిలర్‌ను సృష్టించి, మళ్ళీ ప్రారంభమయ్యే (resume) విధానాన్ని తనిఖీ చేయండి.

ఈ విధానం విఫలమైతే, మరిన్ని టూల్స్ జోడించకండి. సమస్య మీ రన్‌టైమ్ సరిహద్దులోనే ఉంది.

LangGraph అనేది వన్-ఆఫ్ (one-off) మోడల్ కాల్స్ కోసం కాదు. మీ AI పరిశీలించదగిన (inspectable), తాత్కాలికంగా ఆపగలిగే (pausable) మరియు సమీక్షించదగిన (reviewable) మల్టీ-స్టెప్ పనులను చేయాల్సి వచ్చినప్పుడు మాత్రమే దీనిని ఉపయోగించండి.

Source: https://dev.to/doramagic/do-not-treat-langgraph-as-a-longer-chain-define-state-interrupts-and-recovery-first-4n3n

Optional learning community: https://t.me/GyaanSetuAi