ਤੁਹਾਡਾ ਲੌਗ ਉਸ ਚੀਜ਼ ਨੂੰ ਰਿਕਾਰਡ ਨਹੀਂ ਕਰ ਸਕਦਾ ਜੋ ਵਾਪਰੀ ਹੀ ਨਹੀਂ

ਜ਼ਿਆਦਾਤਰ AI ਸੁਰੱਖਿਆ ਟੂਲ ਆਰਟੀਫੈਕਟਸ (artifacts) ਦੀ ਭਾਲ ਕਰਦੇ ਹਨ। ਉਹ ਇੱਕ ਲੌਗ ਐਂਟਰੀ, ਇੱਕ ਦਸਤਖਤ, ਜਾਂ ਇੱਕ ਟੂਲ ਦੇ ਨਤੀਜੇ ਦੀ ਭਾਲ ਕਰਦੇ ਹਨ। ਜੇਕਰ ਕੋਈ ਟੂਲ ਦਾ ਨਤੀਜਾ ਫਰਜ਼ੀ ਹੈ, ਤਾਂ ਸਿਸਟਮ ਉਸ ਨੂੰ ਫਲੈਗ ਕਰ ਦਿੰਦਾ ਹੈ। ਜੇਕਰ ਕੋਈ JSON ਬਲਾਕ ਟੁੱਟਿਆ ਹੋਇਆ ਹੈ, ਤਾਂ ਸਿਸਟਮ ਉਸ ਨੂੰ ਫੜ ਲੈਂਦਾ ਹੈ।

ਇਹ ਆਸਾਨ ਅਸਫਲਤਾਵਾਂ ਹਨ ਕਿਉਂਕਿ ਉਹ ਇੱਕ ਨਿਸ਼ਾਨ ਛੱਡਦੀਆਂ ਹਨ।

ਅਸਲ ਖ਼ਤਰਾ ਓਮੀਸ਼ਨ (omission) ਹੈ। ਓਮੀਸ਼ਨ ਉਦੋਂ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਕੁਝ ਵੀ ਨਹੀਂ ਹੁੰਦਾ।

ਇੱਕ ਐਪੈਂਡ-ਓਨਲੀ (append-only) ਲੌਗ ਵਿੱਚ, ਗੈਰ-ਹਾਜ਼ਰੀ ਤਿੰਨ ਤਰੀਕਿਆਂ ਨਾਲ ਇੱਕੋ ਜਿਹੀ ਦਿਖਾਈ ਦਿੰਦੀ ਹੈ:

  • ਇਹ ਨਹੀਂ ਵਾਪਰਿਆ।
  • ਇਹ ਅਜੇ ਤੱਕ ਨਹੀਂ ਵਾਪਰਿਆ।
  • ਇਹ ਵਾਪਰਿਆ ਪਰ ਕਦੇ ਰਿਕਾਰਡ ਨਹੀਂ ਕੀਤਾ ਗਿਆ।

ਲੌਗ ਕੁਝ ਨਹੀਂ ਦਿਖਾਉਂਦਾ। ਆਡਿਟ ਕੁਐਰੀ ਕੁਝ ਵੀ ਵਾਪਸ ਨਹੀਂ ਦਿੰਦੀ। ਚੁੱਪ ਰਹਿਣਾ ਸਹਿਮਤੀ ਬਣ ਜਾਂਦਾ ਹੈ।

