LangGraph ਨੂੰ ਇੱਕ ਲੰਬੀ ਚੇਨ ਵਜੋਂ ਨਾ ਸਮਝੋ

LangGraph ਨੂੰ LangChain ਦਾ ਵਧਿਆ ਹੋਇਆ ਰੂਪ ਸਮਝਣਾ ਬੰਦ ਕਰੋ। ਇਹ ਗਲਤੀ ਖਰਾਬ agents ਦਾ ਕਾਰਨ ਬਣਦੀ ਹੈ।

LangGraph ਉਹਨਾਂ workflows ਲਈ ਹੈ ਜਿਨ੍ਹਾਂ ਨੂੰ state, branches, tool calls, ਅਤੇ ਮਨੁੱਖੀ ਮਨਜ਼ੂਰੀ (human approval) ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਇਹ ਉਹਨਾਂ agents ਲਈ ਹੈ ਜੋ ਬਿਨਾਂ ਰੀਸਟਾਰਟ ਕੀਤੇ ਗਲਤੀਆਂ ਤੋਂ ਸੁਧਾਰ (recover) ਕਰ ਸਕਦੇ ਹਨ।

ਜੇਕਰ ਤੁਸੀਂ ਇਸਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਨੂੰ ਪਹਿਲਾਂ ਤਿੰਨ ਚੀਜ਼ਾਂ ਪਰਿਭਾਸ਼ਿਤ ਕਰਨੀਆਂ ਚਾਹੀਦੀਆਂ ਹਨ: state, interrupts, ਅਤੇ recovery।

ਪਹਿਲੀ ਸੀਮਾ: State Schema

ਇੱਕ ਸਿੰਗਲ prompt ਲਈ, ਸੀਮਾ ਟੈਕਸਟ ਹੁੰਦੀ ਹੈ। LangGraph ਲਈ, ਸੀਮਾ State schema ਹੈ। ਤੁਹਾਨੂੰ ਇਹ ਫੈਸਲਾ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ:

  • ਕਿਹੜੇ fields nodes ਦੇ ਵਿਚਕਾਰ ਮੂਵ ਕਰਦੇ ਹਨ।
  • ਇੱਕ node ਕਿਹੜੇ fields ਨੂੰ ਅਪਡੇਟ ਕਰਦਾ ਹੈ।
  • ਸਮਾਂ-ਸਮਾਨ (concurrent) branches ਵੈਲਯੂਜ਼ ਨੂੰ ਕਿਵੇਂ ਮਰਜ ਕਰਦੀਆਂ ਹਨ।
  • ਕਿਹੜੀਆਂ ਵੈਲਯੂਜ਼ checkpoint ਵਿੱਚ ਜਾਂਦੀਆਂ ਹਨ।
  • ਕਿਹੜੀਆਂ ਵੈਲਯੂਜ਼ ਕਦੇ ਵੀ ਸਟੋਰ (persist) ਨਹੀਂ ਹੋਣੀਆਂ ਚਾਹੀਦੀਆਂ।

ਇੱਥੇ Reducers ਬਹੁਤ ਮਹੱਤਵਪੂਰਨ ਹਨ। ਜੇਕਰ ਤੁਸੀਂ ਮੈਸੇਜਾਂ ਨੂੰ ਜੋੜਨ (append) ਲਈ ਸਹੀ ਨਿਯਮ ਸੈੱਟ ਨਹੀਂ ਕਰਦੇ, ਤਾਂ ਤੁਹਾਡਾ parallel ਕੰਮ ਡਾਟਾ ਗੁਆ ਦੇਵੇਗਾ।

ਛੋਟੇ ਪੱਧਰ ਤੋਂ ਸ਼ੁਰੂ ਕਰੋ। ਇੱਕ schema, ਇੱਕ node, ਅਤੇ ਇੱਕ reducer ਦੇ ਨਾਲ ਇੱਕ graph ਬਣਾਓ। ਜੇਕਰ ਤੁਸੀਂ ਇਹ ਨਹੀਂ ਕਰ ਸਕਦੇ, ਤਾਂ tools ਜੋੜਨਾ ਸਿਰਫ਼ ਤੁਹਾਡੀਆਂ ਗਲਤੀਆਂ ਨੂੰ ਲੁਕਾਏਗਾ।

Runtime ਸੀਮਾ

compile() ਨੂੰ ਕਾਲ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ, ਤੁਹਾਡਾ graph ਸਿਰਫ਼ ਇੱਕ ਵੇਰਵਾ (description) ਹੁੰਦਾ ਹੈ। compile() ਤੋਂ ਬਾਅਦ, runtime ਕੰਮ ਸੰਭਾਲ ਲੈਂਦਾ ਹੈ।

