Claude Code-এর সাবএজেন্ট: প্রসঙ্গের বিচ্ছিন্নতা, অর্কেস্ট্রেটর ও রিভিউয়ার, কখন লাগে না
Claude Code সাবএজেন্ট হলো আলাদা এজেন্ট-ইনস্ট্যান্স, যার নিজস্ব কনটেক্সট উইন্ডো, সিস্টেম প্রম্পট ও টুলের সেট আছে: প্রধান এজেন্ট তাকে একটি কাজ দেয়, আর ফিরে পায় শুধু চূড়ান্ত উত্তর। এগুলো লাগে মূল কনটেক্সটকে অনুসন্ধান ও লগ দিয়ে ভরা থেকে বাঁচাতে, যাচাইকে বাস্তবায়ন থেকে আলাদা করতে এবং স্বাধীন কাজ সমান্তরালে চালাতে; Markdown ফাইলে .claude/agents ফোল্ডারে বর্ণনা করা হয়।
Claude Code সাবএজেন্ট কী
সাবএজেন্ট হলো প্রধান এজেন্টের চালু করা আরেকটি এজেন্ট-ইনস্ট্যান্স, একটি আলাদা কাজের জন্য। তার নিজস্ব কনটেক্সট উইন্ডো, নিজস্ব সিস্টেম প্রম্পট এবং অনুমোদিত টুলের তালিকা আছে। প্রধান এজেন্ট তাকে কাজের বিবরণ দেয়, সাবএজেন্ট নিজে কাজ করে, ফাইল পড়ে, কমান্ড চালায়, এবং ফেরত দেয় শুধু চূড়ান্ত বার্তা।
মূল শব্দ এখানে বিচ্ছিন্নতা। সাবএজেন্ট পথে যা পড়েছে, অর্থাৎ দশটি ফাইল, টেস্টের দীর্ঘ আউটপুট, ভুল অনুমান, সবই তার কনটেক্সটে থাকে এবং মূল সেশনে পৌঁছায় না। প্রধান এজেন্ট দেখে একটি ছোট ফলাফল: «ত্রুটি আছে ফাংশন X-এ, কারণ এই, প্রভাবিত জায়গা তিনটি।»
Claude Code-এর সাবএজেন্ট মাল্টি-এজেন্ট সিস্টেমের একটি বিশেষ রূপ। একটি চক্রের «ভাবো — করো — যাচাই করো»-র বদলে একটি গ্রাফ আসে, যার প্রতিটি নোডের নিজস্ব ভূমিকা ও দায়িত্ব আছে।
প্রসঙ্গের বিচ্ছিন্নতা কেন দরকার
কনটেক্সট উইন্ডো এজেন্টের প্রধান সম্পদ। সেখানে একসঙ্গে থাকে CLAUDE.md-এর নির্দেশনা, কথোপকথনের ইতিহাস, পড়া কোড ও কমান্ডের আউটপুট। এজেন্ট যখন আধঘণ্টা ধরে একটি বাগের কারণ খোঁজে, কনটেক্সট ভরে যায় এমন ফাইলে যা আসলে অপ্রাসঙ্গিক, এবং এমন লগে যার কেবল একটি লাইন কাজের।
পরিণতি তাদের কাছে পরিচিত যারা দীর্ঘ সময় এজেন্টের সঙ্গে কাজ করেছেন: মডেল প্রকল্পের নিয়ম আর ভালো ধরে রাখতে পারে না, বিবরণ গুলিয়ে ফেলে, এবং স্বয়ংক্রিয় সংকোচনে যা জরুরি ছিল তা হারায়। সাবএজেন্ট এটি কাঠামোগতভাবে সমাধান করে: ময়লা কাজ আলাদা কনটেক্সটে হয়, উত্তর দেওয়ার পরে যা বাতিল হয়ে যায়।
- অনুসন্ধান ও গবেষণা। «পেমেন্ট ফাংশনের সব ব্যবহার খুঁজে বের করো এবং বর্ণনা দাও» — সাবএজেন্টের জন্য একটি টিপিক্যাল কাজ।
- শব্দময় যাচাই। টেস্ট চালানো ও ব্যর্থ টেস্টের বিশ্লেষণ সাবএজেন্টকে দিন, ফিরে পান কারণের তালিকা।
- বড় নথি পড়া। শত পাতার স্পেসিফিকেশন দরকার কয়েকটি তথ্যের জন্য — সাবএজেন্ট সেগুলো বের করুক।
সাবএজেন্ট সেট আপ: .claude/agents ফোল্ডার
নিজস্ব সাবএজেন্ট একটি Markdown ফাইল দিয়ে বর্ণনা করা হয়, মাথায় YAML ব্লক সহ। প্রকল্পের ফাইল থাকে রিপোজিটরির .claude/agents/-এ, git-এর মাধ্যমে পুরো দলের কাছে পৌঁছায়; ব্যক্তিগত ফাইল থাকে ~/.claude/agents/-এ এবং আপনার সব প্রকল্পে কাজ করে। সাবএজেন্ট তৈরি ও সম্পাদনা Claude Code-এ /agents কমান্ড দিয়েও করা যায়।
---
name: code-reviewer
description: কোডের পরিবর্তনে ভুল ও প্রকল্পের নিয়ম লঙ্ঘন খোঁজে। কাজ শেষ হলে, কমিটের আগে ব্যবহার করো।
tools: Read, Grep, Glob, Bash
---
তুমি কোড-রিভিউয়ার। কিছু ঠিক করার দরকার নেই।
1. পরিবর্তন দেখো: git diff।
2. প্রতিটি বদলে যুক্তির ভুল, ত্রুটি-হ্যান্ডলিং,
নিরাপত্তা (SQL, আউটপুটের এসকেপিং, গোপন তথ্য) খুঁজে দেখো।
3. AGENTS.md-এর নিয়মের সঙ্গে মিলিয়ে দেখো।
4. মন্তব্যের তালিকা ফেরত দাও: ফাইল, লাইন, সমস্যা, কেন গুরুত্বপূর্ণ।
মন্তব্য না থাকলে তা-ই লেখো।
ফিল্ডগুলোর অর্থ:
| ফিল্ড | উদ্দেশ্য |
|---|---|
name | সাবএজেন্টের নাম, যা দিয়ে তাকে ডাকা হয় |
description | কখন তাকে ব্যবহার করতে হবে। এই লেখা দেখে প্রধান এজেন্ট ঠিক করে কাজটি কাকে দেবে, তাই নির্দিষ্ট লিখুন |
tools | অনুমোদিত টুল। উল্লেখ না করলে সাবএজেন্ট মূল সেশনের টুল উত্তরাধিকার সূত্রে পায় |
model | ঐচ্ছিক: এই সাবএজেন্টের জন্য কোন মডেল ব্যবহার হবে |
ফাইলের মূল অংশ সাবএজেন্টের সিস্টেম প্রম্পট। তার আপনার কথোপকথনের ইতিহাস দেখা হয় না, তাই ভূমিকা ও উত্তরের ফরম্যাট সম্পর্কে যা জানা দরকার, তা প্রম্পটে বা প্রধান এজেন্টের দেওয়া কাজের বিবরণে থাকতে হবে।
সাবএজেন্ট কীভাবে ডাকবেন
প্রধান এজেন্ট নিজে সাবএজেন্ট বাছতে পারে, যদি কাজ তার description-এর সঙ্গে মেলে। তবে স্পষ্টভাবে বলা নির্ভরযোগ্য: «code-reviewer সাবএজেন্ট ব্যবহার করে পরিবর্তনগুলো যাচাই করো»। বর্ণনায় «সক্রিয়ভাবে ব্যবহার করো» লেখা সাবএজেন্টকে আপনার মনে করিয়ে না দিয়েও ডাকার সম্ভাবনা বাড়ায়, কিন্তু নিশ্চয়তা দেয় না।
অনুসন্ধানকারী সাবএজেন্ট
দ্বিতীয় যে ফাইলটি প্রায় প্রতিটি প্রকল্পে রাখা উচিত, তা শুধু-পড়ার অনুসন্ধানকারী। সে কোড নিয়ে প্রশ্নের উত্তর দেয় এবং কিছু বদলায় না।
---
name: explorer
description: কোডবেসে খুঁজে বের করে কোনো কিছু কোথায় এবং কীভাবে আছে। অনেক ফাইল পড়ে সংক্ষিপ্ত উত্তর দরকার হলে ব্যবহার করো।
tools: Read, Grep, Glob
---
তুমি কোড অনুসন্ধান করো এবং কিছু বদলাবে না।
ফেরত দাও: প্রশ্নের সংক্ষিপ্ত উত্তর, যার ওপর ভিত্তি করে উত্তর দিয়েছ সেই ফাইল ও লাইনের তালিকা,
এবং যা যাচাই করা যায়নি।
কাজের শুরুতে এই সাবএজেন্ট বিশেষ কাজে আসে: প্রধান এজেন্ট প্রয়োজনীয় জায়গার একটি মানচিত্র পায়, সব কিছু পড়ে প্রসঙ্গ নষ্ট না করে, এবং তারপর নির্দিষ্ট ফাইল নিয়ে কাজ করে।
অর্কেস্ট্রেটর ও কর্মী: একটি সাধারণ নকশা
সবচেয়ে প্রচলিত মাল্টি-এজেন্ট নকশা: একজন অর্কেস্ট্রেটর এজেন্ট পরিকল্পনা ও সামগ্রিক চিত্র ধরে রাখে, আর নির্দিষ্ট ধাপগুলো কর্মীদের দেয়। অর্কেস্ট্রেটর নিজে পুরো কোড পড়ে না: সে কাজ ভাগ করে, ফলাফল গ্রহণ করে, এবং ঠিক করে পরে কী করা হবে।
- অর্কেস্ট্রেটর কাজটিকে স্বাধীন অংশে ভাগ করে এবং প্রতিটির জন্য একটি স্বয়ংসম্পূর্ণ নির্দেশ লেখে: লক্ষ্য, কোথায় খুঁজতে হবে, কী হলে সম্পন্ন ধরা হবে, কোন ফরম্যাটে ফেরত দিতে হবে।
- কর্মীরা নিজেদের কনটেক্সটে নির্দেশগুলো চালায়।
- অর্কেস্ট্রেটর উত্তরগুলো জড়ো করে, অংশগুলো মিলছে কি না যাচাই করে, এবং পরের ধাপ বা আগের ধাপে ফেরত চালু করে।
এই নকশার দুর্বল জায়গা হস্তান্তর। সাবএজেন্ট শুধু সেটুকুই জানে, যা তাকে লিখে দেওয়া হয়েছে। «যে বাগটা নিয়ে আমরা কথা বলেছিলাম সেটা ঠিক করো» নির্দেশ তার কাছে খালি: সে আলোচনা দেখেনি। ভালো নির্দেশ এমনভাবে পড়তে হয়, যেন এটি একজন নতুন সহকর্মীর জন্য লেখা, যে আজই প্রথমবার রিপোজিটরি খুলেছে।
কর্মী কী ফেরত দেবে
উত্তরের ফরম্যাট আগে থেকে ঠিক করুন: ফাইলের তালিকা, আউটপুট, পাওয়া কারণ, যা যাচাই করা যায়নি। সংক্ষিপ্ত ও কাঠামোবদ্ধ উত্তর অর্কেস্ট্রেটরের প্রসঙ্গ বাঁচায়, আর «যা যাচাই হয়নি» অংশটি ভুল আত্মবিশ্বাস থেকে রক্ষা করে: কর্মীও, যেকোনো এজেন্টের মতো, সাফল্য জানাতে প্রবণ।
আলাদা রিভিউয়ার: বিচারক ও কর্মীকে কেন আলাদা রাখা
যখন একই এজেন্ট কোড লেখে এবং নিজে যাচাই করে, তখন বিচারক ও আসামি একই মাথা। এজেন্ট মনে রাখে সে কী করতে চেয়েছিল এবং কোডে নিজের উদ্দেশ্যটি দেখে, যা লেখা আছে তা নয়। তাছাড়া সে শেষ করতে আগ্রহী: যাচাই একটি আনুষ্ঠানিকতায় পরিণত হয়।
আলাদা কনটেক্সটের রিভিউয়ার এই সমস্যা থেকে মুক্ত। সে সিদ্ধান্তের ইতিহাস জানে না, শুধু diff ও প্রকল্পের নিয়ম দেখে, এবং ফলাফল দেখে তাজা চোখে। এটি জীবন্ত দলের একই নীতি: লেখক নিজের পুল রিকোয়েস্ট অনুমোদন করেন না।
- রিভিউয়ারকে শুধু পড়া ও যাচাই চালানোর টুল দিন, ফাইল বদলানোর অধিকার নয়। তাহলে সে সমস্যার খবর দেওয়ার বদলে চুপচাপ ঠিক করতে শুরু করবে না।
- যাচাইয়ের মানদণ্ড স্পষ্ট লিখুন: কী ভুল ধরা হবে, কোন প্রকল্পের নিয়ম বাধ্যতামূলক।
- মন্তব্যগুলো নিয়ে কী করতে হবে, সেই সিদ্ধান্ত অর্কেস্ট্রেটর বা মানুষের হাতে থাকুক। রিভিউয়ার খুঁজে বের করে, কর্মী ঠিক করে।
রিভিউয়ার যান্ত্রিক যাচাইয়ের বদল নয়। টেস্ট, লিন্টার, টাইপ-চেক নির্ধারক নোড, এগুলো যে কোনো মডেলের চেয়ে নির্ভরযোগ্য। রিভিউয়ার ধরে সেই জিনিস, যা যান্ত্রিকতা দেখে না: ভুল যুক্তি, চুক্তি ভাঙা, অপ্রয়োজনীয় জটিলতা।
সমান্তরালে সাবএজেন্ট চালানো
Claude Code একসঙ্গে কয়েকটি সাবএজেন্ট চালাতে পারে। কাজের অংশগুলো সত্যিই স্বাধীন হলে এটি গতি বাড়ায়: তিনটি মডিউল একসঙ্গে পড়া, পরিবর্তন তিন দিক থেকে যাচাই (নিরাপত্তা, কর্মক্ষমতা, টেস্ট), কয়েকটি উৎস থেকে তথ্য সংগ্রহ।
সমান্তরালতা পড়ার কাজে ভালো চলে, লেখার কাজে খারাপ। দুই কর্মী একই সময়ে একই ফাইল বদলালে তারা একে অপরের বদল মুছে দেয়, এবং কেউ তা জানে না। গ্রাফের ভাষায় এটি একটি ভাগ করা অবস্থা, যার মার্জ-নিয়ম নেই। কার্যকর নিয়মগুলো:
- সমান্তরালে চলে অনুসন্ধান, বিশ্লেষণ, রিভিউ। ক্রমানুসারে চলে একই ফাইলের বদল।
- যদি কর্মীরা তবুও একসঙ্গে লেখে, তাহলে এলাকা ভাগ করুন: প্রত্যেকে শুধু নিজের ফাইলে কাজ করে, অথবা নিজের কপিতে (যেমন আলাদা git worktree-এ)।
- ফলাফল একটি নোড মেলায়, অর্থাৎ অর্কেস্ট্রেটর; কর্মীরা নিজেদের মধ্যে মেলায় না।
কখন সাবএজেন্ট লাগে না
মাল্টি-এজেন্ট নকশার একটি দাম আছে: বেশি টোকেন, বেশি সময়, এবং হস্তান্তরে তথ্য হারানোর আরও জায়গা। Claude Code-এর সাবএজেন্ট সবসময় লাভজনক হয় না।
| পরিস্থিতি | কী বেছে নেবেন |
|---|---|
| দুই-তিনটি ফাইলে ছোট সংশোধন | একটি এজেন্ট: কাজ হস্তান্তর কাজটির চেয়ে দামি |
| ধাপগুলো একে অপরের ও আলোচনার ওপর নির্ভরশীল | একটি এজেন্ট: সাবএজেন্ট কথোপকথনের প্রসঙ্গ দেখে না |
| বড় কোডে কিছু খুঁজে বের করতে হবে | অনুসন্ধানকারী সাবএজেন্ট |
| ফলাফলের স্বাধীন যাচাই দরকার | শুধু-পড়ার রিভিউয়ার সাবএজেন্ট |
| কয়েকটি স্বাধীন অংশ | সমান্তরাল সাবএজেন্ট, বদল আলাদা এলাকায় |
| নির্দেশ অনুযায়ী পুনরাবৃত্ত পদ্ধতি | Skill: নির্দেশ মূল কনটেক্সটে লোড হয়, আলাদা এজেন্ট লাগে না |
গ্রাফ বানানোর আগে কয়েকটি সহজ প্রশ্নের উত্তর দিন: সামগ্রিক লক্ষ্যের মালিক কে, বদল বাতিল ও রোলব্যাক করার ভেটো কার হাতে, সাফল্যের মেট্রিক কী। উত্তর না থাকলে কয়েকটি এজেন্ট শুধু একজনের বিভ্রান্তিকে ছড়িয়ে দেবে।
সাবএজেন্টের সাধারণ ভুল
অস্পষ্ট বর্ণনা
«কোডের সহকারী» বর্ণনা প্রধান এজেন্টকে বলে না কখন তাকে ডাকতে হবে। ট্রিগার লিখুন: «api/ ফোল্ডারে বদলের পরে, কমিটের আগে»।
প্রসঙ্গ ছাড়া নির্দেশ
সাবএজেন্ট পায় কাজ, কিন্তু পথ, সম্পন্নতার মানদণ্ড বা সীমাবদ্ধতা ছাড়া, এবং অর্ধেক সময় যায় অনুমান করতে কী চাওয়া হয়েছে। প্রতিকার একটি নির্দেশের ছাঁচ: লক্ষ্য, ইনপুট, সীমাবদ্ধতা, উত্তরের ফরম্যাট।
অতিরিক্ত অধিকার
অনুসন্ধানকারী ও রিভিউয়ারের ফাইল বদলানোর প্রয়োজন নেই। tools-এর সীমা হলো ভূমিকাকে নির্দেশের বদলে যান্ত্রিক করার সস্তা উপায়।
যাচাই ছাড়া রিপোর্টে বিশ্বাস
সাবএজেন্টের উত্তরে «সব টেস্ট পাস করেছে» একটি দাবি, তথ্য নয়। অর্কেস্ট্রেটরকে যাচাইযোগ্য জিনিসের ওপর নির্ভর করতে হবে: কমান্ডের আউটপুট, রিটার্ন কোড, নির্দিষ্ট লাইন।
সংক্ষেপে
Claude Code-এর সাবএজেন্ট তিনটি কাজের জন্য: মূল কনটেক্সট পরিষ্কার রাখা, যাচাইকে বাস্তবায়ন থেকে আলাদা করা এবং স্বাধীন কাজ সমান্তরালে চালানো। এগুলো বর্ণনা করা হয় .claude/agents/-এ ছোট Markdown ফাইলে, আর তাদের কাজের মান প্রায় পুরোটাই নির্ভর করে ভূমিকার বর্ণনা, টুলের সেট এবং নির্দেশ কতটা স্বয়ংসম্পূর্ণ তার ওপর। কাজ ছোট হলে বা কথোপকথনের সঙ্গে ঘনিষ্ঠভাবে জড়িত হলে এখনো একটি এজেন্টই ভালো। একটি চক্র থেকে নোড, সংযোগ ও ভাগ করা অবস্থার একটি ব্যবস্থায় যাওয়ার বিষয়টি কোর্সে বাস্তব উদাহরণে বিস্তারিত দেখানো হয়েছে।
সাধারণ প্রশ্ন
সাবএজেন্ট কি আমার Claude Code-এর কথোপকথনের ইতিহাস দেখে?
না। সাবএজেন্ট পায় তার নিজের সিস্টেম প্রম্পট এবং প্রধান এজেন্টের দেওয়া কাজের বিবরণ। তার জানা দরকার সবকিছু সেই বিবরণে থাকতে হবে।
সাবএজেন্ট কি আরেকটি সাবএজেন্ট চালাতে পারে?
না, Claude Code-এর সাবএজেন্ট নিজেরা সাবএজেন্ট তৈরি করে না। কাজ ভাগ করার দায়িত্ব প্রধান অর্কেস্ট্রেটর এজেন্টের।
সাবএজেন্ট ও Skill-এর পার্থক্য কী?
Skill হলো একটি নির্দেশ, যা প্রয়োজন হলে বর্তমান এজেন্টের কনটেক্সটে লোড হয়। সাবএজেন্ট হলো আলাদা কনটেক্সটের আলাদা এজেন্ট, যে শুধু ফলাফল ফেরত দেয়।
সাবএজেন্ট কি বেশি টোকেন খরচ করে?
সাধারণত হ্যাঁ: প্রতিটি সাবএজেন্ট নিজের কনটেক্সটে প্রয়োজনীয় ফাইল আবার পড়ে। তবে প্রধান কনটেক্সট ছোট থাকে, এবং দীর্ঘ কাজে এটি প্রায়ই পুষিয়ে যায়।
সাবএজেন্ট কোথায় রাখলে পুরো দল ব্যবহার করতে পারবে?
প্রকল্পের রিপোজিটরির .claude/agents/ ফোল্ডারে: ফাইল git-এ যায় এবং সবার কাছে একইভাবে কাজ করে।
“Harness Engineering: инженерия надёжности AI-агентов” কোর্সে বিষয়টি অনুশীলনসহ বিস্তারিত শেখানো হয়েছে।
কোর্সে যান