ਤੁਸੀਂ ਇਸ ਨੂੰ ਤਿੰਨ ਡਿਜ਼ਾਈਨ ਨਿਯਮਾਂ ਨਾਲ ਠੀਕ ਕਰ ਸਕਦੇ ਹੋ:

  1. ਚੁੱਪ ਨੂੰ ਸਮਾਪਤ (expire) ਹੋਣ ਦਿਓ ਜੇਕਰ ਕੋਈ ਏਜੰਟ ਕੋਈ ਕਾਰਵਾਈ ਕਰਦਾ ਹੈ, ਤਾਂ ਇੱਕ ਰਿਵਿਊਅਰ ਨੂੰ ਇਸ 'ਤੇ ਦਸਤਖਤ ਕਰਨੇ ਚਾਹੀਦੇ ਹਨ। ਇੱਕ ਗੁੰਮ ਹੋਇਆ ਦਸਤਖਤ ਤੁਹਾਡੀ ਸੁਰੱਖਿਆ ਵਿੱਚ ਇੱਕ ਖਾਮੀ ਹੈ। "pending" ਨੂੰ ਹਮੇਸ਼ਾ ਲਈ ਲੰਬਿਤ ਨਾ ਰਹਿਣ ਦਿਓ। ਇੱਕ ਸਮਾਂ ਸੀਮਾ (deadline) ਨਿਰਧਾਰਤ ਕਰੋ। ਜੇਕਰ ਸਮਾਂ ਸੀਮਾ ਖਤਮ ਹੋ ਜਾਂਦੀ ਹੈ, ਤਾਂ ਸਿਸਟਮ ਨੂੰ REVIEW_EXPIRED ਵਰਗੀ ਅੰਤਿਮ ਸਥਿਤੀ (terminal state) ਰਿਕਾਰਡ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ। ਇਹ ਇੱਕ ਖਾਲੀ ਜਗ੍ਹਾ ਨੂੰ ਸਰਚ ਕੀਤੇ ਜਾਣ ਯੋਗ ਗਲਤੀ ਵਿੱਚ ਬਦਲ ਦਿੰਦਾ ਹੈ।

  2. ਦਾਅਵਿਆਂ ਲਈ ਹਵਾਲੇ (citations) ਲਾਜ਼ਮੀ ਕਰੋ ਏਜੰਟ ਅਕਸਰ ਦੁਨੀਆ ਦਾ ਵਰਣਨ ਕਰਨ ਲਈ ਗੱਦ-ਗੱਦ (prose) ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ। ਇੱਕ ਏਜੰਟ ਕਹਿ ਸਕਦਾ ਹੈ, "ਫਾਈਲ ਖਾਲੀ ਸੀ।" ਜੇਕਰ ਇਸਦਾ ਸਮਰਥਨ ਕਰਨ ਲਈ ਕੋਈ ਟੂਲ ਨਤੀਜਾ ਨਹੀਂ ਹੈ, ਤਾਂ ਇਹ ਦਾਅਵਾ ਖ਼ਤਰਨਾਕ ਹੈ।

ਜੇਕਰ ਕੋਈ ਦਾਅਵਾ ਭਵਿੱਖ ਦੀ ਕਾਰਵਾਈ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕਰਦਾ ਹੈ, ਤਾਂ ਇਸ ਵਿੱਚ ਇੱਕ observation ID ਸ਼ਾਮਲ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ। ਇਹ ਅੰਦਾਜ਼ਾ ਲਗਾਉਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਨਾ ਕਰੋ ਕਿ ਏਜੰਟ ਸੱਚ ਬੋਲ ਰਿਹਾ ਹੈ ਜਾਂ ਨਹੀਂ। ਸਿਰਫ਼ ਇਹ ਚੈੱਕ ਕਰੋ ਕਿ ਕੀ ਦਾਅਵਾ ਕਿਸੇ ਅਸਲ ਡੇਟਾ ਸਰੋਤ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦਾ ਹੈ। ਹਵਾਲੇ ਤੋਂ ਬਿਨਾਂ ਦਾਅਵਾ ਇੱਕ ਗਲਤ (malformed) ਸੁਨੇਹਾ ਹੈ।

  1. ਕਾਰਵਾਈਆਂ ਲਈ ਦੋ-ਘਟਨਾਵਾਂ (two-event) ਦੇ ਵੰਡ ਦੀ ਵਰਤੋਂ ਕਰੋ ਜਦੋਂ ਕੋਈ ਏਜੰਟ ਕੋਈ ਕੰਮ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ ਈਮੇਲ ਭੇਜਣਾ, ਤਾਂ ਉਹ ਨਤੀਜਾ ਰਿਕਾਰਡ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਹੀ ਬੰਦ ਹੋ ਸਕਦਾ ਹੈ। ਇਹ ਇੱਕ ਖਾਲੀ ਅੰਤਰਾਲ (gap) ਪੈਦਾ ਕਰਦਾ ਹੈ। ਕੀ ਈਮੇਲ ਭੇਜੀ ਗਈ ਸੀ? ਕੀ ਤੁਹਾਨੂੰ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ?

