LangGraph-ஐ ஒரு நீண்ட சங்கிலியாகக் கருத வேண்டாம்

LangGraph-ஐ அதிக படிகளைக் கொண்ட LangChain என்று பார்ப்பதை நிறுத்துங்கள். அந்தத் தவறு செயலிழந்த ஏஜெண்டுகளுக்கு (agents) வழிவகுக்கும்.

LangGraph என்பது state, கிளைகள் (branches), கருவி அழைப்புகள் (tool calls) மற்றும் மனித ஒப்புதல் (human approval) தேவைப்படும் பணிப்பாய்வுகளுக்காக (workflows) உருவாக்கப்பட்டது. இது பிழைகளிலிருந்து மீண்டும் தொடங்காமல் மீண்டு வர வேண்டிய ஏஜெண்டுகளுக்கானது.

நீங்கள் இதைப் பயன்படுத்தினால், முதலில் மூன்று விஷயங்களை வரையறுக்க வேண்டும்: state, interrupts மற்றும் recovery.

முதல் எல்லை: State Schema

ஒரு ஒற்றை ப்ராம்ப்ட்டிற்கு (prompt), எல்லை என்பது உரை (text). LangGraph-க்கு, எல்லை என்பது State schema ஆகும். நீங்கள் தீர்மானிக்க வேண்டும்:

  • எந்தப் புலங்கள் (fields) நோடுகளுக்கு (nodes) இடையே நகர்கின்றன.
  • ஒரு நோடு எந்தப் புலங்களைப் புதுப்பிக்கிறது.
  • ஒரே நேரத்தில் இயங்கும் கிளைகள் (concurrent branches) மதிப்புகளை எவ்வாறு இணைக்கின்றன.
  • எந்த மதிப்புகள் ஒரு செக்-பாயிண்டிற்குள் (checkpoint) நுழைகின்றன.
  • எந்த மதிப்புகள் ஒருபோதும் நிலைத்திருக்க (persist) கூடாது.

இங்கு Reducers மிக முக்கியமானவை. செய்திகளைச் சேர்க்க (append) சரியான விதியை நீங்கள் அமைக்கவில்லை என்றால், உங்கள் இணையான வேலைகளில் (parallel work) தரவுகள் விடுபடும்.

சிறிய அளவில் தொடங்குங்கள். ஒரு schema, ஒரு node மற்றும் ஒரு reducer கொண்டு ஒரு வரைபடத்தை (graph) உருவாக்குங்கள். அதைச் சரியாகச் செய்ய முடியாவிட்டால், கருவிகளை (tools) சேர்ப்பது உங்கள் பிழைகளை மறைக்க மட்டுமே உதவும்.

Runtime எல்லை

நீங்கள் compile()-ஐ அழைப்பதற்கு முன், உங்கள் வரைபடம் வெறும் விளக்கமாக மட்டுமே இருக்கும். compile()-க்கு பிறகு, runtime செயல்பாட்டைத் தொடங்கும்.

ஒரு வரைபடம் தோல்வியடையும் போது, நோடை மட்டும் பார்க்காதீர்கள். இந்த நான்கு விஷயங்களைச் சரிபார்க்கவும்:

  • State schema அந்த நோடு அந்தத் திறவுகோலை (key) எழுத அனுமதிக்கிறதா?
  • நோடு ஒரு சரியான State புலத்தைத் திருப்புகிறதா?
  • Reducer தரவைச் சரியாக இணைக்கிறதா?
  • நிபந்தனை சார்ந்த விளிம்பிற்கு (conditional edge) வெளியேறும் வழி உள்ளதா?

மனிதத் தலையீடு (Human In The Loop)

மனித ஒப்புதலை ஒரு UI அம்சமாக மட்டும் கருதாதீர்கள். அதை ஒரு வரைபட ஒப்பந்தமாக (graph contract) கருதுங்கள்.

ஒரு நம்பகமான முறை இவ்வாறு இருக்கும்:

  • மாடல் ஒரு கருவி அழைப்பை முன்மொழிகிறது.
  • வரைபடம் ஒரு இடையூறை (interrupt) ஏற்படுத்துகிறது.
  • ஒரு மனிதன் அந்தச் செயலை அங்கீகரிக்கிறார் அல்லது திருத்துகிறார்.
  • வரைபடம் அந்தத் துல்லியமான புள்ளியிலிருந்து மீண்டும் தொடர்கிறது.

இது ஏஜெண்டுகளை வெறும் எதிர்வினை ஆற்றும் (reactive) கருவிகளாக இல்லாமல், மீண்டு வரக்கூடிய (recoverable) கருவிகளாக மாற்றுகிறது.

உங்கள் சோதனைப் பட்டியல் (Smoke Checklist)

நீங்கள் தயாரிப்பு நிலைக்கு (production) செல்லும் முன், இந்தச் சோதனையைச் செய்யுங்கள்:

  • தயாரிப்புத் தரவுகள் இல்லாத தற்காலிகக் கோப்பகத்தைப் (temporary directory) பயன்படுத்துங்கள்.
  • ஒரு குறைந்தபட்ச State-ஐ வரையறுக்கவும்.
  • சரியான புலங்களை மட்டுமே திருப்பித் தரும் ஒரு நோடை எழுதுங்கள்.
  • சேர்க்கும் செயல்களுக்கு (append actions) ஒரு reducer-ஐப் பயன்படுத்துங்கள்.
  • ஒரு கருவிச் செயலுக்கு முன் ஒரு interrupt-ஐச் சேர்க்கவும்.
  • ஒரு checkpointer-ஐச் சேர்க்கவும்.
  • ஒரு தோல்வியைத் தூண்டி, மீண்டும் தொடங்கும் (resume) செயல்பாட்டைச் சரிபார்க்கவும்.

இந்த வழி தோல்வியடைந்தால், கூடுதல் கருவிகளைச் சேர்க்காதீர்கள். பிரச்சனை உங்கள் runtime எல்லையில் உள்ளது.

LangGraph என்பது ஒருமுறை மட்டும் செய்யப்படும் மாடல் அழைப்புகளுக்கானது அல்ல. உங்கள் 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