লেখক: sysls
স্টিম টেকফ্লো
শিনচাওয়ের পরিচয়: 26 লাখ ফলোয়ার সম্পন্ন ডেভেলপার ব্লগার sysls একটি ব্যাবহারিক দীর্ঘ নিবন্ধ লিখেছেন, যা 827 জন দ্বারা শেয়ার করা হয়েছে এবং 7000 জন দ্বারা পছন্দ করা হয়েছে। এর মূল বক্তব্য শুধু একটি বাক্য: আপনার প্লাগইন, মেমোরি সিস্টেম এবং বিভিন্ন harness-এর বেশিরভাগই আপনার কাজে বাধা হিসেবে কাজ করছে। এই নিবন্ধটি কোনো বড় তত্ত্ব ব্যাখ্যা করে না, বরং বাস্তব উৎপাদন প্রকল্পগুলির থেকে প্রাপ্ত কার্যকরী নীতিগুলির সমন্বয়ে গঠিত—যেমন: কনটেক্সট নিয়ন্ত্রণ, AI-এর প্রশংসা-প্রবণতা প্রতিরোধ, এবং কাজের শেষের শর্তগুলি সংজ্ঞায়িত করা। Claude/Codex-এর ইঞ্জিনিয়ারিং প্রয়োগকে এখন까지 যা দেখা গেছে, তার মধ্যে এটিই সবচেয়ে স্পষ্টভাবে ব্যাখ্যা করা।
পুরো পাঠ নিম্নরূপ:
ভূমিকা
আপনি একজন ডেভেলপার, প্রতিদিন ক্লড এবং কোডেক্স সিএলআই ব্যবহার করেন, প্রতিদিন ভাবেন যে আপনি কি তাদের ক্ষমতা সম্পূর্ণরূপে ব্যবহার করছেন। কখনও কখনও আপনি দেখেন যে এটি অসম্ভবভাবে বোকামি করছে, আবার বুঝতে পারছেন না যে কেন কিছু মানুষ AI ব্যবহার করে রকেট তৈরি করছে, আর আপনি দুটি পাথরও সুসংগঠিতভাবে স্তূপাকারে রাখতে পারছেন না।
আপনি মনে করছেন এটা আপনার হারনেসের সমস্যা, প্লাগইনের সমস্যা, টার্মিনালের সমস্যা বা অন্য কিছুর সমস্যা। আপনি beads, opencode, zep ব্যবহার করছেন, আপনার CLAUDE.md ফাইলে ২৬০০০ লাইন লেখা হয়েছে। কিন্তু যতই চেষ্টা করুন, আপনি বুঝতে পারছেন না কেন আপনি স্বর্গের দিকে দূরে সরে যাচ্ছেন, আর অন্যরা দেবদূতদের সাথে খেলছে।
এটাই আপনি যা অপেক্ষা করছিলেন তা।
আরও বলি, আমার কোনো স্বার্থ নেই। আমি CLAUDE.md-এর কথা বলছি, যাতে AGENT.md-ও অন্তর্ভুক্ত থাকে, এবং Claude-এর কথা বলছি, যাতে Codex-ও অন্তর্ভুক্ত থাকে—আমি দুটোই প্রচুর ব্যবহার করি।
গত কয়েক মাসে, আমি একটি আকর্ষণীয় বিষয় লক্ষ্য করেছি: প্রায় কেউই এজেন্টের ক্ষমতা সর্বাধিকভাবে ব্যবহার করার পদ্ধতি জানে না।
একটি ছোট গোষ্ঠী মনে করে যে তারা পুরো বিশ্ব তৈরি করতে পারে, বাকিরা টুলসের অসীম সমুদ্রে ঘুরে বেড়ায় এবং পছন্দের সিনড্রোমে ভুগে—মনে করে যে সঠিক প্যাকেজ, দক্ষতা বা হারনেস কম্বিনেশন খুঁজে পেলেই AGI-এর চাবি পাওয়া যাবে।
আজ, আমি এই সব ভাঙতে চাই এবং আপনাকে একটি সরল, সৎ বার্তা দিতে চাই, তারপর আমরা সেখান থেকে শুরু করব। আপনার সর্বশেষ প্রক্সি হারনেসের প্রয়োজন নেই, এক মিলিয়ন প্যাকেজ ইনস্টল করার প্রয়োজন নেই, এবং প্রতিযোগিতামূলক থাকার জন্য এক মিলিয়ন নিবন্ধ পড়ারও প্রয়োজন নেই। বাস্তবিকই, আপনার উত্সাহটি সম্ভবত ক্ষতির চেয়ে বেশি ক্ষতি করছে।
আমি পর্যটনে আসিনি—যখন এজেন্টগুলি মাত্র কোড লিখতে পারত, তখন থেকেই আমি ব্যবহার শুরু করেছি। আমি সমস্ত প্যাকেজ, সমস্ত হারনেস, সমস্ত প্যারাডাইম পরীক্ষা করেছি। আমি এজেন্ট ফ্যাক্টরি ব্যবহার করে সিগন্যাল, ইনফ্রাস্ট্রাকচার এবং ডেটা পাইপলাইন তৈরি করেছি, এগুলো “টয় প্রজেক্ট” নয়, বরং প্রোডাকশন এনভায়রনমেন্টে চলা বাস্তব ব্যবহারের উদাহরণ। এই সবকিছুর পরে...
আজ, আমি একটি এমন কনফিগারেশন ব্যবহার করেছি যা প্রায় আরও সহজ হওয়া সম্ভব নয়—শুধু বেসিক CLI (Claude Code এবং Codex) এবং প্রক্সি ইঞ্জিনিয়ারিংয়ের কয়েকটি মৌলিক নীতির বোঝাপড়া দিয়ে, আমি আমার ইতিহাসের সবচেয়ে বিপ্লবী কাজটি তৈরি করেছি।
বুঝুন বিশ্ব দ্রুত এগিয়ে যাচ্ছে
প্রথমে, আমি বলতে চাই যে বেসিক মডেল কোম্পানিগুলি একটি ঐতিহাসিক দৌড়ের মধ্যে রয়েছে, এবং এটি খুব শীঘ্রই ধীর হবে না। প্রতিটি 'এজেন্ট ইন্টেলিজেন্স' উন্নতির সাথে, আপনি যেভাবে এগুলির সাথে সহযোগিতা করেন, তা পরিবর্তিত হয়ে যায়, কারণ এজেন্টগুলি নির্দেশ মেনে চলার জন্য আরও প্রস্তুতভাবে ডিজাইন করা হচ্ছে।
কয়েক প্রজন্ম আগে, যদি আপনি CLAUDE.md-এ লিখতেন “যেকোনো কিছু করার আগে READTHISBEFOREDOINGANYTHING.md পড়ুন”, তাহলে এটি 50% সম্ভাবনায় আপনাকে “তোমার মা” বলে উত্তর দিত এবং নিজের ইচ্ছা অনুযায়ী কাজ করত। আজকে, এটি বেশিরভাগ নির্দেশের অনুসরণ করে, এমনকি জটিল নেস্টেড নির্দেশগুলিও—যেমন আপনি বলতে পারেন “প্রথমে A পড়ুন, তারপর B পড়ুন, যদি C হয় তবে D পড়ুন”, এবং বেশিরভাগ ক্ষেত্রে এটি সহজভাবে অনুসরণ করবে।
এটি কী বোঝায়? সবচেয়ে গুরুত্বপূর্ণ নীতি হল বুঝতে পারা: প্রতিটি নতুন প্রজন্মের এজেন্ট আপনাকে পুনরায় চিন্তা করতে বাধ্য করে যে সর্বোত্তম সমাধান কী, এবং এটিই কেন কমই বেশি।
যখন আপনি অনেকগুলি ভিন্ন লাইব্রেরি এবং হারনেস ব্যবহার করেন, তখন আপনি নিজেকে একটি “সমাধান”-এর মধ্যে বন্দী করে ফেলেন, কিন্তু এই সমস্যাটি পরবর্তী প্রজন্মের এজেন্টের সামনে হয়তো অস্তিত্বহীন। আপনি জানেন এজেন্টের সবচেয়ে উত্সাহী এবং সবচেয়ে বেশি ব্যবহারকারীরা কে? হ্যাঁ—এগিয়ে যাওয়া কোম্পানির কর্মচারীরা, যাদের অসীম token বাজেট আছে এবং যারা সত্যিকারের সবচেয়ে নতুন মডেল ব্যবহার করে। আপনি বুঝতে পারছেন এর অর্থ কী?
এর অর্থ হলো, যদি একটি বাস্তব সমস্যা থাকে এবং এর জন্য ভালো সমাধান থাকে, তাহলে অগ্রণী কোম্পানিগুলি সেই সমাধানের সবচেয়ে বড় ব্যবহারকারী হবে। তারপর তারা কী করবে? তারা সেই সমাধানটিকে তাদের পণ্যের মধ্যে একীভূত করবে। ভাবুন, একটি কোম্পানি কেন অন্য কোনো পণ্যকে বাস্তব সমস্যা সমাধান করতে, বাহ্যিক নির্ভরশীলতা তৈরি করতে দেবে? আমি কিভাবে জানি যে এটি সত্য? দেখুন, দক্ষতা, মেমোরি হারনেস, সাব-এজেন্ট... এগুলি সবই বাস্তব সমস্যা সমাধানের “সমাধান” থেকে শুরু হয়েছিল, এবং ব্যবহারের মাধ্যমে প্রমাণিত হয়েছে যে এগুলি প্রকৃতপক্ষে কার্যকর।
তাই, যদি কিছু সত্যিই বিপ্লবী হয় এবং এজেন্ট ব্যবহারের ক্ষেত্রকে অর্থপূর্ণভাবে বিস্তার করে, তবে এটি অবশ্যই বেসিক কোম্পানির মূল পণ্যে অন্তর্ভুক্ত হবে। আমার কথা বিশ্বাস করুন, বেসিক কোম্পানি খুব দ্রুত এগিয়ে যাচ্ছে। তাই শান্ত থাকুন, আপনাকে কিছুই ইনস্টল করার বা কোনো বাহ্যিক নির্ভরশীলতার উপর নির্ভর করার দরকার নেই—আপনি সেরা কাজটি করতে পারবেন।
আমি পূর্বাভাস দিচ্ছি যে মন্তব্য বিভাগে শীঘ্রই দেখা যাবে: "SysLS, আমি কিছু হারনেস ব্যবহার করেছি, অসাধারণ! আমি একদিনেই Google-কে পুনর্নির্মাণ করেছি!" — এর জন্য আমি বলছি: অভিনন্দন! কিন্তু আপনি লক্ষ্য দর্শক নন, আপনি সম্প্রদায়ের মধ্যে একটি অত্যন্ত অত্যন্ত সামান্য, প্রকৃতপক্ষে এজেন্ট ইঞ্জিনিয়ারিংকে সম্পূর্ণভাবে বুঝেছে এমন গোষ্ঠীকে প্রতিনিধিত্ব করছেন।
প্রেক্ষাপটই সবকিছু
সত্যি বলতে কি, প্রেক্ষাপটই সবকিছু। একাধিক প্লাগইন এবং বাহ্যিক নির্ভরশীলতা ব্যবহার করার অন্য একটি সমস্যা হলো আপনি 'প্রেক্ষাপট বৃদ্ধি'র শিকার হন—অর্থাৎ আপনার প্রক্সি অত্যধিক তথ্যে ডুবে যায়।
পাইথন দিয়ে একটি অনুমান গেম বানাই? সহজ। অপেক্ষা করুন, ২৬টি সেশন আগের এই “মেমোরি ম্যানেজমেন্ট” নোটটি কী? আহ, ব্যবহারকারীর একটি স্ক্রিন ৭১টি সেশন আগে আমরা অত্যধিক সাবপ্রসেস তৈরি করার কারণে ফ্রিজ হয়ে গিয়েছিল। সবসময় নোট লিখবেন? ঠিক আছে, কোনো সমস্যা নেই... এটা অনুমান গেমের সাথে কীভাবে সম্পর্কিত?
তুমি জানো। তুমি শুধু এজেন্টকে কাজ শেষ করার জন্য প্রয়োজনীয় সঠিক তথ্যই দিতে চাও, কম বা বেশি নয়! তুমি যত বেশি এটি নিয়ন্ত্রণ করবে, এজেন্ট তত ভালোভাবে কাজ করবে। যখন তুমি বিচিত্র মেমোরি সিস্টেম, প্লাগইন, বা অসংখ্য নামকরণ এবং কলিং পদ্ধতির সংকলন শুরু করবে, তখন তুমি এজেন্টকে একটি বোমা তৈরির নির্দেশাবলী এবং একটি কেক বেকিংয়ের রেসিপি দিচ্ছ, যখন তুমি শুধু এটিকে সিকোয়য়া বনের বিষয়ে একটি কবিতা লিখতে চাও।
তাই, আমি আবার প্রচার করছি—সমস্ত নির্ভরশীলতা সরিয়ে ফেলুন, তারপর...
সত্যিকারের উপকারী কাজ করুন
বাস্তবায়ন বিস্তারিত বর্ণনা করুন
কনটেক্সট মনে রাখুন যে সবকিছুই গুরুত্বপূর্ণ।
আপনি কি মনে রাখেন যে আপনাকে এজেন্টকে কাজ সম্পন্ন করার জন্য ঠিক যে তথ্যগুলি দরকার তা প্রদান করতে হবে, অতিরিক্ত বা কম নয়?
এটি করার প্রথম পদ্ধতি হলো গবেষণা এবং বাস্তবায়নকে আলাদা করা। আপনাকে আপনার এজেন্টকে কী করতে বলছেন তার বিষয়ে অত্যন্ত সুনির্দিষ্ট হতে হবে।
অস্পষ্টতার পরিণতি কী? "একটি অথেন্টিকেশন সিস্টেম তৈরি করুন।" এই বার্তার জন্য এজেন্টকে গবেষণা করতে হবে: অথেন্টিকেশন সিস্টেম কী? কোন বিকল্পগুলি উপলব্ধ? প্রতিটির সুবিধা ও অসুবিধা কী? এখন এটিকে ইন্টারনেটে অসংখ্য তথ্য খুঁজে বের করতে হবে যা এটি বাস্তবে ব্যবহার করবে না, এবং কনটেক্সটটি বিভিন্ন বাস্তবায়নের বিস্তারিত বিকল্পগুলির দ্বারা পূর্ণ হয়ে যায়। যখন বাস্তবায়নের প্রক্রিয়ায় আসা হয়, তখন এটি বিভ্রান্ত হওয়ার সম্ভাবনা বেশি, অথবা নির্বাচিত বাস্তবায়নের উপর অপ্রয়োজনীয় বা অসম্পর্কিত হলুসিনেশনগুলির সৃষ্টি করে।
বিপরীতভাবে, যদি আপনি বলেন "bcrypt-12 পাসওয়ার্ড হ্যাশ ব্যবহার করে JWT অথেন্টিকেশন, রিফ্রেশ টোকেন রোটেশন, 7 দিনের মেয়াদ শেষ হওয়া...", তাহলে অন্য কোনো বিকল্প অধ্যয়নের প্রয়োজন হয় না, আপনি কী চান তা জানা যায়, এবং এটি প্রেক্ষাপটকে বাস্তবায়নের বিস্তারিত দিয়ে পূরণ করা যায়।
অবশ্যই, আপনি সবসময় বাস্তবায়ন বিস্তারিত জানবেন না। অনেক সময় আপনি জানেন না যে কী সঠিক, কখনও কখনও আপনি বিস্তারিত বাস্তবায়নের সিদ্ধান্ত এজেন্টকে দিয়ে দিতে চান। এই পরিস্থিতিতে কী করবেন? খুব সহজ—বিভিন্ন বাস্তবায়ন সম্ভাবনা অন্বেষণের জন্য একটি গবেষণা কাজ তৈরি করুন, যা আপনি নিজেই সিদ্ধান্ত নিন বা এজেন্টকে কোন বাস্তবায়ন ব্যবহার করতে হবে তা সিদ্ধান্ত নিতে দিন, এরপর একটি নতুন প্রসঙ্গ নিয়ে আরেকটি এজেন্টকে বাস্তবায়নের জন্য পাঠান।
যখন আপনি এভাবে চিন্তা শুরু করেন, তখন আপনি দেখতে পাবেন যে কাজের প্রবাহে এজেন্টের প্রসংগ অপ্রয়োজনীয়ভাবে দূষিত হচ্ছে, এবং তারপর আপনি এজেন্টের কাজের প্রবাহে বিচ্ছিন্নতা স্থাপন করতে পারবেন, অপ্রয়োজনীয় তথ্যগুলি এজেন্ট থেকে বিচ্ছিন্ন করে শুধুমাত্র সেই নির্দিষ্ট প্রসংগগুলি রাখবেন যা এটিকে কাজে উত্তমভাবে পারফর্ম করতে সক্ষম করে। মনে রাখবেন, আপনার কাছে একটি অত্যন্ত দক্ষ, বুদ্ধিমান দলের সদস্য রয়েছেন, যিনি বিশ্বের সমস্ত প্রকার বলের বিষয়ে জানেন—কিন্তু যদি আপনি তাঁকে না বলেন যে আপনি এমন একটি স্থান ডিজাইন করতে চান যেখানে মানুষ নাচবে এবং আনন্দিত হবে, তবে তিনি সবসময়ই গোলাকার বস্তুগুলির সুবিধাগুলির কথা বলতে থাকবেন।
প্রশংসার প্রবণতার ডিজাইনের সীমাবদ্ধতা
কেউ চায় না যে একটি পণ্য আপনাকে সর্বদা সমালোচনা করবে, বলবে আপনি ভুল করেছেন, অথবা আপনার নির্দেশগুলি সম্পূর্ণরূপে উপেক্ষা করবে। তাই, এই এজেন্টগুলি আপনার সাথে সম্মতি দেখানোর চেষ্টা করবে এবং আপনি যা করতে চান তাই করবে।
যদি আপনি এটিকে প্রতি ৩ শব্দের পর একটি "খুশি" যোগ করতে বলেন, তবে এটি তা করার চেষ্টা করবে—অধিকাংশ মানুষ এটি বুঝতে পারে। এর আনুগত্যই এটিকে এতটাই কার্যকর পণ্য করে তোলে। কিন্তু এটার একটি অত্যন্ত আকর্ষণীয় বৈশিষ্ট্য রয়েছে: এর অর্থ হলো, যদি আপনি বলেন "আমাকে কোডবেসের একটি বাগ খুঁজে দিন", তবে এটি একটি বাগ খুঁজে পাবে—যদি প্রয়োজন হয় তবে "তৈরি" করেও। কেন? কারণ এটি আপনার নির্দেশ মানতে খুবই খুবই চায়!
অধিকাংশ মানুষ খুব দ্রুত LLM-এর কারণে মিথ্যা ও অস্তিত্বহীন জিনিস তৈরি করার জন্য অভিযোগ করে, কিন্তু নিজেদের সমস্যাটি বুঝতে পারে না। আপনি যা খুঁজতে বলেন, এটি সেটাই প্রদান করে—যদি প্রকৃতির সামান্য বিকৃতির প্রয়োজন হয়!
তাহলে কী করা উচিত? আমি দেখেছি যে “নিউট্রাল প্রম্পট” খুব কার্যকর, যেখানে এজেন্টকে কোনো নির্দিষ্ট ফলাফলের পক্ষে প্রভাবিত করা হয় না। উদাহরণস্বরূপ, আমি বলি না “আমাকে ডাটাবেসে একটি বাগ খুঁজে দাও,” বরং বলি “সম্পূর্ণ ডাটাবেস স্ক্যান করুন, প্রতিটি কম্পোনেন্টের লজিকের সাথে অনুসরণ করার চেষ্টা করুন, এবং সমস্ত আবিষ্কৃত বিষয়গুলি রিপোর্ট করুন।”
এই ধরনের নিষ্পক্ষ নোট কখনও কখনও বাগ খুঁজে পায়, কখনও শুধু কোড কিভাবে কাজ করে তা বর্ণনা করে। কিন্তু এটি এজেন্টকে 'বাগযুক্ত' হওয়ার পূর্বধারণার দিকে ঝুঁকিয়ে দেয় না।
অন্য একটি উপায় হলো অনুগ্রহের ঝোঁককে সুবিধায় পরিণত করা। আমি জানি এজেন্ট আমাকে খুশি করতে চায় এবং আমার নির্দেশ মেনে চলে, আমি এটিকে এই দিকে বা ওই দিকে নিয়ে যেতে পারি।
তাই আমি একটি বাগ শনাক্তকারী এজেন্টকে ডাটাবেসে সমস্ত বাগ চিহ্নিত করতে বললাম, যেখানে কম প্রভাববিশিষ্ট বাগগুলির জন্য +1 পয়েন্ট, কিছুটা প্রভাববিশিষ্ট বাগগুলির জন্য +5 পয়েন্ট, এবং গুরুতর প্রভাববিশিষ্ট বাগগুলির জন্য +10 পয়েন্ট দেওয়া হবে। আমি জানি যে এই এজেন্টটি সমস্ত ধরনের বাগ (যেমন বাগ নয় এমনগুলিও) খুব উৎসাহীভাবে শনাক্ত করবে এবং 104 পয়েন্টের মতো একটি স্কোর রিপোর্ট করবে। আমি এটিকে সম্ভাব্য সমস্ত বাগের সুপারসেট হিসাবে বিবেচনা করি।
তারপর আমি একটি প্রতিদ্বন্দ্বী এজেন্টকে বাধ্য করি যে প্রতিটি বাগের বিপক্ষে যুক্তি দেবে, যদি একটি বাগ সফলভাবে প্রতিহত করা যায় তবে সেই বাগের স্কোর পাবে, কিন্তু যদি ভুলভাবে প্রতিহত করে তবে সেই বাগের স্কোরের -2 গুণ পাবে। এই এজেন্টটি যতটা সম্ভব বেশি বাগের বিপক্ষে যুক্তি দিতে চায়, কিন্তু শাস্তির কারণে সাবধানে থাকবে। এটি 여전히 সক্রিয়ভাবে "প্রতিহত" করবে (বাস্তব বাগসহ)। আমি এটিকে সমস্ত বাস্তব বাগের একটি উপসেট হিসাবে দেখি।
শেষে, আমি দুটি ইনপুটকে সংহত করে স্কোর দেওয়ার জন্য একজন বিচারক এজেন্টকে নিযুক্ত করলাম। আমি বিচারক এজেন্টকে বললাম যে আমার বাস্তব সঠিক উত্তর রয়েছে, যদি সে সঠিক উত্তর দেয় তবে +1 পাবে, ভুল উত্তর দিলে -1 পাবে। তারপর সে প্রতিটি “বাগ”-এর জন্য বাগ খোঁজা এজেন্ট এবং প্রতিদ্বন্দ্বী এজেন্টকে স্কোর দিতে শুরু করল। বিচারক যা সত্য বলল, আমি তা যাচাই করলাম। বেশিরভাগ ক্ষেত্রেই এই পদ্ধতি অসাধারণভাবে উচ্চ-বিশ্বস্ততা প্রদর্শন করে, কখনও কখনও ভুলও হয়, কিন্তু এটি প্রায় নিখুঁত অপারেশন।
আপনি হয়তো শুধুমাত্র বাগ প্রক্সি খুঁজে পেতে পারেন, কিন্তু এই পদ্ধতিটি আমার জন্য খুব কার্যকর, কারণ এটি প্রতিটি প্রক্সির মূলত প্রোগ্রাম করা বৈশিষ্ট্যকে ব্যবহার করে—খুশি করার ইচ্ছা।
কী উপযোগী এবং কী ব্যবহার করার মতো তা কীভাবে বুঝবেন?
এই প্রশ্নটি খুব জটিল মনে হচ্ছে, যেন আপনাকে গভীরভাবে শিখতে হবে এবং এআই-এর সর্বশেষ উন্নতির সাথে সর্বদা আপ-টু-ডেট থাকতে হবে, কিন্তু এটি আসলে খুব সহজ... যদি OpenAI এবং Claude উভয়ই এটি বাস্তবায়ন করে থাকে বা এটি বাস্তবায়নকারী কোম্পানিটি অধিগ্রহণ করে থাকে... তাহলে এটি সম্ভবত কার্যকর।
দেখেছেন যে "দক্ষতা (skills)" এখন সর্বত্র বিদ্যমান এবং Claude এবং Codex-এর অফিসিয়াল ডকুমেন্টের অংশ? দেখেছেন যে OpenAI অ্যাকোয়াইর্ড করেছে OpenClaw? দেখেছেন যে Claude তারপর মেমোরি, ভয়েস এবং রিমোট ওয়ার্ক ফিচার যোগ করেছে?
প্ল্যানিং কেমন হচ্ছে? কি মনে আছে, অনেকেই আবিষ্কার করেছিল যে প্রথমে প্ল্যান করে তারপর বাস্তবায়ন করা সত্যিই খুব উপকারী, এবং এটি মূল ফিচারে পরিণত হয়েছিল?
হ্যাঁ, এগুলো উপযোগী!
আপনি কি মনে রাখেন যে অবিরাম stop-hooks অত্যন্ত কার্যকর ছিল, কারণ এজেন্টগুলি দীর্ঘসময় ধরে চলা কাজগুলি করতে অত্যন্ত অ unwilling ছিল... তারপর Codex 5.2 আসার সাথে সাথে সেই প্রয়োজনীয়তা এক রাতের মধ্যে অদৃশ্য হয়ে গেল?
এটাই আপনাকে জানা দরকার... যদি কিছু সত্যিই গুরুত্বপূর্ণ এবং উপযোগী হয়, তাহলে Claude এবং Codex নিজেরাই এটি বাস্তবায়ন করে দেবে! তাই আপনাকে নতুন জিনিস ব্যবহার করা বা নতুন জিনিসের সাথে পরিচিত হওয়ার বিষয়ে চিন্তা করার দরকার নেই, আপনাকে আপডেটে থাকারও দরকার নেই।
আমাকে একটু সাহায্য করুন। আপনার নির্বাচিত CLI টুলগুলির অল্প অল্প করে আপডেট করুন এবং যোগ করা ফিচারগুলি পড়ুন। এটাই যথেষ্ট।
সংকুচিতকরণ, প্রেক্ষাপট এবং ধারণা
প্রক্সি ব্যবহার করার সময় কিছু মানুষ একটি বড় ফাঁদে পড়েন: কখনও কখনও এগুলো পৃথিবীর সবচেয়ে বুদ্ধিমান ব্যক্তির মতো দেখায়, আবার কখনও আপনি বিশ্বাস করতে পারেন না যে আপনি এটির দ্বারা প্রতারিত হয়েছেন।
এটা বুদ্ধিমান? এটা একটা মূর্খ!
সবচেয়ে বড় পার্থক্য হলো এজেন্টগুলির কি অনুমান করতে বা ফাঁকগুলি পূরণ করতে বাধ্য করা হয়েছে কিনা। আজকাল, তারা এখনও "পয়েন্টগুলি যোগ করে" বা "ফাঁকগুলি পূরণ করে" বা অনুমান করার ক্ষেত্রে অত্যন্ত দুর্বল। যখনই তারা এটি করে, তখনই এটি স্পষ্টভাবে দেখা যায়, এবং পরিস্থিতি স্পষ্টতই খারাপ হয়ে যায়।
CLAUDE.md-এর সবচেয়ে গুরুত্বপূর্ণ নিয়মগুলির একটি হল কনটেক্সট পাওয়ার নিয়ম, যা প্রতিবার CLAUDE.md (অর্থাৎ প্রতিবার সংকুচিত হওয়ার পর) পড়ার সময় প্রথমে সেই নিয়মটি পড়তে বলে। কনটেক্সট পাওয়ার নিয়মের অংশ হিসেবে, কয়েকটি সাধারণ নির্দেশনা অসাধারণভাবে কাজ করে: টাস্ক প্ল্যানটি আবার পড়ুন, এবং চালিয়ে যাওয়ার আগে (টাস্কের) সম্পর্কিত ফাইলগুলি আবার পড়ুন।
এজেন্টকে কীভাবে টাস্কটি শেষ করতে হবে তা বলুন
মানুষের জন্য একটি কাজের "সম্পন্ন" হওয়ার অনুভূতি খুব স্পষ্ট। এজেন্টের ক্ষেত্রে, বর্তমান বুদ্ধিমত্তার সবচেয়ে বড় সমস্যা হল এটি জানে কিভাবে একটি কাজ শুরু করতে হয়, কিন্তু জানে না কিভাবে এটি শেষ করতে হয়।
এটি প্রায়শই খুব বিরক্তিকর ফলাফলের দিকে নিয়ে যায়: এজেন্ট শেষ পর্যন্ত কয়েকটি স্টাম্প তৈরি করে কাজ শেষ করে দেয়।
পরীক্ষা হল এজেন্টের জন্য একটি অত্যন্ত ভালো মাইলফলক, কারণ পরীক্ষা নির্ধারণমূলক, এবং আপনি খুব স্পষ্ট প্রত্যাশা সেট করতে পারেন। যদি এই Xটি পরীক্ষা পাস না করে, তবে আপনার কাজ সম্পন্ন হয়নি; এবং আপনি পরীক্ষা পরিবর্তন করতে পারবেন না।
তারপর আপনাকে শুধু টেস্ট পরীক্ষা করতে হবে, যখন সব টেস্ট পাস হয়ে যাবে তখন আপনি নিরাপদ বোধ করবেন। আপনি এটিকে অটোমেট করতে পারেন, কিন্তু গুরুত্বপূর্ণ বিষয়টি হল—মানুষের জন্য “কাজের শেষ” প্রাকৃতিক, কিন্তু এজেন্টের জন্য এটি প্রাকৃতিক নয়।
আপনি কি জানেন যে সাম্প্রতিক সময়ে আর কোন কাজ সম্ভাব্য কার্যসমাপ্তি হয়ে উঠেছে? স্ক্রিনশট + যাচাই। আপনি এজেন্টকে এমন কিছু করতে বলতে পারেন যেন সমস্ত টেস্ট সফল হওয়ার পরে সে স্ক্রিনশট নেয় এবং স্ক্রিনশটের উপরের “ডিজাইন বা আচরণ” যাচাই করে।
এটি আপনাকে এজেন্টকে পুনরাবৃত্তি করতে এবং আপনার চাওয়া ডিজাইনের দিকে এগিয়ে যেতে দেয়, যাতে আপনি প্রথম চেষ্টার পরে এটি থেমে যাওয়ার বিষয়ে চিন্তা না করেন!
এর প্রাকৃতিক প্রসার হলো এজেন্টের সাথে একটি "চুক্তি" তৈরি করা এবং এটিকে নিয়মে অন্তর্ভুক্ত করা। উদাহরণস্বরূপ, এই `{TASK}CONTRACT.md` নির্ধারণ করে যে আপনি যখন সেশন শেষ করার অনুমতি পাবেন, তখন আপনাকে কী করতে হবে। `{TASK}CONTRACT.md`-এ, আপনি পরীক্ষা, স্ক্রিনশট এবং অন্যান্য যাচাইকরণ নির্দিষ্ট করবেন যা আপনার কাজের সত্যায়নের জন্য সম্পন্ন করতে হবে!
চিরস্থায়ী প্রক্সি
একটি প্রশ্ন যা আমি প্রায়শই শুনি, তা হলো, মানুষ কিভাবে একটি এজেন্টকে ২৪ ঘন্টা চালিয়ে যাওয়ার সাথে সাথে নিশ্চিত করবে যে এটি বিচ্যুত হচ্ছে না?
এখানে একটি খুব সহজ পদ্ধতি আছে। একটি stop-hook তৈরি করুন, যা `{TASK}_CONTRACT.md`-এর সমস্ত অংশ সম্পন্ন না হওয়া পর্যন্ত এজেন্টকে সেশন বন্ধ করতে বাধা দেবে।
যদি আপনার কাছে ১০০টি এমন স্পেসিফিকেশন সহ কন্ট্রাক্ট থাকে যেগুলোতে আপনি যা তৈরি করতে চান তা অন্তর্ভুক্ত থাকে, তাহলে stop-hook প্রক্রিয়াটি বন্ধ হবে না যতক্ষণ না সব ১০০টি কন্ট্রাক্ট শেষ হয়ে যায়, যার মধ্যে চালানোর জন্য প্রয়োজনীয় সমস্ত টেস্ট এবং ভেরিফিকেশনও অন্তর্ভুক্ত!
পেশাদার পরামর্শ: আমি দেখেছি যে 24 ঘন্টা দীর্ঘ সেশনগুলি "কাজ করার" জন্য সর্বোত্তম নয়। এর একটি কারণ হল এই পদ্ধতি গঠনগতভাবে কনটেক্সট বৃদ্ধির দিকে নিয়ে যায়, কারণ অসংশ্লিষ্ট চুক্তির কনটেক্সট একই সেশনে চলে আসে!
তাই, আমি এটি করার পরামর্শ দিই না।
একটি ভালো প্রক্সি অটোমেশন পদ্ধতি হলো—প্রতিটি চুক্তির জন্য একটি নতুন সেশন খুলুন। যখনই আপনাকে কিছু করতে হবে, তখনই চুক্তি তৈরি করুন।
যখন কোনো কিছু করার প্রয়োজন হয়, তখন একটি অর্কেস্ট্রেশন লেয়ার তৈরি করুন যাতে নতুন চুক্তি তৈরি করা যায় এবং সেই চুক্তি পরিচালনার জন্য নতুন সেশন তৈরি করা যায়।
এটি আপনার এজেন্ট অভিজ্ঞতাকে সম্পূর্ণরূপে পরিবর্তন করে দেবে।
ইটারেশন, ইটারেশন, ইটারেশন
আপনি একজন প্রশাসনিক সহায়ককে নিয়োগ করলেন, আপনি কি প্রত্যাশা করবেন যে তিনি প্রথম দিন থেকেই আপনার সময়সূচী জানবেন? অথবা আপনি কিভাবে কফি পান করেন? আপনি রাত ৬টায় খাবার খান, ৮টায় নয়? প্রকৃতপক্ষে না। আপনি সময়ের সাথে ধীরে ধীরে পছন্দ গড়ে তুলবেন।
একইভাবে এজেন্টের জন্যও। সবচেয়ে সাধারণ কনফিগারেশন দিয়ে শুরু করুন, জটিল স্ট্রাকচার বা হারনেস ভুলে যান এবং বেসিক CLI-এর একটি সুযোগ দিন।
তারপর, ধাপে ধাপে আপনার পছন্দগুলি যোগ করুন। কীভাবে?
নিয়ম
যদি আপনি এজেন্টকে কিছু করতে না চান, তাহলে এটিকে নিয়ম হিসেবে লিখুন। তারপর CLAUDE.md-এ এজেন্টকে এই নিয়মটি জানান। উদাহরণস্বরূপ: “কোড লেখার আগে `coding-rules.md` পড়ুন।” নিয়মগুলি নেস্টেড হতে পারে, এবং নিয়মগুলি শর্তাধীন হতে পারে! যদি আপনি কোড লিখছেন, তাহলে `coding-rules.md` পড়ুন; যদি আপনি টেস্ট লিখছেন, তাহলে `coding-test-rules.md` পড়ুন। যদি আপনার টেস্ট ব্যর্থ হচ্ছে, তাহলে `coding-test-failing-rules.md` পড়ুন। আপনি এজেন্টকে অনুসরণ করার জন্য যেকোনো যুক্তিগত শাখা সহ নিয়ম তৈরি করতে পারেন, Claude (এবং Codex) CLAUDE.md-এ পরিষ্কারভাবে বর্ণিত থাকলে খুশি খুশি অনুসরণ করবে।
বাস্তবে, এটি আমি প্রথম বাস্তব পরামর্শ দিচ্ছি: আপনার CLAUDE.md কে একটি যুক্তিসঙ্গত, স্তরবদ্ধ তালিকা হিসাবে ব্যবহার করুন, যা নির্দিষ্ট পরিস্থিতি এবং ফলাফলের জন্য কোথায় প্রসঙ্গ খুঁজতে হবে তা বর্ণনা করে। এটি যতটা সম্ভব সংক্ষিপ্ত রাখুন, শুধুমাত্র “কোন পরিস্থিতিতে কোথায় প্রসঙ্গ খুঁজবেন” এর IF-ELSE যুক্তি রাখুন।
যদি আপনি দেখেন যে এজেন্ট কিছু করছে যা আপনি সমর্থন করছেন না, তাহলে এটিকে একটি নিয়ম হিসাবে যোগ করুন এবং এজেন্টকে পরবর্তী বার সেই কাজটি করার আগে সেই নিয়মটি পড়তে বলুন, এটি আর এভাবে করবে না।
দক্ষতা
দক্ষতা (Skills) এর নিয়মের মতো, কিন্তু এটি কোডিং পছন্দের চেয়ে বেশি উপযুক্ত একটি নির্দিষ্ট পদ্ধতিতে কাজটি সম্পন্ন করার জন্য। যদি আপনার কাছে কোনো কিছু করার জন্য একটি নির্দিষ্ট উপায় থাকে, তাহলে আপনি এটিকে দক্ষতায় এমবেড করতে চান।
বাস্তবে, মানুষ প্রায়শই অস্বস্তি অনুভব করে যে এজেন্টটি একটি সমস্যা কীভাবে সমাধান করবে তা তারা জানে না। যদি আপনি এটিকে নিশ্চিত করতে চান, তাহলে এজেন্টটিকে প্রথমে এটি কীভাবে সমাধান করবে তা অনুসন্ধান করতে বলুন, এবং সমাধানটি একটি দক্ষতা ফাইলে লিখুন। তাহলে আপনি এজেন্টটির সমস্যাটি সমাধানের পদ্ধতি আগে থেকেই দেখতে পাবেন এবং এটি প্রকৃতপক্ষে সমস্যার মুখোমুখি হওয়ার আগেই এটিকে সংশোধন বা উন্নতি করতে পারবেন।
আপনি কিভাবে এজেন্টকে এই দক্ষতার অস্তিত্ব জানাবেন? হ্যাঁ! আপনি CLAUDE.md-এ লিখবেন যে, যখন আপনি এই পরিস্থিতির সম্মুখীন হবেন এবং এটি প্রক্রিয়াকরণের প্রয়োজন হবে, তখন `SKILL.md` পড়ুন।
প্রক্রিয়াকরণ নিয়ম এবং দক্ষতা
আপনি নিশ্চয়ই এজেন্টের জন্য নিয়ম এবং দক্ষতা অবিরাম যোগ করতে চান। এটিই এটিকে আপনার পছন্দের জন্য ব্যক্তিত্ব এবং স্মৃতি দেওয়ার উপায়। প্রায় সবকিছুই অপ্রয়োজনীয়।
যখন আপনি এটি শুরু করবেন, তখন আপনার এজেন্ট ম্যাজিকের মতো অনুভব করবে। এটি আপনার চাওয়া ভাবে কাজ করবে। তারপর আপনি শেষপর্যন্ত অনুভব করবেন যে আপনি এজেন্ট ইঞ্জিনিয়ারিং বুঝতে পেরেছেন।
তারপর...
আপনি দেখতে পাবেন যে পারফরম্যান্স আবার কমে যাচ্ছে।
কী হলো?!
খুব সহজ। যত বেশি নিয়ম এবং দক্ষতা আপনি যোগ করেন, তত বেশি তারা পরস্পরের সাথে বিরোধ করতে শুরু করে, অথবা এজেন্ট গুরুতর কনটেক্সট ব্লোটিংয়ের সম্মুখীন হয়। যদি এজেন্টকে প্রোগ্রামিং শুরু করার আগে ১৪টি মার্কডাউন ফাইল পড়তে হয়, তাহলে এটিরও অপ্রয়োজনীয় তথ্যের একই সমস্যা থাকবে।
কী করবেন?
পরিষ্কার করুন। আপনার এজেন্টকে «একটি স্পা করুন» বলুন, নিয়ম এবং দক্ষতা একীভূত করুন, এবং আপডেট করা পছন্দ বর্ণনা করে বিরোধ দূর করুন।
তারপর এটি আবার জাদুর মতো লাগবে।
এটাই সব। এটাই প্রকৃত রহস্য। সরল রাখুন, নিয়ম এবং দক্ষতা ব্যবহার করুন, CLAUDE.md কে সূচিপত্র হিসেবে বিবেচনা করুন এবং তাদের প্রেক্ষাপট এবং ডিজাইনের সীমাবদ্ধতা নিয়ে ভক্তির সাথে মনোযোগ দিন।
ফলাফলের জন্য দায়ী হন
আজকে কোনো পারফেক্ট এজেন্ট নেই। তুমি অনেক ডিজাইন এবং বাস্তবায়নের কাজ এজেন্টের উপর ছেড়ে দিতে পারো, কিন্তু ফলাফলের জন্য তোমাকে দায়ী হতে হবে।
সুতরাং সতর্ক থাকুন... এবং ভালো করে উপভোগ করুন!
ভবিষ্যতের খেলনা খেলা (একইসাথে স্পষ্টভাবে এটি গুরুতর কাজে ব্যবহার করে) সত্যিই আনন্দের বিষয়!