ਇਸ ਪ੍ਰਵਾਹ (flow) ਦੀ ਵਰਤੋਂ ਕਰੋ:

  • ਇੱਕ ਵਿਲੱਖਣ ਕੀ (unique key) ਦੇ ਨਾਲ ਇੱਕ INTENT event ਜੋੜੋ।
  • ਕਾਰਵਾਈ ਕਰੋ।
  • ਇੱਕ OUTCOME event ਜੋੜੋ।

ਹੁਣ ਤੁਸੀਂ ਵਿਚਕਾਰਲੀ ਸਥਿਤੀ ਦੇਖ ਸਕਦੇ ਹੋ। ਜੇਕਰ ਤੁਹਾਡੇ ਕੋਲ INTENT ਹੈ ਪਰ OUTCOME ਨਹੀਂ ਹੈ, ਤਾਂ ਤੁਸੀਂ ਜਾਣਦੇ ਹੋ ਕਿ ਸਿਸਟਮ ਕਿੱਥੇ ਅਸਫਲ ਹੋਇਆ। ਤੁਸੀਂ ਅੰਦਾਜ਼ਾ ਲਗਾਉਣ ਦੀ ਬਜਾਏ ਸਥਿਤੀ ਦਾ ਸੁਲਝਾਅ (reconcile) ਕਰ ਸਕਦੇ ਹੋ।

ਨਿਯਮ ਸਧਾਰਨ ਹੈ: ਤੁਹਾਡਾ ਸਿਸਟਮ ਜੋ ਵੀ ਸਫਲਤਾ ਰਿਕਾਰਡ ਕਰਦਾ ਹੈ, ਉਸ ਲਈ ਪੁੱਛੋ ਕਿ ਜੇਕਰ ਉਹ ਰਿਕਾਰਡ ਗੁੰਮ ਹੋ ਜਾਵੇ ਤਾਂ ਕੀ ਹੁੰਦਾ ਹੈ। ਜੇਕਰ ਜਵਾਬ "ਕੁਝ ਨਹੀਂ" ਹੈ, ਤਾਂ ਤੁਹਾਡੇ ਕੋਲ ਇੱਕ ਅਣਦੇਖੀ ਥਾਂ (blind spot) ਹੈ।

ਆਪਣੀਆਂ ਨੈਗੇਟਿਵ ਸਥਿਤੀਆਂ (negative states) ਨੂੰ ਫਸਟ-ਕਲਾਸ ਰਿਕਾਰਡ ਵਜੋਂ ਡਿਜ਼ਾਈਨ ਕਰੋ। ਉਹਨਾਂ ਨੂੰ ਨਾਮ ਦਿਓ। ਉਹਨਾਂ ਦੇ ਮਾਲਕ ਨਿਰਧਾਰਤ ਕਰੋ। ਉਹਨਾਂ ਨੂੰ ਆਪਣੇ ਗੇਟਾਂ (gates) 'ਤੇ ਅਸਫਲ ਬਣਾਓ।

ਸਰੋਤ: https://dev.to/anp2network/your-log-cant-record-what-didnt-happen-2ga7

ਵਿਕਲਪਿਕ ਸਿੱਖਣ ਭਾਈਚਾਰਾ: https://t.me/GyaanSetuAi