ਹਰ ਚੀਜ਼ ਇੱਕ ਫਾਈਲ ਹੈ: ਯੂਨਿਕਸ ਤੋਂ ਏਆਈ ਏਜੰਟ ਦੇ ਡਿਜ਼ਾਈਨ ਫ਼ਲਸਫ਼ੇ ਤੱਕ
ਹਰ ਚੀਜ਼ ਇੱਕ ਫਾਈਲ ਹੈ: ਯੂਨਿਕਸ ਤੋਂ ਏਆਈ ਏਜੰਟ ਦੇ ਡਿਜ਼ਾਈਨ ਫ਼ਲਸਫ਼ੇ ਤੱਕ
ਮੂਲ ਈਥਨ ਯੇਚੇਂਗ


ਅੱਧੀ ਸਦੀ ਤੋਂ ਵੱਧ ਦੀ ਗੂੰਜ
1970 ਦੇ ਦਹਾਕੇ ਦੇ ਸ਼ੁਰੂ ਵਿੱਚ ਬੈੱਲ ਲੈਬਜ਼ (Bell Labs) ਵਿੱਚ, ਯੂਨਿਕਸ ਦੇ ਪਿਤਾ ਕੇਨ ਥੌਮਸਨ (Ken Thompson) ਅਤੇ ਡੇਨਿਸ ਰਿਚੀ (Dennis Ritchie) ਨੇ ਪਹਿਲੀ ਵਾਰ ਇੱਕ ਦਲੇਰਾਨਾ ਅਤੇ ਲਗਭਗ ਕੱਟੜ ਡਿਜ਼ਾਈਨ ਸਿਧਾਂਤ ਪੇਸ਼ ਕੀਤਾ: ਹਰ ਚੀਜ਼ ਇੱਕ ਫਾਈਲ ਹੈ - ਹਰ ਚੀਜ਼ ਇੱਕ ਫਾਈਲ ਹੈ।
ਅੱਜ, ਪੰਜਾਹ ਸਾਲਾਂ ਤੋਂ ਵੱਧ ਬਾਅਦ, ਏਆਈ ਏਜੰਟ ਫਰੇਮਵਰਕ ਤੇਜ਼ੀ ਨਾਲ ਵੱਧ ਰਿਹਾ ਹੈ। Manus, Claude Code, OpenClaw... ਉਹ ਵੱਖ-ਵੱਖ ਟੀਮਾਂ, ਵੱਖ-ਵੱਖ ਤਕਨੀਕੀ ਸਟੈਕਾਂ ਅਤੇ ਵੱਖ-ਵੱਖ ਵਪਾਰਕ ਟੀਚਿਆਂ ਤੋਂ ਆਉਂਦੇ ਹਨ, ਪਰ ਉਹ ਸਾਰੇ ਇੱਕੋ ਚੋਣ ਕਰਦੇ ਹਨ: ਫਾਈਲ ਸਿਸਟਮ ਨੂੰ ਏਜੰਟ ਦੇ ਬੋਧਿਕ ਢਾਂਚੇ ਵਜੋਂ ਵਰਤਣਾ।
Manus ਏਜੰਟ ਨੂੰ ਇੱਕ ਵਰਚੁਅਲ ਮਸ਼ੀਨ ਦਿੰਦਾ ਹੈ, ਅਤੇ ਟਾਸਕ ਉਤਪਾਦਾਂ ਨੂੰ ਫਾਈਲਾਂ ਦੇ ਰੂਪ ਵਿੱਚ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। Claude Code ਸਿੱਧੇ ਤੌਰ 'ਤੇ ਉਪਭੋਗਤਾ ਦੇ ਸਥਾਨਕ ਫਾਈਲ ਸਿਸਟਮ 'ਤੇ ਪੜ੍ਹਦਾ ਅਤੇ ਲਿਖਦਾ ਹੈ, ਅਤੇ ਸਾਰੇ ਨਿਰਦੇਸ਼ਾਂ ਅਤੇ ਸੰਦਰਭ ਨੂੰ CLAUDE.md ਫਾਈਲ ਵਿੱਚ ਰੱਖਦਾ ਹੈ। OpenClaw ਵਰਗੇ ਓਪਨ ਸੋਰਸ ਫਰੇਮਵਰਕ ਵੀ ਟਾਸਕ ਡੀਕੰਪੋਜ਼ੀਸ਼ਨ ਅਤੇ ਵਿਚਕਾਰਲੇ ਰਾਜਾਂ ਨੂੰ ਸੰਗਠਿਤ ਕਰਨ ਲਈ ਡਾਇਰੈਕਟਰੀ ਢਾਂਚੇ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ।
ਜਦੋਂ ਅੱਧੀ ਸਦੀ ਤੋਂ ਵੱਖਰੇ ਇੰਜੀਨੀਅਰ, ਪੂਰੀ ਤਰ੍ਹਾਂ ਵੱਖਰੀਆਂ ਤਕਨੀਕੀ ਸਮੱਸਿਆਵਾਂ ਦਾ ਸਾਹਮਣਾ ਕਰਦੇ ਹਨ, ਤਾਂ ਉਹ ਸੁਤੰਤਰ ਤੌਰ 'ਤੇ ਇੱਕੋ ਹੱਲ 'ਤੇ ਇਕੱਠੇ ਹੁੰਦੇ ਹਨ - ਇਹ ਕੋਈ ਇਤਫ਼ਾਕ ਨਹੀਂ ਹੈ, ਇਹ ਡਿਜ਼ਾਈਨ ਫ਼ਲਸਫ਼ੇ ਦੀ ਗੂੰਜ ਹੈ।
ਯੂਨਿਕਸ ਦਾ ਉਹ ਫੈਸਲਾ
ਇਸ ਗੱਲ ਦੇ ਮਹੱਤਵ ਨੂੰ ਸਮਝਣ ਲਈ, ਸਾਨੂੰ ਪਹਿਲਾਂ ਇਹ ਦੇਖਣਾ ਹੋਵੇਗਾ ਕਿ ਯੂਨਿਕਸ ਨੇ ਕੀ ਕੀਤਾ।
ਯੂਨਿਕਸ ਫਾਈਲ ਸਿਸਟਮ ਡਿਜ਼ਾਈਨ ਨੂੰ ਕੰਪਿਊਟਰ ਵਿਗਿਆਨ ਦੇ ਇਤਿਹਾਸ ਵਿੱਚ ਸਭ ਤੋਂ ਸ਼ਾਨਦਾਰ ਡਿਜ਼ਾਈਨਾਂ ਵਿੱਚੋਂ ਇੱਕ ਮੰਨਿਆ ਜਾਂਦਾ ਹੈ। ਇਹ ਇੱਕ ਬਹੁਤ ਹੀ ਗੁੰਝਲਦਾਰ ਸਮੱਸਿਆ ਨੂੰ ਹੱਲ ਕਰਦਾ ਹੈ: ਵੱਖ-ਵੱਖ ਹਾਰਡਵੇਅਰ ਸਰੋਤਾਂ ਅਤੇ ਡਾਟਾ ਸਰੋਤਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਲਈ ਇੱਕ ਯੂਨੀਫਾਈਡ ਅਤੇ ਸਧਾਰਨ ਇੰਟਰਫੇਸ ਦੀ ਵਰਤੋਂ ਕਿਵੇਂ ਕਰੀਏ।
1970 ਦੇ ਦਹਾਕੇ ਤੋਂ ਪਹਿਲਾਂ, ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਇਸ ਤਰ੍ਹਾਂ ਕੰਮ ਕਰਦੇ ਸਨ: ਜੇ ਤੁਸੀਂ ਡਿਸਕ ਪੜ੍ਹਨਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਡਿਸਕ ਇੰਟਰਫੇਸ ਨੂੰ ਕਾਲ ਕਰੋ; ਜੇ ਤੁਸੀਂ ਟੇਪ ਪੜ੍ਹਨਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਟੇਪ ਇੰਟਰਫੇਸ ਨੂੰ ਕਾਲ ਕਰੋ; ਜੇ ਤੁਸੀਂ ਟਰਮੀਨਲ ਤੱਕ ਪਹੁੰਚਣਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਟਰਮੀਨਲ ਇੰਟਰਫੇਸ ਨੂੰ ਕਾਲ ਕਰੋ। ਹਰੇਕ ਡਿਵਾਈਸ ਦਾ ਆਪਣਾ API ਹੁੰਦਾ ਹੈ, ਅਤੇ ਹਰੇਕ API ਦਾ ਆਪਣਾ ਅਰਥ ਹੁੰਦਾ ਹੈ। ਜੇ ਤੁਹਾਡੇ ਕੋਲ N ਕਿਸਮਾਂ ਦੇ ਡਿਵਾਈਸਾਂ ਅਤੇ M ਕਿਸਮਾਂ ਦੇ ਓਪਰੇਸ਼ਨ ਹਨ, ਤਾਂ ਸਿਸਟਮ ਦੀ ਗੁੰਝਲਤਾ N × M ਹੈ।
ਥੌਮਸਨ ਅਤੇ ਰਿਚੀ ਨੇ ਇੱਕ ਅਜਿਹਾ ਕੰਮ ਕੀਤਾ ਜੋ ਸਧਾਰਨ ਤੋਂ ਮੂਰਖਤਾ ਭਰਿਆ ਲੱਗਦਾ ਹੈ:
ਹਰ ਚੀਜ਼ ਨੂੰ ਫਾਈਲ ਵਿੱਚ ਬਦਲੋ। ਹਰ ਚੀਜ਼ ਨੂੰ ਚਲਾਉਣ ਲਈ open, read, write, close ਚਾਰ ਕਿਰਿਆਵਾਂ ਦੀ ਵਰਤੋਂ ਕਰੋ।
ਇਸਦਾ ਮੁੱਖ ਅਰਥ ਇਹ ਹੈ: ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਵਿੱਚ ਸਾਰੇ ਸਰੋਤ - ਦਸਤਾਵੇਜ਼, ਡਾਇਰੈਕਟਰੀਆਂ, ਹਾਰਡ ਡਰਾਈਵਾਂ, ਮਾਡਮ, ਕੀਬੋਰਡ, ਪ੍ਰਿੰਟਰ, ਅਤੇ ਇੱਥੋਂ ਤੱਕ ਕਿ ਨੈਟਵਰਕ ਕਨੈਕਸ਼ਨ ਅਤੇ ਪ੍ਰਕਿਰਿਆ ਜਾਣਕਾਰੀ - ਨੂੰ ਇੱਕ ਫਾਈਲ ਸਟ੍ਰੀਮ (Stream of Bytes) ਵਿੱਚ ਸੰਖੇਪ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।
ਇਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਤੁਹਾਨੂੰ ਸਿਰਫ਼ ਇੱਕ API ਸਿੱਖਣ ਦੀ ਲੋੜ ਹੈ - open(), read(), write(), close() - ਕੰਪਿਊਟਰ ਦੇ ਸਾਰੇ ਸਰੋਤਾਂ ਨੂੰ ਚਲਾਉਣ ਲਈ।
ਇਸ ਤੋਂ ਬਾਅਦ, ਗੁੰਝਲਤਾ N × M ਤੋਂ 4 × 1 ਤੱਕ ਘੱਟ ਗਈ। ਚਾਰ ਕਿਰਿਆਵਾਂ, ਇੱਕ ਐਬਸਟਰੈਕਸ਼ਨ।
ਇਸ ਗੱਲ ਦੀ ਪ੍ਰਤਿਭਾ "ਫਾਈਲ" ਨਾਮ ਵਿੱਚ ਨਹੀਂ ਹੈ, ਸਗੋਂ ਇੱਕ ਡੂੰਘੀ ਸਮਝ ਵਿੱਚ ਹੈ:
ਤੁਹਾਨੂੰ ਇਹ ਜਾਣਨ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ ਕਿ ਫਾਈਲ ਡਿਸਕ੍ਰਿਪਟਰ ਦੇ ਪਿੱਛੇ ਕੀ ਹੈ। ਇੰਟਰਫੇਸ ਇੱਕ ਇਕਰਾਰਨਾਮਾ ਹੈ।
ਇੱਕ fd (ਫਾਈਲ ਡਿਸਕ੍ਰਿਪਟਰ) ਇੱਕ ਅਸਪਸ਼ਟ ਹੈਂਡਲ ਹੈ। ਤੁਸੀਂ ਇਸਨੂੰ read() ਕਰਦੇ ਹੋ, ਬਾਈਟ ਸਟ੍ਰੀਮ ਬਾਹਰ ਆਉਂਦੀ ਹੈ। ਇਹ ਬਾਈਟ ਹਾਰਡ ਡਰਾਈਵ ਸੈਕਟਰਾਂ, ਨੈਟਵਰਕ ਕਾਰਡ ਬਫਰਾਂ ਜਾਂ ਕਿਸੇ ਹੋਰ ਪ੍ਰਕਿਰਿਆ ਦੇ ਸਟੈਂਡਰਡ ਆਉਟਪੁੱਟ ਤੋਂ ਆਉਂਦੀਆਂ ਹਨ - ਤੁਹਾਨੂੰ ਪਰਵਾਹ ਨਹੀਂ ਹੈ, ਅਤੇ ਤੁਹਾਨੂੰ ਪਰਵਾਹ ਨਹੀਂ ਕਰਨੀ ਚਾਹੀਦੀ।
ਇਹ ਯੂਨੀਫਾਈਡ ਇੰਟਰਫੇਸ ਦੀ ਸ਼ਕਤੀ ਹੈ: ਇਹ ਅਗਿਆਨਤਾ ਨੂੰ ਇੱਕ ਫਾਇਦਾ ਬਣਾਉਂਦਾ ਹੈ।