ਜਦੋਂ ਕੋਈ graph ਫੇਲ ਹੋ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਸਿਰਫ਼ node ਨੂੰ ਨਾ ਦੇਖੋ। ਇਹਨਾਂ ਚਾਰ ਚੀਜ਼ਾਂ ਦੀ ਜਾਂਚ ਕਰੋ:

  • ਕੀ State schema node ਨੂੰ ਉਹ key ਲਿਖਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ?
  • ਕੀ node ਇੱਕ ਵੈਧ (valid) State field ਵਾਪਸ ਕਰਦਾ ਹੈ?
  • ਕੀ reducer ਡਾਟਾ ਨੂੰ ਸਹੀ ਤਰ੍ਹਾਂ ਮਰਜ ਕਰਦਾ ਹੈ?
  • ਕੀ conditional edge ਕੋਲ ਬਾਹਰ ਜਾਣ ਦਾ ਰਸਤਾ (exit path) ਹੈ?

Human In The Loop

ਮਨੁੱਖੀ ਮਨਜ਼ੂਰੀ ਨੂੰ UI ਫੀਚਰ ਵਜੋਂ ਨਾ ਸਮਝੋ। ਇਸਨੂੰ ਇੱਕ graph contract ਵਜੋਂ ਸਮਝੋ।

ਇੱਕ ਭਰੋਸੇਯੋਗ ਪੈਟਰਨ ਇਸ ਤਰ੍ਹਾਂ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ:

  • ਮਾਡਲ ਇੱਕ tool call ਦਾ ਪ੍ਰਸਤਾਵ ਦਿੰਦਾ ਹੈ।
  • graph ਇੱਕ interrupt ਰਾਏਜ਼ ਕਰਦਾ ਹੈ।
  • ਇੱਕ ਮਨੁੱਖੀ ਐਕਸ਼ਨ ਨੂੰ ਮਨਜ਼ੂਰੀ ਦਿੰਦਾ ਹੈ ਜਾਂ ਉਸਨੂੰ ਐਡਿਟ ਕਰਦਾ ਹੈ।
  • graph ਉਸੇ ਬਿੰਦੂ ਤੋਂ ਦੁਬਾਰਾ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ।

ਇਹ agents ਨੂੰ ਸਿਰਫ਼ reactive ਬਣਾਉਣ ਦੀ ਬਜਾਏ recoverable ਬਣਾਉਂਦਾ ਹੈ।

ਤੁਹਾਡੀ Smoke Checklist

Production ਵਿੱਚ ਜਾਣ ਤੋਂ ਪਹਿਲਾਂ, ਇਹ ਟੈਸਟ ਚਲਾਓ:

  • ਬਿਨਾਂ ਕਿਸੇ production ਡਾਟਾ ਵਾਲੀ ਇੱਕ ਟੈਂਪਰੇਰੀ ਡਾਇਰੈਕਟਰੀ ਦੀ ਵਰਤੋਂ ਕਰੋ।
  • ਇੱਕ minimal State ਪਰਿਭਾਸ਼ਿਤ ਕਰੋ।
  • ਇੱਕ ਅਜਿਹਾ node ਲਿਖੋ ਜੋ ਸਿਰਫ਼ ਵੈਧ (valid) fields ਵਾਪਸ ਕਰਦਾ ਹੋਵੇ।
  • append ਐਕਸ਼ਨਾਂ ਲਈ reducer ਦੀ ਵਰਤੋਂ ਕਰੋ।
  • tool action ਤੋਂ ਪਹਿਲਾਂ ਇੱਕ interrupt ਜੋੜੋ।
  • ਇੱਕ checkpointer ਜੋੜੋ।
  • ਇੱਕ ਫੇਲ੍ਹਅਰ (failure) ਲਿਆਓ ਅਤੇ resume ਵਿਵਹਾਰ ਦੀ ਜਾਂਚ ਕਰੋ।

ਜੇਕਰ ਇਹ ਰਸਤਾ ਫੇਲ ਹੋ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਹੋਰ tools ਨਾ ਜੋੜੋ। ਸਮੱਸਿਆ ਤੁਹਾਡੀ runtime ਸੀਮਾ ਵਿੱਚ ਹੈ।

LangGraph ਇੱਕ ਵਾਰ ਦੇ (one-off) ਮਾਡਲ ਕਾਲਾਂ ਲਈ ਨਹੀਂ ਹੈ। ਇਸਦੀ ਵਰਤੋਂ ਉਦੋਂ ਕਰੋ ਜਦੋਂ ਤੁਹਾਡੇ AI ਨੂੰ ਅਜਿਹਾ multi-step ਕੰਮ ਕਰਨ ਦੀ ਲੋੜ ਹੋਵੇ ਜਿਸਦੀ ਜਾਂਚ (inspectable), ਰੋਕਣਾ (pausable), ਅਤੇ ਸਮੀਖਿਆ (reviewable) ਕੀਤੀ ਜਾ ਸਕੇ।

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

ਵਿਕਲਪਿਕ ਲਰਨਿੰਗ ਕਮਿਊਨਿਟੀ: https://t.me/GyaanSetuAi