Google ਦਾ Agent Development Kit (ADK) ਕੰਮਾਂ (tasks) ਨੂੰ ਪ੍ਰਬੰਧਿਤ ਕਰਨ ਲਈ ਦੋ ਮੁੱਖ ਤਰੀਕੇ ਪੇਸ਼ ਕਰਦਾ ਹੈ।
Dynamic Multi-Agent Routing
Routing ਮਾਡਲ ਵਿੱਚ, ਇੱਕ ਕੇਂਦਰੀ ਕੋਆਰਡੀਨੇਟਰ (coordinator) ਉਪਭੋਗਤਾ ਦੀ ਬੇਨਤੀ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ ਅਤੇ ਇਸਨੂੰ specialist agents ਨੂੰ ਭੇਜ ਦਿੰਦਾ ਹੈ। ਕੋਆਰਡੀਨੇਟਰ ਫੈਸਲਾ ਕਰਦਾ ਹੈ ਕਿ ਕਿਹੜਾ ਸਪੈਸ਼ਲਿਸਟ ਕੰਮ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ, ਸਪੈਸ਼ਲਿਸਟ ਆਪਣਾ ਹਿੱਸਾ ਪੂਰਾ ਕਰਦਾ ਹੈ, ਅਤੇ ਕੰਟਰੋਲ ਵਾਪਸ ਮੇਨ (parent) ਕੋਲ ਆ ਜਾਂਦਾ ਹੈ।
- ਇਹ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ – ਕੋਆਰਡੀਨੇਟਰ ਇੱਕ ਸਪੈਸ਼ਲਿਸਟ ਦੀ ਚੋਣ ਕਰਦਾ ਹੈ, ਕੰਮ ਨੂੰ ਅੱਗੇ ਭੇਜਦਾ ਹੈ, ਅਤੇ ਫਿਰ ਅੱਗੇ ਵਧਣ ਤੋਂ ਪਹਿਲਾਂ ਜਵਾਬ ਦੀ ਉਡੀਕ ਕਰਦਾ ਹੈ।
- ਫਾਇਦੇ (Pros) – ਲਚਕਤਾ (Flexibility) ਵਧੀਆ ਰਹਿੰਦੀ ਹੈ। ਕਿਉਂਕਿ LLM runtime 'ਤੇ ਰਸਤਾ ਚੁਣਦਾ ਹੈ, ਇਸ ਲਈ ਸਿਸਟਮ ਫਲੋਅ ਨੂੰ ਦੁਬਾਰਾ ਲਿਖੇ ਬਿਨਾਂ ਨਵੇਂ ਜਾਂ ਅਣਪਛਾਤੇ ਇਨਪੁਟਸ ਦੇ ਅਨੁਕੂਲ ਹੋ ਜਾਂਦਾ ਹੈ।
- ਨੁਕਸਾਨ (Cons) – ਹਰ ਇੱਕ ਸਟੈਪ (hop) ਨਾਲ ਨੈੱਟਵਰਕ ਅਤੇ ਪ੍ਰੋਸੈਸਿੰਗ ਦਾ ਬੋਝ ਵਧਦਾ ਹੈ, ਜਿਸ ਕਾਰਨ ਸਿੱਧੀ ਪਾਈਪਲਾਈਨ ਦੇ ਮੁਕਾਬਲੇ latency ਵਧ ਜਾਂਦੀ ਹੈ।
Sequential Workflow Loops
Loop ਮਾਡਲ ਕੋਆਰਡੀਨੇਟਰ ਦੀ ਜਗ੍ਹਾ ਇੱਕ ਸਿੰਗਲ LoopAgent ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ ਜੋ ਪਹਿਲਾਂ ਤੋਂ ਨਿਰਧਾਰਤ ਕਦਮਾਂ ਦੇ ਕ੍ਰਮ ਵਿੱਚ ਚੱਲਦਾ ਹੈ ਅਤੇ ਇੱਕ mutable ਸੈਸ਼ਨ ਸਟੇਟ ਸਾਂਝੀ ਕਰਦਾ ਹੈ।
- ਇਹ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ – ਏਜੰਟ ਇੱਕ ਸਾਂਝੀ key ਨੂੰ ਪੜ੍ਹਦੇ ਹਨ, ਇਸਨੂੰ ਅਪਡੇਟ ਕਰਦੇ ਹਨ, ਅਤੇ ਕ੍ਰਮ ਖਤਮ ਹੋਣ ਤੱਕ ਕੰਟਰੋਲ ਅਗਲੇ ਕਦਮ ਨੂੰ ਸੌਂਪ ਦਿੰਦੇ ਹਨ।
- ਫਾਇਦੇ (Pros) – ਭਵਿੱਖਬਾਣੀਯੋਗਤਾ (Predictability)। ਕ੍ਰਮ ਕਦੇ ਨਹੀਂ ਬਦਲਦਾ, ਜਿਸ ਨਾਲ debugging ਅਤੇ performance tuning ਸੌਖੀ ਹੋ ਜਾਂਦੀ ਹੈ।
- ਨੁਕਸਾਨ (Cons) – ਜੜ੍ਹਤਾ (Rigidity)। ਨਿਰਧਾਰਤ ਕ੍ਰਮ ਤੋਂ ਹਟਣ ਦੀ ਕਿਸੇ ਵੀ ਲੋੜ ਲਈ ਲੂਪ ਨੂੰ ਦੁਬਾਰਾ ਡਿਜ਼ਾਈਨ ਕਰਨਾ ਪੈਂਦਾ ਹੈ।
Hands-On Test: A Math Expression Parser
ਪੈਟਰਨਾਂ ਨੂੰ ਅਸਲ ਵਿੱਚ ਦੇਖਣ ਲਈ, ਅਸੀਂ ਇੱਕ ਸਧਾਰਨ ਪਾਰਸਰ ਬਣਾਇਆ ਹੈ ਜੋ ਚਾਰ specialist agents ਦੀ ਵਰਤੋਂ ਕਰਕੇ arithmetic expressions ਦਾ ਮੁਲਾਂਕਣ ਕਰਦਾ ਹੈ: adder, subtracter, multiplier, ਅਤੇ divider।
Lessons from the Workflow Loop
- Infinite loops ਤੋਂ ਬਚੋ – ਅਸੀਂ ਹਰੇਕ ਏਜੰਟ ਨੂੰ ਸਾਂਝੀ ਸਟੇਟ ਨੂੰ ਅਪਡੇਟ ਕਰਨ ਤੋਂ ਤੁਰੰਤ ਬਾਅਦ ਟੈਕਸਟ ਆਊਟਪੁੱਟ ਕਰਨ ਅਤੇ ਆਪਣੀ ਵਾਰੀ ਖਤਮ ਕਰਨ ਦਾ ਨਿਰਦੇਸ਼ ਦਿੱਤਾ। ਉਸ guard ਤੋਂ ਬਿਨਾਂ ਲੂਪ ਹਮੇਸ਼ਾ ਲਈ ਚੱਲਦਾ ਰਹਿ ਸਕਦਾ ਸੀ।
- Math logic ਬਣਾਈ ਰੱਖੋ – ਅਸੀਂ adder ਨੂੰ operations ਦੇ ਕ੍ਰਮ ਦਾ ਸਤਿਕਾਰ ਕਰਨ ਲਈ ਸਪੱਸ਼ਟ ਦਿਸ਼ਾ-ਨਿਰਦੇਸ਼ ਦਿੱਤੇ, ਤਾਂ ਜੋ ਇਹ subtraction ਦੇ ਨਿਯਮਾਂ ਨੂੰ ਨਾ ਤੋੜੇ।
- Silent exits ਤੋਂ ਬਚੋ – ਅਸੀਂ ਏਜੰਟਾਂ ਨੂੰ exit tool ਦੀ ਵਰਤੋਂ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਅੰਤਿਮ ਨਤੀਜਾ ਪ੍ਰਿੰਟ ਕਰਨ ਲਈ ਮਜਬੂਰ ਕੀਤਾ, ਤਾਂ ਜੋ ਉਪਭੋਗਤਾ ਨੂੰ ਅਚਾਨਕ ਸਮਾਪਤੀ ਦੀ ਬਜਾਏ ਨਤੀਜਾ ਦਿਖਾਈ ਦੇਵੇ।
Error Handling
ਅਸੀਂ divider specialist ਦੇ ਅੱਗੇ ਇੱਕ zero-division guard ਜੋੜਿਆ ਹੈ। ਇਹ guard ਪਹਿਲਾਂ divisor ਦੀ ਜਾਂਚ ਕਰਦਾ ਹੈ; ਜੇਕਰ ਇਹ ਜ਼ੀਰੋ ਹੈ, ਤਾਂ ਇਹ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਰੋਕ ਦਿੰਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਪੂਰੇ ਸਿਸਟਮ ਨੂੰ runtime exception ਤੋਂ ਬਚਾਇਆ ਜਾ ਸਕਦਾ ਹੈ।
Which Pattern Fits Your Project?
- Multi-Agent Routing ਚੁਣੋ ਜਦੋਂ ਕੰਮ ਤੁਰੰਤ ਬਦਲਦੇ ਰਹਿੰਦੇ ਹਨ, ਇਨਪੁਟਸ ਵਿੱਚ ਬਹੁਤ ਜ਼ਿਆਦਾ ਵਾਧਾ-ਘਟਾਅ ਹੁੰਦਾ ਹੈ, ਜਾਂ ਤੁਹਾਨੂੰ runtime 'ਤੇ ਸਭ ਤੋਂ ਵਧੀਆ ਸਪੈਸ਼ਲਿਸਟ ਚੁਣਨ ਲਈ LLM ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਇਸ ਦਾ ਨੁਕਸਾਨ ਵਧੇਰੇ latency ਹੈ, ਪਰ ਸਿਸਟਮ ਕੋਡ ਵਿੱਚ ਬਦਲਾਅ ਕੀਤੇ ਬਿਨਾਂ ਅਣਪਛਾਤੇ ਸਥਿਤੀਆਂ ਨੂੰ ਸੰਭਾਲ ਲੈਂਦਾ ਹੈ।
- Workflow Loops ਚੁਣੋ ਜਦੋਂ ਤੁਹਾਡੇ ਕੋਲ ਇੱਕ ਚੰਗੀ ਤਰ੍ਹਾਂ ਨਿਰਧਾਰਤ ਪਾਈਪਲਾਈਨ ਹੋਵੇ—ਜਿਵੇਂ ਕਿ ਡਾਟਾ ਕਲੀਨਿੰਗ, ਟ੍ਰਾਂਸਫਾਰਮੇਸ਼ਨ, ਐਗਰੀਗੇਸ਼ਨ—ਜਿੱਥੇ ਹਰ ਕਦਮ ਇੱਕ ਸਖ਼ਤ ਕ੍ਰਮ ਵਿੱਚ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ। ਇਸ ਦਾ ਫਾਇਦਾ ਘੱਟ latency ਅਤੇ ਸੌਖੀ debugging ਹੈ, ਪਰ ਇਸ ਵਿੱਚ ਡਾਇਨਾਮਿਕ ਤੌਰ 'ਤੇ ਬ੍ਰਾਂਚ ਕਰਨ ਦੀ ਸਮਰੱਥਾ ਨਹੀਂ ਹੁੰਦੀ।