ਏਜੰਟ ਨੂੰ ਦਰਪੇਸ਼ ਇੱਕੋ ਸਵਾਲ
ਹੁਣ ਏਆਈ ਏਜੰਟ ਦੀ ਸਥਿਤੀ 'ਤੇ ਮੁੜ ਵਿਚਾਰ ਕਰੋ।
ਇੱਕ ਏਜੰਟ ਨੂੰ ਇੱਕ ਗੁੰਝਲਦਾਰ ਕੰਮ ਨੂੰ ਪੂਰਾ ਕਰਨ ਲਈ, ਉਸਨੂੰ 1970 ਦੇ ਦਹਾਕੇ ਦੇ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਵਰਗੀ ਹੀ ਹੈਰਾਨੀਜਨਕ ਮੁਸ਼ਕਲ ਦਾ ਸਾਹਮਣਾ ਕਰਨਾ ਪੈਂਦਾ ਹੈ:
- ਸਥਾਈ ਮੈਮੋਰੀ**: LLM ਦਾ ਸੰਦਰਭ ਵਿੰਡੋ ਅਸਥਿਰ ਹੁੰਦਾ ਹੈ, ਅਤੇ ਸੋਚ ਦੀ ਲੜੀ ਸੈਸ਼ਨ ਦੇ ਨਾਲ ਖਤਮ ਹੋ ਜਾਂਦੀ ਹੈ। ਇਹ ਉਸੇ ਤਰ੍ਹਾਂ ਹੈ ਜਿਵੇਂ ਪ੍ਰਕਿਰਿਆ ਦੇ ਬਾਹਰ ਜਾਣ ਤੋਂ ਬਾਅਦ ਮੈਮੋਰੀ ਨੂੰ ਰੀਸਾਈਕਲ ਕੀਤਾ ਜਾਂਦਾ ਹੈ - ਤੁਹਾਨੂੰ ਵਿਚਕਾਰਲੀ ਸਥਿਤੀ ਨੂੰ ਸਥਾਈ ਕਰਨ ਲਈ ਇੱਕ ਜਗ੍ਹਾ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਨਹੀਂ ਤਾਂ ਹਰ ਗੱਲਬਾਤ ਸ਼ੁਰੂ ਤੋਂ ਸ਼ੁਰੂ ਹੋਵੇਗੀ।\n- ਗ੍ਰੈਜੂਏਟਿਡ ਸੰਦਰਭ: ਗੁੰਝਲਦਾਰ ਕੰਮ ਇੱਕ ਕਦਮ ਵਿੱਚ ਪੂਰਾ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ। ਏਜੰਟ ਨੂੰ ਕਈ ਗੇੜਾਂ ਵਿੱਚ ਹੌਲੀ-ਹੌਲੀ ਸੰਦਰਭ ਇਕੱਠਾ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਜਿਵੇਂ ਕਿ ਯੂਨਿਕਸ ਪ੍ਰਕਿਰਿਆਵਾਂ ਫਾਈਲਾਂ ਨੂੰ ਪੜ੍ਹ ਅਤੇ ਲਿਖ ਕੇ ਕਈ ਐਗਜ਼ੀਕਿਊਸ਼ਨਾਂ ਵਿਚਕਾਰ ਸਥਿਤੀ ਨੂੰ ਟ੍ਰਾਂਸਫਰ ਕਰਦੀਆਂ ਹਨ। ਫਾਈਲ ਸਿਸਟਮ ਕੁਦਰਤੀ ਤੌਰ 'ਤੇ ਇਸ \ਏਜੰਟਾਂ ਨਾਲ "programs" ਅਤੇ "text streams" ਨਾਲ "files" ਨੂੰ ਬਦਲਣਾ, ਇਹ ਵਾਕ 2026 ਵਿੱਚ ਵੀ ਸੱਚ ਰਹੇਗਾ।
ਪਹਿਲੇ ਸਿਧਾਂਤਾਂ 'ਤੇ ਵਾਪਸ ਜਾਓ
ਮਹਾਨ ਅਮੂਰਤ ਚੀਜ਼ਾਂ ਕਦੇ ਪੁਰਾਣੀਆਂ ਨਹੀਂ ਹੁੰਦੀਆਂ, ਉਹ ਸਿਰਫ਼ ਨਵੇਂ ਖੇਤਰਾਂ ਵਿੱਚ ਨਵੀਆਂ ਉਦਾਹਰਣਾਂ ਲੱਭਦੀਆਂ ਹਨ।
"ਯੂਨੀਫਾਈਡ ਇੰਟਰਫੇਸ ਗੁੰਝਲਤਾ ਨੂੰ ਦੂਰ ਕਰਦਾ ਹੈ" ਯੂਨਿਕਸ ਦੀ ਕਾਢ ਨਹੀਂ ਹੈ, ਇਹ ਸਿਸਟਮ ਡਿਜ਼ਾਈਨ ਦਾ ਸਦੀਵੀ ਨਿਯਮ ਹੈ। ਯੂਨਿਕਸ ਨੇ ਇਤਫ਼ਾਕ ਨਾਲ ਇਸਨੂੰ "ਫਾਈਲ" ਨਾਮ ਨਾਲ ਲਾਗੂ ਕੀਤਾ। AI Agent ਨੇ ਇਤਫ਼ਾਕ ਨਾਲ ਇਸਨੂੰ "ਵਰਕਿੰਗ ਡਾਇਰੈਕਟਰੀ" ਦੇ ਰੂਪ ਵਿੱਚ ਦੁਬਾਰਾ ਲਾਗੂ ਕੀਤਾ।
ਅਗਲੀ ਪੀੜ੍ਹੀ ਦੇ ਸਿਸਟਮ ਨੂੰ ਵੀ ਉਸੇ ਚੋਣ ਦਾ ਸਾਹਮਣਾ ਕਰਨਾ ਪਵੇਗਾ: ਹਰ ਚੀਜ਼ ਲਈ ਵਿਸ਼ੇਸ਼ ਇੰਟਰਫੇਸ ਡਿਜ਼ਾਈਨ ਕਰੋ, ਜਾਂ ਇੱਕ ਪਤਲੀ, ਆਮ, ਜੋੜਨਯੋਗ ਅਮੂਰਤ ਚੀਜ਼ ਲੱਭੋ?
ਜੇ ਇਤਿਹਾਸ ਤੋਂ ਕੋਈ ਸਬਕ ਮਿਲਦਾ ਹੈ, ਤਾਂ ਜਵਾਬ ਪਹਿਲਾਂ ਹੀ /dev/null ਦੇ ਕੋਲ ਲਿਖਿਆ ਹੋਇਆ ਹੈ:
Keep it simple. Make it compose. Everything is a file. (ਇਸਨੂੰ ਸਧਾਰਨ ਰੱਖੋ। ਇਸਨੂੰ ਜੋੜਨਯੋਗ ਬਣਾਓ। ਹਰ ਚੀਜ਼ ਇੱਕ ਫਾਈਲ ਹੈ।)





