ਇੱਕ AI Agent ਦੇ ਅੰਦਰ
AI agent ਦੇ ਡੈਮੋ ਵੀਡੀਓਜ਼ ਵਿੱਚ ਬਹੁਤ ਵਧੀਆ ਲੱਗਦੇ ਹਨ। ਪਰ ਜਦੋਂ ਤੁਸੀਂ ਅਸਲੀ ਸਵਾਲ ਪੁੱਛਦੇ ਹੋ, ਤਾਂ ਉਹ ਅਕਸਰ ਅਸਫਲ ਹੋ ਜਾਂਦੇ ਹਨ।
Agent ਗਲਤ ਕੰਮ ਕਰਦਾ ਹੈ। ਇਹ ਫੈਸਲੇ ਭੁੱਲ ਜਾਂਦਾ ਹੈ। ਇਹ ਅਜਿਹੇ tools ਨੂੰ ਕਾਲ ਕਰਦਾ ਹੈ ਜੋ ਮੌਜੂਦ ਨਹੀਂ ਹਨ। ਇਹ ਲਗਾਤਾਰ ਲੂਪ ਵਿੱਚ ਫਸ ਜਾਂਦਾ ਹੈ। ਇਹ ਮਾਡਲ ਦੀਆਂ ਅਸਫਲਤਾਵਾਂ ਨਹੀਂ ਹਨ। ਇਹ workflow ਦੀਆਂ ਅਸਫਲਤਾਵਾਂ ਹਨ।
ਇੱਕ agent ਇੱਕ software workflow ਹੈ। ਇੱਕ language model ਅਗਲਾ ਕਦਮ ਚੁਣਦਾ ਹੈ ਅਤੇ tools ਨੂੰ ਕਾਲ ਕਰਦਾ ਹੈ। ਅਸਲੀ ਬੁੱਧੀ orchestration ਵਿੱਚ ਹੁੰਦੀ ਹੈ, ਸਿਰਫ਼ ਮਾਡਲ ਵਿੱਚ ਨਹੀਂ।
ਹਰ production agent ਪੰਜ ਥੰਮ੍ਹਾਂ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ:
- Planning: ਕੰਮ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਸੋਚਣਾ।
- Tool Use: ਦੁਨੀਆ ਨਾਲ ਅੰਤਰਕਿਰਿਆ ਕਰਨਾ।
- Memory: ਸੰਦਰਭ (context) ਅਤੇ ਤੱਥਾਂ ਨੂੰ ਸਟੋਰ ਕਰਨਾ।
- Constraints: ਸੀਮਾਵਾਂ ਅਤੇ ਬਜਟ ਨਿਰਧਾਰਤ ਕਰਨਾ।
- Verification: ਇਹ ਸਾਬਤ ਕਰਨਾ ਕਿ ਕੰਮ ਸਹੀ ਹੈ।
Planning ਸ਼ੈਲੀਆਂ
Naive agents ਸਿੱਧਾ ਕਾਰਵਾਈ ਵੱਲ ਵਧਦੇ ਹਨ। ਇਸ ਨਾਲ hallucinations ਹੁੰਦੀਆਂ ਹਨ। ਇੱਕ ਚੰਗਾ agent ਪਹਿਲਾਂ ਯੋਜਨਾ ਬਣਾਉਂਦਾ ਹੈ।
- Plan-then-execute: ਮਾਡਲ ਇੱਕ ਪੂਰੀ ਯੋਜਨਾ ਲਿਖਦਾ ਹੈ। ਇਸਦੀ ਜਾਂਚ (audit) ਕਰਨਾ ਆਸਾਨ ਹੈ ਪਰ ਜੇਕਰ ਹਕੀਕਤ ਬਦਲ ਜਾਵੇ ਤਾਂ ਇਸਨੂੰ ਅਨੁਕੂਲ ਬਣਾਉਣਾ ਮੁਸ਼ਕਲ ਹੁੰਦਾ ਹੈ।
- ReAct (Reason + Act): ਮਾਡਲ ਇੱਕ ਲੂਪ ਵਿੱਚ ਸੋਚਦਾ ਹੈ, ਕੰਮ ਕਰਦਾ ਹੈ ਅਤੇ ਨਿਰੀਖਣ ਕਰਦਾ ਹੈ। ਇਹ ਵਧੇਰੇ ਅਨੁਕੂਲ (adaptive) ਹੈ ਪਰ ਇਸ ਵਿੱਚ tokens ਅਤੇ ਸਮਾਂ ਜ਼ਿਆਦਾ ਲੱਗਦਾ ਹੈ।
Tool Use
Tools ਤੋਂ ਬਿਨਾਂ, ਇੱਕ agent ਸਿਰਫ਼ ਇੱਕ chatbot ਹੈ। ਇੱਕ tool ਲਈ ਇੱਕ ਨਾਮ, ਇੱਕ JSON schema, ਅਤੇ ਇੱਕ function ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।
ਮਾਡਲ ਵੇਰਵਿਆਂ (descriptions) ਦੇ ਅਧਾਰ 'ਤੇ tools ਚੁਣਦੇ ਹਨ। ਜੇਕਰ ਤੁਹਾਡਾ ਵੇਰਵਾ ਅਸਪਸ਼ਟ ਹੈ, ਤਾਂ agent ਅਸਫਲ ਹੋ ਜਾਵੇਗਾ। ਵੇਰਵਿਆਂ ਨੂੰ spec sheets ਵਾਂਗ ਸਮਝੋ। ਇਹ ਪਰਿਭਾਸ਼ਿਤ ਕਰੋ ਕਿ ਇੱਕ tool ਕਿਸ ਲਈ ਹੈ ਅਤੇ ਕਿਸ ਲਈ ਨਹੀਂ ਹੈ।
Tool calls ਨੂੰ ਹਮੇਸ਼ਾ validate ਕਰੋ। ਜੇਕਰ ਮਾਡਲ ਗਲਤ arguments ਭੇਜਦਾ ਹੈ, ਤਾਂ ਕਾਲ ਨੂੰ ਰੱਦ ਕਰ ਦਿਓ ਅਤੇ error ਨੂੰ ਮਾਡਲ ਨੂੰ ਵਾਪਸ ਭੇਜ ਦਿਓ। ਇਹ agent ਨੂੰ ਲੂਪ ਦੇ ਵਿਚਕਾਰ ਸਿੱਖਣ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ।
Memory
Memory ਸਿਰਫ਼ ਇੱਕ ਚੀਜ਼ ਨਹੀਂ ਹੈ।
- Working Memory: ਮੌਜੂਦਾ ਗੱਲਬਾਤ ਅਤੇ tool ਦੇ ਨਤੀਜੇ।
- Scratchpad: ਇੱਕ ਜਗ੍ਹਾ ਜਿੱਥੇ agent ਆਪਣੇ ਲਈ ਨੋਟ ਲਿਖ ਸਕਦਾ ਹੈ।
- Long-term Memory: ਭਵਿੱਖ ਦੇ ਸੈਸ਼ਨਾਂ ਲਈ ਤੱਥਾਂ ਨੂੰ ਸਟੋਰ ਕਰਨਾ।
ਸਿਰਫ਼ vector databases 'ਤੇ ਨਿਰਭਰ ਨਾ ਰਹੋ। Markdown ਫਾਈਲਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ file-based memory ਅਕਸਰ ਬਿਹਤਰ ਹੁੰਦੀ ਹੈ। ਇਸਦੀ ਜਾਂਚ (audit), ਸੰਪਾਦਨ (edit) ਅਤੇ grep ਕਰਨਾ ਆਸਾਨ ਹੁੰਦਾ ਹੈ।
Constraints ਅਤੇ Safety
Production agents ਨੂੰ guardrails ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਇਹਨਾਂ ਚਾਰ ਦੀ ਵਰਤੋਂ ਕਰੋ:
- Tool allowlists: ਸਿਰਫ਼ ਖਾਸ, ਨਾਮਜਾਣੇ ਹੋਏ tools ਦੀ ਇਜਾਜ਼ਤ ਦਿਓ।
- Iteration budgets: ਅਨੰਤ ਲੂਪ (infinite loops) ਨੂੰ ਰੋਕਣ ਲਈ ਕਦਮਾਂ ਦੀ ਗਿਣਤੀ ਸੀਮਤ ਕਰੋ।
- Token budgets: ਕੁੱਲ tokens ਨੂੰ ਸੀਮਤ ਕਰਕੇ ਲਾਗਤ ਨੂੰ ਰੋਕੋ।
- Approval gates: ਈਮੇਲ ਭੇਜਣ ਜਾਂ ਡੇਟਾ ਡਿਲੀਟ ਕਰਨ ਵਰਗੇ ਉੱਚ-ਜੋਖਮ ਵਾਲੇ ਕੰਮਾਂ ਲਈ ਮਨੁੱਖੀ ਇਜਾਜ਼ਤ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।
Verification
ਜਦੋਂ ਮਾਡਲ ਕਹਿੰਦਾ ਹੈ ਕਿ ਕੰਮ ਹੋ ਗਿਆ ਹੈ, ਤਾਂ ਕਦੇ ਵੀ ਉਸ 'ਤੇ ਭਰੋਸਾ ਨਾ ਕਰੋ। ਮਾਡਲ ਡਿਫੌਲਟ ਰੂਪ ਵਿੱਚ ਆਤਮ-ਵਿਸ਼ਵਾਸੀ ਹੁੰਦਾ ਹੈ।
ਅਸਲੀ verification ਦੀ ਵਰਤੋਂ ਕਰੋ। ਜੇਕਰ agent ਕੋਡ ਲਿਖਦਾ ਹੈ, ਤਾਂ ਟੈਸਟ ਚਲਾਓ। ਜੇਕਰ ਇਹ JSON ਬਣਾਉਂਦਾ ਹੈ, ਤਾਂ schema ਦੀ ਜਾਂਚ ਕਰੋ। ਜੇਕਰ ਇਹ ਕੋਈ ਕੰਮ ਕਰਦਾ ਹੈ, ਤਾਂ ਬਦਲਾਅ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨ ਲਈ query ਚਲਾਓ।
ਸਭ ਤੋਂ ਵਧੀਆ agents ਲੂਪ ਦੇ ਅੰਦਰ verification ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ। ਜੇਕਰ ਕੋਈ ਟੈਸਟ ਫੇਲ ਹੋ ਜਾਂਦਾ ਹੈ, ਤਾਂ error ਨੂੰ agent ਨੂੰ ਵਾਪਸ ਭੇਜ ਦਿਓ। ਇਸਨੂੰ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਦਿਓ।
ਸਮਾਰਟ prompts ਦੇ ਪਿੱਛੇ ਭੱਜਣਾ ਬੰਦ ਕਰੋ। ਬਿਹਤਰ plumbing ਬਣਾਉਣਾ ਸ਼ੁਰੂ ਕਰੋ।
Optional learning community: https://t.me/GyaanSetuAi
