এআই এজেন্ট আসলে কী — আর হঠাৎ সবাই এটা নিয়ে এত কথা বলছে কেন?
শেখার ডায়েরি

এআই এজেন্ট আসলে কী — আর হঠাৎ সবাই এটা নিয়ে এত কথা বলছে কেন?

Z
জাহিদ হাসান তন্ময়
২৪ সেপ্টেম্বর, ২০২৬
9 মিনিটের পড়া
🇬🇧 Read in English
|
0 views
অডিও ওভারভিউ ও পডকাস্ট
~১ মিনিট কুইক ওভারভিউ
0%

এআই এজেন্ট আসলে কী — আর হঠাৎ সবাই এটা নিয়ে এত কথা বলছে কেন?
এআই এজেন্ট আসলে কী — আর হঠাৎ সবাই এটা নিয়ে এত কথা বলছে কেন?

ধরুন আপনার প্রজেক্টের একটা bug কিছুতেই ধরা যাচ্ছে না। আপনি ChatGPT-র মতো কোনো চ্যাট টুলে কোডটা পেস্ট করে জিজ্ঞেস করলেন, কী ভুল হচ্ছে। সে ঝরঝরে করে তিন প্যারাগ্রাফ ব্যাখ্যা লিখে দিল। কিন্তু আপনার প্রজেক্ট সে খুলে দেখেনি, টেস্টও চালায়নি। ব্যাখ্যা পড়ে কোড বদলানো, চালিয়ে দেখা, আবার ফেল করলে ফিরে এসে জিজ্ঞেস করা — পুরো খাটনিটা আপনারই।

এবার কল্পনা করুন উল্টোটা। আপনি শুধু বললেন, “এই bug-টা ঠিক করো।” সিস্টেমটা নিজেই প্রজেক্টের ফাইল ঘেঁটে দেখল, সন্দেহজনক জায়গাটা বদলে দিল, টেস্ট চালাল, একটা টেস্ট ফেল করায় আবার কোড ঠিক করল, আর শেষে জানাল কাজ শেষ। এই দ্বিতীয় জিনিসটাকেই বলা হচ্ছে এআই এজেন্ট (AI agent)।

মডেল দুই ক্ষেত্রেই এক হতে পারে। তফাতটা হলো, দ্বিতীয় ক্ষেত্রে মডেলকে কাজ করার সুযোগ দেওয়া হয়েছে, আর সে নিজের কাজের ফল দেখে পরের সিদ্ধান্ত নিচ্ছে।

এআই এজেন্ট কী? সংক্ষিপ্ত উত্তর

এআই এজেন্ট হলো এমন একটা সফটওয়্যার সিস্টেম, যেখানে একটা language model কোনো লক্ষ্য পূরণের জন্য নিজেই ঠিক করে পরের ধাপে কী করবে, API, database, কোড রান করা বা browser-এর মতো tool দিয়ে সেটা করে, ফলাফল যাচাই করে, আর কাজ শেষ না হওয়া পর্যন্ত, অথবা মানুষের সাহায্য দরকার হওয়া পর্যন্ত, এটা চালিয়ে যায়। সাধারণ চ্যাটবট একবার উত্তর দিয়ে থেমে যায়, এজেন্ট লক্ষ্যে না পৌঁছানো পর্যন্ত এগোতে থাকে। মডেল কতটা চালাক তার চেয়েও এই ঘুরতে থাকা loop-টাই দুটোর মূল তফাত।

একটা ভবিষ্যতমুখী ডেভেলপার ডেস্ক, যেখানে একটা জ্বলজ্বলে কাচের গোলক দুটো স্ক্রিনে আলোর সুতো ছড়িয়ে দিচ্ছে
একটা ভবিষ্যতমুখী ডেভেলপার ডেস্ক, যেখানে একটা জ্বলজ্বলে কাচের গোলক দুটো স্ক্রিনে আলোর সুতো ছড়িয়ে দিচ্ছে

ইন্টার্নকে কাজ দেওয়ার মতো করে ভাবুন

