ਮੈਂ 20 ਸਾਲਾਂ ਦੇ ਸਪੋਰਟ ਟਿਕਟਾਂ ਦੇ ਸਾਹਮਣੇ ਇੱਕ AI Agent ਲਗਾਇਆ
ਸਾਡੇ ਕੋਲ ਇੱਕ ਮਿਲੀਅਨ ਟਿਕਟਾਂ ਵਾਲਾ ਇੱਕ helpdesk ਸਿਸਟਮ ਹੈ। ਸਾਡੇ ਕੋਲ 2,400 ਮੈਨੂਅਲ ਅਤੇ ਦੋ ਵਿਸ਼ਾਲ codebases ਹਨ।
ਜਦੋਂ ਕੋਈ ਡਿਵੈਲਪਰ ਪੁੱਛਦਾ ਹੈ ਕਿ ਕੀ ਅਸੀਂ ਪਹਿਲਾਂ ਕੋਈ ਸਮੱਸਿਆ ਹੱਲ ਕੀਤੀ ਸੀ, ਤਾਂ ਜਵਾਬ ਹਮੇਸ਼ਾ 'ਹਾਂ' ਹੁੰਦਾ ਹੈ। ਡੇਟਾ ਬਸ ਦੱਬਿਆ ਹੋਇਆ ਹੈ। ਸੀਨੀਅਰ ਸਟਾਫ ਖੋਜ ਕਰਨ ਵਿੱਚ ਘੰਟੇ ਗੁਆ ਲੈਂਦਾ ਹੈ। ਜੂਨੀਅਰ ਹਫ਼ਤੇ ਗੁਆ ਲੈਂਦੇ ਹਨ।
ਮੈਂ ਇਸ ਸਾਰੇ ਡੇਟਾ ਦੇ ਸਾਹਮਣੇ ਬੈਠਣ ਲਈ ਇੱਕ AI agent ਬਣਾਇਆ। ਇਹ ਹੁਣ production ਵਿੱਚ ਹੈ। ਇੱਥੇ ਦੱਸਿਆ ਗਿਆ ਹੈ ਕਿ ਅਸਲ ਵਿੱਚ ਕੀ ਹੋਇਆ।
ਡੇਟਾ ਮੁਸ਼ਕਲ ਹਿੱਸਾ ਨਹੀਂ ਸੀ। ਇਹ ਜਾਣਨਾ ਕਿ ਕਿੱਥੇ ਦੇਖਣਾ ਹੈ, ਉਹ ਮੁਸ਼ਕਲ ਸੀ। Agent ਨੂੰ ਗਲਤ ਗੱਲਾਂ ਬਣਾਉਣ ਤੋਂ ਰੋਕਣਾ ਹੋਰ ਵੀ ਮੁਸ਼ਕਲ ਸੀ।
ਇਹ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ:
- ਕੁਦਰਤੀ ਭਾਸ਼ਾ (natural language) ਇਨਪੁਟ ਵਾਲਾ ਇੱਕ agent।
- ਇਹ helpdesk database, project tools, GitLab, ਅਤੇ SVN ਨੂੰ ਪੜ੍ਹਦਾ ਹੈ।
- ਇਹ ਮੈਨੂਅਲ ਅਤੇ ਪੁਰਾਣੀਆਂ ਟਿਕਟਾਂ ਉੱਤੇ vector searches ਕਰਦਾ ਹੈ।
- ਇਹ .xlsx ਜਾਂ .docx ਵਰਗੀਆਂ ਫਾਈਲਾਂ ਬਣਾ ਸਕਦਾ ਹੈ।
- ਇਹ ਆਪਣੇ ਸਾਧਨ (tools) ਖੁਦ ਚੁਣਦਾ ਹੈ ਅਤੇ ਉਹਨਾਂ ਨੂੰ parallel ਵਿੱਚ ਚਲਾਉਂਦਾ ਹੈ।
ਆਰਕੀਟੈਕਚਰ ਸਰਲ ਹੈ। ਇਹ ਮੁੱਖ ਐਪ ਤੋਂ ਵੱਖਰੇ ਇੱਕ Node container ਵਿੱਚ ਚੱਲਦਾ ਹੈ। ਮੈਂ ਇਹ failure isolation ਲਈ ਕੀਤਾ ਸੀ। ਜੇਕਰ AI ਫੇਲ ਹੋ ਜਾਂਦਾ ਹੈ, ਤਾਂ helpdesk ਚੱਲਦਾ ਰਹਿੰਦਾ ਹੈ।
ਸਭ ਤੋਂ ਵੱਡਾ ਸਬਕ prompt ਬਾਰੇ ਸੀ। ਮੈਂ ਟੈਕਸਟ ਦੀ ਇੱਕ ਵਿਸ਼ਾਲ ਕੰਧ ਨਾਲ ਸ਼ੁਰੂਆਤ ਕੀਤੀ ਸੀ। ਇਹ 40,000 tokens ਦਾ ਸੀ। ਇਸ ਨੂੰ ਬਣਾਈ ਰੱਖਣਾ ਮੁਸ਼ਕਲ ਸੀ ਅਤੇ agent ਆਪਣਾ ਫੋਕਸ ਗੁਆ ਦਿੰਦਾ ਸੀ।
ਮੈਂ ਆਪਣਾ ਤਰੀਕਾ ਬਦਲ ਦਿੱਤਾ। ਮੈਂ prompt ਨੂੰ ਛੋਟੀਆਂ skill files ਵਿੱਚ ਵੰਡ ਦਿੱਤਾ।
- Ticket search ਇੱਕ ਫਾਈਲ ਹੈ।
- Code history ਦੂਜੀ ਹੈ।
- Project management ਤੀਜੀ ਹੈ।
ਮੁੱਖ prompt ਇੱਕ router ਵਜੋਂ ਕੰਮ ਕਰਦਾ ਹੈ। ਇਹ ਸਿਰਫ ਉਦੋਂ ਹੀ ਕਿਸੇ skill ਨੂੰ ਲੋਡ ਕਰਦਾ ਹੈ ਜਦੋਂ ਇਸਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਇਸ ਨਾਲ ਸਾਡੇ tokens ਪ੍ਰਤੀ ਰਿਕਵੈਸਟ 40,000 ਤੋਂ ਘਟ ਕੇ 8,000 ਰਹਿ ਗਏ। Agent ਆਪਣੇ ਕੰਮ 'ਤੇ ਟਿਕਿਆ ਰਹਿੰਦਾ ਹੈ ਅਤੇ ਕੋਡ ਨੂੰ ਅਪਡੇਟ ਕਰਨਾ ਆਸਾਨ ਹੁੰਦਾ ਹੈ।
ਮੈਂ user profiles ਵੀ ਜੋੜ ਦਿੱਤੇ ਹਨ। ਇੱਕ ਡਿਵੈਲਪਰ ਨੂੰ code paths ਮਿਲਦੇ ਹਨ। ਇੱਕ ਪ੍ਰੋਜੈਕਟ ਮੈਨੇਜਰ ਨੂੰ status summaries ਮਿਲਦੀਆਂ ਹਨ। Agent ਨੂੰ ਦੱਸੇ ਬਿਨਾਂ ਹੀ ਪਤਾ ਹੁੰਦਾ ਹੈ ਕਿ ਕੌਣ ਪੁੱਛ ਰਿਹਾ ਹੈ।
ਇਹ ਸੰਪੂਰਨ ਨਹੀਂ ਹੈ। ਅਸੀਂ ਅਸਲ ਅਸਫਲਤਾਵਾਂ ਦਾ ਸਾਹਮਣਾ ਕੀਤਾ:
- Hallucinations: Agent ਨੇ ਫਰਜ਼ੀ URLs ਬਣਾ ਦਿੱਤੇ। ਹੱਲ: ਸਹੀ patterns ਨੂੰ ਪਿੰਨ ਕਰੋ ਜਾਂ lookup ਲਈ ਮਜਬੂਰ ਕਰੋ।
- Memory loss: Agent ਲੰਬੀਆਂ ਚੈਟਾਂ ਵਿੱਚ ਨਿਯਮ ਭੁੱਲ ਗਿਆ। ਹੱਲ: ਹਰ ਵਾਰ ਇੱਕ structured to-do list ਸ਼ਾਮਲ ਕਰੋ।
- Infinite loops: Agent ਨੇ ਬਹੁਤ ਜ਼ਿਆਦਾ tool calls ਕੀਤੇ। ਹੱਲ: ਪ੍ਰਤੀ ਰਿਕਵੈਸਟ ਇੱਕ ਸਖ਼ਤ ਬਜਟ ਸੈੱਟ ਕਰੋ।
- Safety: ਉਪਭੋਗਤਾਵਾਂ ਨੇ ਇਸਨੂੰ ਧੋਖਾ ਦੇਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ। ਹੱਲ: ਸੁਰੱਖਿਆ ਲਈ prompts 'ਤੇ ਨਿਰਭਰ ਨਾ ਰਹੋ। ਆਪਣੇ infrastructure ਵਿੱਚ read-only database credentials ਦੀ ਵਰਤੋਂ ਕਰੋ।
ਅਸਲ ਕੰਮ ਇੱਕ ਹਫ਼ਤਾਵਾਰੀ ਲੂਪ (loop) ਹੈ। ਮੈਂ logs ਪੜ੍ਹਦਾ ਹਾਂ। ਮੈਂ sessions ਨੂੰ ਸਕੋਰ ਕਰਦਾ ਹਾਂ। ਮੈਂ skills ਵਿੱਚ ਸੁਧਾਰ ਕਰਦਾ ਹਾਂ। ਮੈਂ profiles ਨੂੰ ਅਪਡੇਟ ਕਰਦਾ ਹਾਂ।
ਜੇਕਰ ਤੁਸੀਂ ਇਸ ਲੂਪ ਨੂੰ ਛੱਡ ਦਿੰਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਡੇ ਕੋਲ ਸਿਰਫ ਇੱਕ demo ਹੈ। ਜੇਕਰ ਤੁਸੀਂ ਇਸਨੂੰ ਕਰਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਡੇ ਕੋਲ ਇੱਕ product ਹੈ।
ਟੀਚਾ ਸਿਰਫ ਤੇਜ਼ ਜਵਾਬ ਪ੍ਰਾਪਤ ਕਰਨਾ ਨਹੀਂ ਹੈ। ਟੀਚਾ ਸੰਸਥਾਗਤ ਗਿਆਨ (institutional knowledge) ਨੂੰ ਸੰਭਾਲ ਕੇ ਰੱਖਣਾ ਹੈ। ਜਦੋਂ ਕੋਈ ਵਿਅਕਤੀ ਚਲਾ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਉਸਦਾ ਗਿਆਨ transcripts ਵਿੱਚ ਰਹਿ ਜਾਂਦਾ ਹੈ।
ਤੁਹਾਡੇ ਬਿਲਡ ਲਈ ਸਾਰਾਂਸ਼:
- ਆਪਣੇ ਇਤਿਹਾਸ ਉੱਤੇ RAG ਨਾਲ ਸ਼ੁਰੂਆਤ ਕਰੋ।
- ਇੱਕ ਵੱਡੇ prompt ਦੀ ਬਜਾਏ lazy-loaded skill files ਦੀ ਵਰਤੋਂ ਕਰੋ।
- ਨਿੱਜੀ ਸੰਦਰਭ (personalized context) ਲਈ user profiles ਦੀ ਵਰਤੋਂ ਕਰੋ।
- AI ਨੂੰ ਆਪਣੇ ਵੱਖਰੇ container ਵਿੱਚ ਰੱਖੋ।
- ਸੁਰੱਖਿਆ ਨੂੰ instructions ਰਾਹੀਂ ਨਹੀਂ, ਬਲਕਿ infrastructure ਰਾਹੀਂ ਲਾਗੂ ਕਰੋ।
- ਹਰ ਹਫ਼ਤੇ ਆਪਣੇ logs ਪੜ੍ਹੋ।
ਵਿਕਲਪਿਕ ਲਰਨਿੰਗ ਕਮਿਊਨਿਟੀ: https://t.me/GyaanSetuAi
