একটি AI এজেন্টের ভেতরকার জগৎ

AI এজেন্টের ডেমো ভিডিওতে দেখতে দারুণ লাগে। কিন্তু বাস্তব প্রশ্ন করলে এগুলো প্রায়ই ব্যর্থ হয়।

এজেন্ট ভুল কাজ করে। এটি সিদ্ধান্ত ভুলে যায়। এটি এমন সব টুল কল করে যার অস্তিত্ব নেই। এটি অনন্তকাল লুপে আটকে থাকে। এগুলো মডেলের ব্যর্থতা নয়। এগুলো হলো ওয়ার্কফ্লো (workflow) বা কাজের পদ্ধতির ব্যর্থতা।

একটি এজেন্ট হলো একটি সফটওয়্যার ওয়ার্কফ্লো। একটি ল্যাঙ্গুয়েজ মডেল পরবর্তী ধাপটি বেছে নেয় এবং টুল কল করে। বুদ্ধিমত্তা মূলত সমন্বয়ের (orchestration) মধ্যে থাকে, শুধু মডেলে নয়।

প্রতিটি প্রোডাকশন এজেন্ট পাঁচটি স্তম্ভের ওপর নির্ভর করে:

  • পরিকল্পনা (Planning): কাজ করার আগে চিন্তা করা।
  • টুলের ব্যবহার (Tool Use): জগতের সাথে মিথস্ক্রিয়া করা।
  • মেমরি (Memory): কনটেক্সট এবং তথ্য সংরক্ষণ করা।
  • সীমাবদ্ধতা (Constraints): সীমানা এবং বাজেট নির্ধারণ করা।
  • যাচাইকরণ (Verification): কাজটি সঠিক কিনা তা প্রমাণ করা।

পরিকল্পনার ধরন (Planning Styles)

সাধারণ এজেন্টরা সরাসরি কাজে ঝাঁপিয়ে পড়ে। এর ফলে হ্যালুসিনেশন (hallucination) ঘটে। একটি ভালো এজেন্ট প্রথমে পরিকল্পনা করে।

  1. পরিকল্পনা-তারপর-বাস্তবায়ন (Plan-then-execute): মডেলটি একটি পূর্ণাঙ্গ পরিকল্পনা লেখে। এটি অডিট করা সহজ কিন্তু বাস্তবতা পরিবর্তন হলে মানিয়ে নেওয়া কঠিন।
  2. ReAct (Reason + Act): মডেলটি একটি লুপের মধ্যে চিন্তা করে, কাজ করে এবং পর্যবেক্ষণ করে। এটি আরও অভিযোজনযোগ্য (adaptive) কিন্তু এতে টোকেন এবং সময়ের খরচ বেশি হয়।

টুলের ব্যবহার (Tool Use)

টুল ছাড়া একটি এজেন্ট কেবল একটি চ্যাটবট। একটি টুলের জন্য একটি নাম, একটি JSON schema এবং একটি ফাংশন প্রয়োজন।

মডেলগুলো বর্ণনার ওপর ভিত্তি করে টুল বেছে নেয়। আপনার বর্ণনা যদি অস্পষ্ট হয়, তবে এজেন্ট ব্যর্থ হবে। বর্ণনাগুলোকে স্পেক শিটের (spec sheet) মতো বিবেচনা করুন। একটি টুল কীসের জন্য এবং কীসের জন্য নয়, তা সুনির্দিষ্টভাবে সংজ্ঞায়িত করুন।

সবসময় টুল কলগুলো যাচাই (validate) করুন। যদি মডেল ভুল আর্গুমেন্ট পাঠায়, তবে কলটি প্রত্যাখ্যান করুন এবং এররটি (error) মডেলের কাছে ফেরত পাঠান। এটি এজেন্টকে লুপ চলাকালীন শিখতে সাহায্য করে।

মেমরি (Memory)

মেমরি কেবল একটি বিষয় নয়।

  • ওয়ার্কিং মেমরি (Working Memory): বর্তমান কথোপকথন এবং টুলের ফলাফল।
  • স্ক্র্যাচপ্যাড (Scratchpad): এজেন্টের নিজের জন্য নোট লিখে রাখার একটি জায়গা।
  • লং-টার্ম মেমরি (Long-term Memory): ভবিষ্যতের সেশনের জন্য তথ্য সংরক্ষণ করা।

শুধুমাত্র ভেক্টর ডেটাবেসের ওপর নির্ভর করবেন না। মার্কডাউন ফাইল ব্যবহার করে ফাইল-ভিত্তিক মেমরি প্রায়শই ভালো কাজ করে। এটি অডিট করা, এডিট করা এবং grep করা সহজ।

সীমাবদ্ধতা এবং নিরাপত্তা (Constraints and Safety)

প্রোডাকশন এজেন্টদের জন্য গার্ডরেল (guardrails) প্রয়োজন। এই চারটি ব্যবহার করুন:

  • টুলের অ্যালাউলিস্ট (Tool allowlists): শুধুমাত্র নির্দিষ্ট এবং নামযুক্ত টুল ব্যবহারের অনুমতি দিন।
  • ইটারেশন বাজেট (Iteration budgets): ইনফিনিট লুপ প্রতিরোধ করতে ধাপের সংখ্যা নির্দিষ্ট করে দিন।
  • টোকেন বাজেট (Token budgets): মোট টোকেন সীমিত করার মাধ্যমে খরচ নিয়ন্ত্রণ করুন।
  • অ্যাপ্রুভাল গেট (Approval gates): ইমেল পাঠানো বা ডেটা মুছে ফেলার মতো উচ্চ-ঝুঁকিপূর্ণ কাজের জন্য মানুষের অনুমতির প্রয়োজন নিশ্চিত করুন।

যাচাইকরণ (Verification)

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

প্রকৃত যাচাইকরণ ব্যবহার করুন। যদি একটি এজেন্ট কোড লেখে, তবে টেস্টগুলো চালান। যদি এটি JSON তৈরি করে, তবে স্কিমা পরীক্ষা করুন। যদি এটি কোনো কাজ সম্পন্ন করে, তবে পরিবর্তনটি নিশ্চিত করতে একটি কুয়েরি (query) চালান।

সেরা এজেন্টগুলো লুপের ভেতরেই যাচাইকরণ ব্যবহার করে। যদি কোনো টেস্ট ব্যর্থ হয়, তবে এররটি এজেন্টের কাছে ফেরত পাঠান। তাকে আবার চেষ্টা করতে দিন।

স্মার্ট প্রম্পটের পেছনে ছোটা বন্ধ করুন। উন্নতমানের অবকাঠামো (plumbing) তৈরি করা শুরু করুন।

Source: https://dev.to/nazar_boyko/inside-an-ai-agent-planning-tool-use-memory-constraints-and-verification-2fcc

Optional learning community: https://t.me/GyaanSetuAi