অফিসে নতুন ইন্টার্নকে দুভাবে কাজ দেওয়া যায়। এক, প্রতিটা ধাপ লিখে দেওয়া: “এই ফাইলটা খোলো, তৃতীয় কলাম কপি করো, এখানে পেস্ট করো।” দুই, শুধু লক্ষ্য বলা: “তিন সাপ্লায়ারের দাম তুলনা করে কাল সকালের মধ্যে একটা রিপোর্ট দাও।” প্রথমটায় ইন্টার্ন শুধু নির্দেশ মানে, দ্বিতীয়টায় সে নিজে ঠিক করে কোথায় খুঁজবে, কী তুলনা করবে, আর কখন আটকে গিয়ে আপনাকে জিজ্ঞেস করবে। এজেন্ট দ্বিতীয় ধরনের কর্মী; পার্থক্য হলো এই ইন্টার্ন একটা সফটওয়্যার, আর তার হাত-পা হলো আপনার দেওয়া tool। চ্যাটবট এই তুলনায় এমন এক পরামর্শদাতা যে ফোনে বুদ্ধি দেয়, কিন্তু অফিসে আসে না।

ভেতরের loop: চিন্তা, কাজ, ফলাফল দেখা

এজেন্টের ভেতরটা খুলে দেখলে প্রায় সব জায়গায় একই ছোট্ট চক্র পাবেন। মডেল লক্ষ্য আর এ পর্যন্ত যা ঘটেছে তা পড়ে পরের পদক্ষেপ বেছে নেয়। আপনার কোড সেই পদক্ষেপটা চালায় এবং ফলাফল নতুন তথ্য হিসেবে মডেলের হাতে ফিরিয়ে দেয়। মডেল সেটা দেখে আবার সিদ্ধান্ত নেয়।

📊 Architecture DiagramArchitecture Flow
Interactive diagram rendering...
flowchart TD
    A[ব্যবহারকারী লক্ষ্য দেয়] --> B[মডেল পরের ধাপ ঠিক করে]
    B --> C{tool লাগবে?}
    C -->|হ্যাঁ| D[tool চালানো হয়]
    D --> E[ফলাফল মডেলের কাছে ফেরত যায়]
    E --> B
    C -->|না| F[চূড়ান্ত উত্তর]
System architecture specification and node flow: flowchart TD A[ব্যবহারকারী লক্ষ্য দেয়] --> B[মডেল পরের ধাপ ঠিক করে] B --> C{tool লাগবে?} C -->|হ্যাঁ| D[tool চালানো হয়] D --> E[ফলাফল মডেলের কাছে ফেরত যায়] E --> B C -->|না| F[চূড়ান্ত উত্তর]

Flow-এর সারসংক্ষেপ: ব্যবহারকারী লক্ষ্য দেয়, মডেল পরের ধাপ ঠিক করে। tool দরকার হলে আপনার কোড সেটা চালিয়ে ফলাফল মডেলকে ফেরত দেয়, আর মডেল যতক্ষণ না বুঝছে আর কোনো tool লাগবে না, ততক্ষণ এটা চলতে থাকে; তারপর চূড়ান্ত উত্তর আসে।

এই চক্রটাই এবার একটা চালানো যায় এমন TypeScript ফাইলে দেখুন। এখানে Anthropic SDK আর মেমোরির ভেতরের একটা নকল অর্ডার-লুকআপ আছে, তাই শুধু একটা API key থাকলেই চালিয়ে দেখতে পারবেন:

ts
// agent/loop.ts
import Anthropic from '@anthropic-ai/sdk';

const client = new Anthropic();

const orders: Record<string, { status: string; eta: string }> = {
  'BD-1042': { status: 'out for delivery', eta: 'today' },
  'BD-1043': { status: 'processing', eta: '5 days' },
};

const tools: Anthropic.Tool[] = [
  {
    name: 'get_order_status',
    description: 'Look up the status and delivery estimate of an order by its ID',
    input_schema: {
      type: 'object',
      properties: { order_id: { type: 'string' } },
      required: ['order_id'],
    },
  },
];

function runTool(name: string, input: { order_id: string }) {
  if (name === 'get_order_status') {
    return orders[input.order_id] ?? { error: 'order not found' };
  }
  return { error: 'unknown tool' };
}

async function runAgent(goal: string) {
  const messages: Anthropic.MessageParam[] = [{ role: 'user', content: goal }];

  for (let step = 0; step < 5; step++) {
    const response = await client.messages.create({
      model: 'claude-sonnet-5',
      max_tokens: 1024,
      tools,
      messages,
    });

    messages.push({ role: 'assistant', content: response.content });

    if (response.stop_reason !== 'tool_use') {
      const block = response.content.find((b): b is Anthropic.TextBlock => b.type === 'text');
      return block?.text ?? '';
    }

    const results: Anthropic.ToolResultBlockParam[] = response.content
      .filter((b): b is Anthropic.ToolUseBlock => b.type === 'tool_use')
      .map((b) => ({
        type: 'tool_result',
        tool_use_id: b.id,
        content: JSON.stringify(runTool(b.name, b.input as { order_id: string })),
      }));

    messages.push({ role: 'user', content: results });
  }

  return 'Stopped: step limit reached';
}

runAgent('Where is my order BD-1042?').then(console.log);

পুরো ফাইলে তিনটা জিনিস আসল। tools অ্যারে মডেলকে জানায় সে কী কী করতে পারে। for loop বারবার আসল ফলাফল ফেরত দেয়, যাতে মডেল সত্যিকারের ঘটনা দেখে সিদ্ধান্ত নিতে পারে। আর পাঁচ ধাপের সীমাটা নিশ্চিত করে, দিশেহারা মডেল যেন অনন্তকাল ঘুরতে না থাকে। প্রোডাকশন এজেন্টের memory, retry, planning — সবকিছু এই কাঠামোর ওপরেই গড়ে ওঠে। প্রথমে npm install @anthropic-ai/sdk দিয়ে SDK নিন, ANTHROPIC_API_KEY সেট করে npx tsx agent/loop.ts চালান, তারপর প্রশ্নে এমন একটা অর্ডার আইডি বসান যেটা নেই — দেখবেন মডেল tool-এর error কীভাবে সামলায়।

এখন হঠাৎ এত আলোচনা কেন?

এজেন্ট ধারণাটা নতুন নয়; AI গবেষণায় এই শব্দটা কয়েক দশক ধরে চলছে। যা বদলেছে তা হলো, আলাদা আলাদা টুকরোগুলো এখন একসঙ্গে বসিয়ে বাস্তবে চালানোর মতো ভরসাযোগ্য হয়েছে। আমার চোখে বড় কারণ কয়েকটা।

নিজের চোখে দেখা কাজ। coding agent যখন একটা রিপোজিটরি পড়ে, কয়েকটা ফাইল বদলায়, টেস্ট চালায় আর ফেল করলে নিজেই ঠিক করে — তখন ডেভেলপাররা প্রথমবার এমন জিনিস দেখলেন যেটা কপি-পেস্ট করার পরামর্শ নয়, শেষ হয়ে ফেরত আসা কাজ। নিজের প্রজেক্টে এটা একবার ঘটতে দেখলে সাধারণ চ্যাট উইন্ডো ধীর মনে হতে শুরু করে।

tool ব্যবহার ভরসাযোগ্য হয়েছে। আগের দিকের মডেল কী করতে হবে বলতে পারত, কিন্তু সেটা চালু করার সঠিক ফরম্যাটে প্রায়ই ভুল করত। এখনকার মডেল এমন structured tool call তৈরি করে যা কোড সরাসরি চালাতে পারে, আর error message পড়ে নিজেই আবার চেষ্টা করে।

loop-এর খরচ কমেছে। একটা কাজ শেষ করতে পাঁচ-দশ-বিশবার মডেলকে ডাকতে হতে পারে। প্রতিবার ডাক যখন ধীর আর দামি ছিল, তখন হিসেবটা মিলত না। দাম কমেছে, মডেলও দ্রুত হয়েছে।

সংযোগের নিয়ম একরকম হচ্ছে। এখন প্রায় সব বড় model API-তে function calling আছে। তার ওপর Anthropic ২০২৪-এর শেষ দিকে MCP (Model Context Protocol) নামে একটা open protocol এনেছে, যাতে প্রতিটা tool-এর জন্য আলাদা করে জোড়াতালি না দিয়ে একটা এজেন্ট অনেক tool-এর সাথে যুক্ত হতে পারে।

ব্যবসার দিক থেকেও চাহিদা আছে: কোম্পানি চায় টিকেট বন্ধ হোক, টিকেট বন্ধ করার নিয়ম নিয়ে তিন প্যারাগ্রাফ নয়।

কেন্দ্রীয় আলোকিত কেন্দ্রের চারপাশে লুপের মতো নিওন আলোর রেখায় যুক্ত ছোট ছোট উজ্জ্বল নোড
কেন্দ্রীয় আলোকিত কেন্দ্রের চারপাশে লুপের মতো নিওন আলোর রেখায় যুক্ত ছোট ছোট উজ্জ্বল নোড

বাস্তবে এজেন্ট এখন কোথায় কাজ করছে

কোডিংয়ে এজেন্ট কোডবেস পড়ে, একাধিক ফাইল বদলায় আর টেস্ট চালিয়ে ভুল শোধরায়। কাস্টমার সাপোর্টে সে অর্ডার খুঁজে বের করে, রিফান্ড পলিসি মিলিয়ে দেখে, উত্তর লেখে, আর নিশ্চিত না হলে কাজটা মানুষের হাতে তুলে দেয়। রিসার্চের কাজে একাধিক সোর্স ঘেঁটে তুলনা করে লিংকসহ সারাংশ বানায়। আর অপারেশনে লগ বা ড্যাশবোর্ড নজরে রেখে অস্বাভাবিক কিছু দেখলে দরকারি তথ্যসহ টিকেট খুলে ফেলে। কোনোটাই ম্যাজিক নয়; প্রতিটাই একটা মডেল, কয়েকটা tool, একটা loop, আর tool কতদূর ছুঁতে পারবে তার নিয়ম।

এজেন্ট এখনও ভুল করে — এটা ভোলা যাবে না

হাইপ দেখে ভাববেন না সমস্যা মিটে গেছে। এজেন্ট ভুল tool বেছে নেয়, একই কাজ বারবার করতে করতে আটকে যায়, আর মাঝে মাঝে পুরো আত্মবিশ্বাসে ভুল কাজটাই শেষ করে ফেলে। এখন যে আলোচনা তুঙ্গে, তার কারণ ভুলের হার শূন্যে নেমেছে বলে নয়; কারণ হার এতটা কমেছে যে সত্যিকারের কাজে লাগানো যাচ্ছে। এজন্যই সীমা, লগ আর মানুষের অনুমোদনের মতো বিরক্তিকর অংশগুলো prompt-এর মতোই গুরুত্বপূর্ণ।

যে ভুলটা আমি প্রথমেই করেছিলাম

একটা সাপোর্ট অ্যাসিস্ট্যান্টের মতো জিনিসে আমি যখন প্রথম language model বসাই, তখন system prompt বারবার বদলাচ্ছিলাম। টেস্ট করার সময় ডেলিভারির তারিখ জিজ্ঞেস করলেই সে আত্মবিশ্বাসের সাথে একটা তারিখ বলে দিত, আর তারিখটা পুরোপুরি বানানো। আমি দোষ দিচ্ছিলাম নিজের prompt-এর ভাষাকে। আসল সমস্যা ছিল অনেক সোজা: মডেলের কাছে কিছু খুঁজে দেখার কোনো উপায়ই ছিল না, তাই সে যা করে তা-ই করছিল, অর্থাৎ বিশ্বাসযোগ্য শোনায় এমন উত্তর বানাচ্ছিল। একটা lookup tool যোগ করতেই সেই সমস্যা মিটল, যেটা prompt বদলে মেটেনি।

তারপর থেকে তিনটা ভুলের দিকে বিশেষ নজর রাখি, নিজের কোডে আর অন্যের কোডে:

  • সবকিছুকে এজেন্ট বলে ফেলা। যে স্ক্রিপ্ট নির্দিষ্ট ক্রমে একবার মডেল, একবার ফাংশন, আবার মডেল ডাকে, সেটা workflow। অনেক সময় সেটাই ভালো ডিজাইন, কিন্তু সেটা এজেন্ট নয়, আর debug করার সময় এই তফাত বেশ কাজে লাগে।
  • step-এর সীমা না রাখা। সীমা না থাকলে গুলিয়ে যাওয়া একটা মডেল ঘুরতেই থাকতে পারে, আর আপনি ঘুমিয়ে থাকতেই API বিল বেড়ে যায়।
  • শুরুতেই write access দিয়ে দেওয়া। আগে এজেন্টকে শুধু পড়তে দিন। ইমেইল পাঠানো বা রিফান্ড দেওয়ার মতো কিছু বদলে ফেলা tool যোগ করুন তার আচরণে ভরসা এলে, আর শুরুতে প্রতিটার আগে মানুষের অনুমোদন রাখুন।

এই সিরিজে এরপর

এটা এই সিরিজের প্রথম পোস্ট। পরের পোস্টগুলোতে আমি ধাপে ধাপে ধারণা আর কোড গড়ে তুলব, এজেন্টের ভেতরের গঠন থেকে শুরু করে প্রোডাকশনে চালানো পর্যন্ত। আপাতত একটা বাক্য মনে রাখুন: এজেন্ট মানে মডেল, tool আর একটা loop; বাকি প্রায় সবকিছু এর ওপর যোগ হওয়া খুঁটিনাটি।

প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী (FAQ)

এআই এজেন্ট বানাতে কি machine learning জানা লাগে?

না। বেশিরভাগ এজেন্ট তৈরি হয় কোনো hosted model-কে API দিয়ে ডেকে, আর তার চারপাশে সাধারণ অ্যাপ্লিকেশন কোড লিখে: tool, loop, error handling আর storage। মডেল নিজে ট্রেন করতে জানার চেয়ে API আর TypeScript বা Python-এর মতো কোনো ভাষায় স্বচ্ছন্দ হওয়া অনেক বেশি কাজে লাগে।

এআই এজেন্টকে কি নিজের মতো কাজ করতে দেওয়া নিরাপদ?

আপনি যতটুকু সীমা বেঁধে দেবেন, ততটুকুই। শুরুতে শুধু পড়ার tool দিন, step-এর সংখ্যা সীমিত রাখুন, প্রতিটা কাজের লগ রাখুন, আর টাকা খরচ হয়, বার্তা যায় বা ডেটা মুছে যায় এমন কাজের আগে মানুষের অনুমোদন বাধ্যতামূলক করুন। এজেন্টকে কিছুদিন চলতে দেখে তারপর তার অনুমতি বাড়ান।

এআই এজেন্ট কি ডেভেলপারদের চাকরি খেয়ে ফেলবে?

পুনরাবৃত্তিমূলক, স্পষ্টভাবে সংজ্ঞায়িত কাজগুলো এজেন্ট নিয়ে নিচ্ছে, ফলে ডেভেলপাররা কোন কাজে সময় দেন সেটা বদলাচ্ছে। এজেন্ট কী করবে তা ঠিক করা, তার tool ডিজাইন করা, আউটপুট রিভিউ করা এবং ভুল হলে দায় নেওয়ার জন্য এখনো একজন মানুষ লাগে, আর আজকের দিনে সেই মানুষটা সাধারণত একজন ডেভেলপার।

🟢 ফ্রিল্যান্স ও কনট্রাক্ট প্রজেক্টের জন্য উন্মুক্ত

কাস্টম ওয়েব অ্যাপ বা এআই অটোমেশন বানাতে চান?

আমি স্টার্টআপ ও আধুনিক ব্যবসার জন্য স্কেলেবল ফুল-স্ট্যাক ওয়েব অ্যাপ্লিকেশন (Next.js, React, Node, PostgreSQL) এবং ইন্টেলিজেন্ট এআই এজেন্ট সলিউশন তৈরি করি। আপনার প্রজেক্টের আইডিয়া নিয়ে কথা বলা যাক!

ফুল-স্ট্যাক এমভিপি (MVP) ডেভেলপমেন্ট
অটোনোমাস এআই এজেন্ট ও এলএলএম ইন্টিগ্রেশন
পারফেক্ট এসইও ও সর্বোচ্চ পারফরম্যান্স
ক্লিন কোড ও মডার্ন আর্কিটেকচার

আর্টিকেলটি কি আপনার ভালো লেগেছে?

তন্ময়ের কাজকে সাপোর্ট করতে তালি (Clap) দিয়ে উৎসাহিত করুন!

0 views
Z

জাহিদ হাসান তন্ময়

সফটওয়্যার ডেভেলপার

MERN ফুল-স্ট্যাক ডেভেলপার এবং AI এজেন্ট ডেভেলপার, ঢাকা, বাংলাদেশ। ওয়েব ডেভেলপমেন্ট, রিঅ্যাক্ট, লারাভেল এবং আমার লার্নিং জার্নি নিয়ে লিখছি।

Related Articles

Stay Updated

Subscribe to get insights on full-stack architecture, AI agent engineering, and web development.