VPS এ AI agent তৈরি করুন
AI agent হলো ভাষা মডেলের চারপাশে একটি লুপ যা টুল ব্যবহার করে কাজ সম্পন্ন করে। আপনার VPS এ agent তৈরির ধারণা শিখুন: লুপ, টুল, MCP এবং মেমরি।
একটি AI এজেন্ট আসলে কী
একটি AI এজেন্ট হলো একটি ভাষা মডেলের চারপাশে মোড়ানো একটি লুপ। মডেলটি পরিস্থিতি পড়ে, একটি কাজ ঠিক করে, আপনার কোড সেই কাজটি সম্পাদন করে, ফলাফল আবার মডেলে ফিরে যায়, এবং কাজ শেষ না হওয়া পর্যন্ত এই লুপটি চলতে থাকে। পুরো ধারণাটি এটাই। একটি সাধারণ চ্যাটবট একবার উত্তর দিয়ে থেমে যায়। একটি এজেন্ট চলতেই থাকে, নিজের পালাগুলোর মাঝে বাস্তব কাজ সম্পাদন করে, যতক্ষণ না আপনি দেওয়া লক্ষ্যে পৌঁছায়।
কাজটিই সবচেয়ে গুরুত্বপূর্ণ অংশ। নিজে থেকে একটি ভাষা মডেল শুধু টেক্সট তৈরি করে। এটি কোনো ফাইল পড়তে, API কল করতে, বা কমান্ড চালাতে পারে না। একটি এজেন্ট মডেলকে ব্যবহার করার অনুমতি দেওয়া টুলের একটি সেট এবং সেগুলো চাওয়ার একটি উপায় দেয়। মডেল যখন ওয়েবে সার্চ করতে বা ফাইল লিখতে চায়, তখন এটি নিজে সেই কাজ করে না। এটি একটি গঠিত অনুরোধ পাঠায়, আপনার কোড টুলটি চালায়, এবং উত্তরটি মডেলের পরবর্তী পড়ার বিষয় হিসেবে ফিরে আসে। মডেল বিচারবুদ্ধি সরবরাহ করে; আপনার সার্ভার হাত সরবরাহ করে।
প্রতিটি কাজের জন্য একটি এজেন্ট প্রয়োজন নয়, এবং ডিফল্টভাবে এটি ব্যবহার করা একটি সাধারণ ভুল। যদি ধাপগুলো আগে থেকেই জানা থাকে, তবে একটি সাধারণ স্ক্রিপ্ট সহজ, দ্রুত এবং বেশি নির্ভরযোগ্য। "প্রতি ঘণ্টায় এই পেজটি আনুন এবং আমাকে দাম ইমেইল করুন" এটি একটি নির্ধারিত কাজ, এজেন্ট নয়। তখনই একটি এজেন্ট তৈরি করুন যখন পথটি আগে থেকে নির্দিষ্ট নয়, যখন মডেলকে তার পাওয়া জিনিসগুলো দেখতে হবে এবং পরবর্তী কী করতে হবে তা ঠিক করতে হবে। একটি এজেন্টের খরচ হলো অনিশ্চয়তা, তাই কেবল তখনই এটি ব্যবহার করুন যখন এর নমনীয়তা নিজের দাম উঠিয়ে আনে।
টুল: একটি এজেন্ট কীভাবে কাজ করে
একটি টুল হলো এমন কোনো ক্ষমতা যা আপনি মডেলকে দেন, যথেষ্ট ভালোভাবে বর্ণনা করা যাতে এটি জানে কখন সেটি ব্যবহার করতে হবে। একটি ফাইল পড়ুন, একটি shell কমান্ড চালান, একটি ডেটাবেস অনুসন্ধান করুন, একটি বার্তা পাঠান: প্রতিটি একটি টুল যার একটি নাম আছে, একটি সংক্ষিপ্ত বিবরণ আছে, এবং ইনপুটের একটি তালিকা আছে। আপনি টুলগুলো নির্ধারণ করেন; মডেল সিদ্ধান্ত নেয় কখন সেগুলো কল করতে হবে।
আপনি যে মডেলই ব্যবহার করুন না কেন, প্রক্রিয়াটি সর্বত্র একই। মডেল একটি গঠিত অনুরোধ ফেরত দেয় যা একটি টুলের নাম দেয় এবং এর ইনপুটগুলো পূরণ করে। আপনার কোড সেই অনুরোধ দেখে, সম্পর্কিত ফাংশন চালায়, এবং পরবর্তী পালায় ফলাফল ফেরত পাঠায়। মডেল ফলাফল পড়ে এবং হয় আরেকটি টুল কল করে বা তার চূড়ান্ত উত্তর লেখে। ফাংশন কলিং হলো প্রতিটি এজেন্টের নিচের নল-নর্দমা, এবং এটি চালানো লুপটি কেবল কয়েক লাইনের সাধারণ কোড।
এখানেই আপনার নিয়ন্ত্রণও থাকে। মডেল একটি কমান্ড চালানোর জন্য অনুরোধ করতে পারে, কিন্তু আপনার কোড এটি চালানোর সিদ্ধান্ত না নেওয়া পর্যন্ত কিছুই চলে না। এই ফাঁকটিতেই আপনি বিপজ্জনক কাজের জন্য অনুমোদন প্রম্পট, একটি টুল কী স্পর্শ করতে পারে তার সীমা এবং এজেন্ট যা কিছু করেছে তার একটি লগ রাখেন। একটি এজেন্ট ততটাই নিরাপদ যতটা নিরাপদ টুল আপনি এটিকে দেন এবং সেগুলোর সামনে আপনি যে যাচাই রাখেন।
MCP: টুল সংযুক্ত করার একটি স্ট্যান্ডার্ড উপায়
প্রতিটি পরিষেবার জন্য হাতে নতুন একটি ইন্টিগ্রেশন লেখা দ্রুত পুরনো হয়ে যায়। Model Context Protocol, বা MCP, একটি ওপেন স্ট্যান্ডার্ড যা এটি সমাধান করে। আপনার ফাইল, আপনার ডেটাবেস, এবং আপনার issue tracker-এর জন্য নতুন টুল কোড করার বদলে, আপনি এজেন্টকে এমন একটি MCP সার্ভারের দিকে নির্দেশ করেন যা ইতিমধ্যে সেই জিনিসগুলোকে টুল হিসেবে প্রকাশ করে। এজেন্ট একটি প্রোটোকল বলে; সার্ভার আসল সিস্টেমের সাথে কথা বলার কাজ করে।
এর লাভ হলো পুনঃব্যবহার। অন্য কেউ আপনার ব্যবহৃত একটি পরিষেবার জন্য যে MCP সার্ভার লিখেছে তা কোনো নতুন ইন্টিগ্রেশন কোড ছাড়াই আপনার এজেন্টে ব্যবহারযোগ্য হয়ে যায়, এবং আপনার লেখা একটি সার্ভার প্রোটোকল বলতে পারে এমন যেকোনো এজেন্ট ব্যবহার করতে পারে। একটি VPS-এ এটি গুরুত্বপূর্ণ, কারণ আপনি MCP সার্ভারগুলোকে এজেন্টের পাশে নিজস্ব ছোট পরিষেবা হিসেবে চালাতে পারেন, প্রতিটির কাছে কেবল ততটুকু অ্যাক্সেস থাকবে যতটুকু এর প্রয়োজন। আমি সেটআপটি VPS-এ MCP সার্ভার চালানো-তে কভার করেছি।
মেমরি এবং রিট্রিভাল
কলগুলোর মাঝে একটি ভাষা মডেলের নিজস্ব কোনো মেমরি থাকে না। বর্তমান কাজ সম্পর্কে এর যা কিছু জানা আছে তা প্রতি পালায় একে দিতে হয়। একটি ছোট কাজের জন্য এটি ঠিক আছে, কারণ পুরো কথোপকথনটি একটি অনুরোধে ফিট করে। এর চেয়ে বড় কিছুর জন্য আপনাকে নিজেই মেমরি পরিচালনা করতে হবে, এবং দুটি প্যাটার্ন জেনে রাখা মূল্যবান।
প্রথমটি হলো একটি স্ক্র্যাচপ্যাড। আপনি এজেন্টকে এমন একটি ফাইল দেন যা এটি পড়তে এবং লিখতে পারে, এবং এটিকে বলেন যা কিছু সে শেখে এগিয়ে যাওয়ার সময় তা রেকর্ড করতে। পরবর্তী পালায়, বা পরবর্তী সেশনে, এটি ফাইলটি পড়ে যেখানে ছেড়েছিল সেখান থেকে শুরু করে। এটি একটি সাধারণ নথি হিসেবে মেমরি, এবং এটি কাজ করে কারণ এজেন্ট ফাইলটিকে অন্য একটি টুল হিসেবে বিবেচনা করে।
দ্বিতীয়টি হলো রিট্রিভাল। যখন এজেন্টের বড় নথির সমষ্টি থেকে জ্ঞানের প্রয়োজন হয় যা কখনোই একটি অনুরোধে ফিট হবে না, তখন আপনি সেই নথিগুলোকে অনুসন্ধানযোগ্য আকারে সংরক্ষণ করেন এবং প্রয়োজন হলে কেবল প্রাসঙ্গিক অংশগুলোই মডেলের দৃষ্টিতে আনেন। এই প্যাটার্নটিকে retrieval-augmented generation, বা RAG বলা হয়। এজেন্ট একটি প্রশ্ন করে, আপনার কোড মিলিয়ে যাওয়া কয়েকটি অংশ খুঁজে বের করে, এবং কেবল সেগুলোই মডেলে যায়। স্টোরটি আপনার সার্ভারে থাকে, তাই আপনার ব্যক্তিগত নথিগুলো কখনোই এটি ছেড়ে যায় না।
অনেক এজেন্ট, একজন সমন্বয়কারী
বেশিরভাগ কাজের জন্য অনেক টুলসহ একটি এজেন্ট কাজ করে। যখন একটি কাজ বড় বা স্বাভাবিকভাবে ভাগে বিভক্ত হয়, তখন একটি ভিন্ন কাঠামো সাহায্য করে: একজন সমন্বয়কারী এজেন্ট যে বিশেষায়িত সাব-এজেন্টদের কাছে কাজ হস্তান্তর করে। সমন্বয়কারী লক্ষ্যটিকে ভাগে ভাগ করে, প্রতিটি ভাগ সেই ধরনের কাজের জন্য তৈরি একটি সাব-এজেন্টের কাছে দেয়, এবং ফলাফলগুলো একত্রিত করে।
এর লাভ হলো ফোকাস। একটি সংকীর্ণ কাজ এবং একটি ছোট টুল সেটসহ একটি সাব-এজেন্ট একজন সবকিছু সামলানো সাধারণবিদের চেয়ে ভালো সিদ্ধান্ত নেয়, এবং স্বাধীন অংশগুলো একই সময়ে চলতে পারে। এর খরচ হলো সমন্বয়, যা বাস্তব, তাই একটি কাজ স্পষ্টতই আরও বেশি না চাওয়া পর্যন্ত একটি একক এজেন্টেই থাকুন। সহজ শুরু করুন, এবং কেবল তখনই এজেন্ট যোগ করুন যখন একজন স্পষ্টতই চাপে পড়ছে।
সেলফ-হোস্টেড বা হোস্টেড: কোন মডেল আপনার এজেন্ট চালায়
মডেল হলো একটি এজেন্টের একমাত্র অংশ যা আপনাকে নিজে চালাতে হয় না, এবং এটি কোথায় থাকবে তা বেছে নেওয়া আপনার সবচেয়ে বড় সিদ্ধান্ত হবে। API-এর মাধ্যমে পৌঁছানো একটি হোস্টেড মডেল আপনাকে পরিচালনা করার মতো কিছু ছাড়াই সবচেয়ে শক্তিশালী যুক্তি দেয়: আপনি টেক্সট পাঠান, আপনি টেক্সট ফেরত পান। একটি সেলফ-হোস্টেড মডেল আপনার নিজের সার্ভারে চলে, যা প্রতিটি অনুরোধ ব্যক্তিগত রাখে, প্রতি টোকেনে ফি-এর বদলে একটি নির্দিষ্ট দামে খরচ হয়, এবং অন্য কারো চালু থাকার উপর কখনো নির্ভর করে না। এর বিনিময় হলো ক্ষমতা এবং প্রচেষ্টা। সেরা হোস্টেড মডেলগুলো আপনি নিজে যা চালাতে পারেন তার চেয়ে এগিয়ে, এবং নিজের চালানো মানে এটিকে ফিট করার জন্য পর্যাপ্ত মেমরি দেওয়া।
সেই শেষ পয়েন্টটিই হলো ব্যবহারিক সমস্যা। একটি মডেলকে আপনার সার্ভারের মেমরিতে ফিট করতে হবে, এবং আপনি যদি GPU ব্যবহার করেন, তবে এর ভিডিও মেমরিতে ফিট করতে হবে। হার্ডওয়্যারের জন্য অনেক বড় একটি মডেল লোড হবে না। আপনি একটি সেলফ-হোস্টেড এজেন্ট পরিকল্পনা করার আগে, দেখে নিন আপনার পছন্দের মডেলটি আপনার কাছে থাকা মেশিনে ফিট করে কি না:
সংখ্যাগুলো যদি না ফিট করে, তবে আপনার কাছে তিনটি পথ আছে: একটি ছোট মডেল বেছে নিন, এটি সংকুচিত করতে আরও আগ্রাসী quantization ব্যবহার করুন, বা যুক্তির জন্য একটি হোস্টেড API ব্যবহার করুন এবং কেবল আপনার টুল এবং ডেটা সার্ভারে রাখুন। অনেক সেলফ-হোস্টেড এজেন্ট VPS-এ Ollama-এর মাধ্যমে একটি লোকাল মডেল দিয়ে শুরু করে এবং সবচেয়ে কঠিন ধাপগুলোর জন্য একটি হোস্টেড API-এ ফিরে যায়।
সার্ভারই হলো বিপজ্জনক অংশ
একটি এজেন্ট যে shell কমান্ড চালাতে এবং ফাইল লিখতে পারে তা শক্তিশালী, এবং এটিই ঠিক কারণ এটি বিপজ্জনক। মডেলের বিচারবুদ্ধি ভালো কিন্তু নিখুঁত নয়, এবং একটি খারাপ নির্দেশ, একটি বাগ, বা একটি শত্রুতাপূর্ণ ইনপুট একটি সহায়ক এজেন্টকে এমন একটিতে পরিণত করতে পারে যা ভুল জিনিস মুছে দেয় বা একটি গোপন তথ্য লিক করে। নিরাপত্তার কাজটি ঐচ্ছিক নয়, এবং একটি সার্ভারে এটিই সবচেয়ে গুরুত্বপূর্ণ অংশ।
কয়েকটি অভ্যাস বেশিরভাগ ভার বহন করে। এজেন্টটিকে একজন বিশেষ অবিশেষাধিকারপ্রাপ্ত ব্যবহারকারী হিসেবে চালান, কখনো root হিসেবে নয়, যাতে একটি ভুলের একটি সীমা থাকে; একই যুক্তি অবিশেষাধিকারপ্রাপ্ত ব্যবহারকারী হিসেবে পরিষেবা চালানো-তে আছে। এর গোপন তথ্যগুলো, যেমন API কী, কোডের বাইরে রাখুন এবং কেবল সেই ব্যবহারকারীর দ্বারা পঠনযোগ্য করুন। এবং সিস্টেম স্পর্শ করে এমন টুলগুলো স্যান্ডবক্স করুন, যাতে এজেন্ট কেবল ততটুকুতেই পৌঁছাতে পারে যতটুকু এর সত্যিই প্রয়োজন। একটি বাস্তব সেলফ-হোস্টেড এজেন্ট হার্ডেন করার একটি কার্যকর উদাহরণের জন্য, VPS-এ নিরাপদে OpenClaw চালানো দেখুন। আপনি যদি বুদ্ধিমত্তার জন্য একটি হোস্টেড মডেল ব্যবহার করতে পছন্দ করেন, তবে VPS-এ Claude দিয়ে এজেন্ট তৈরি করা-এর কম্প্যানিয়ন গাইডটি একই ধারণাগুলো নেয় এবং সেগুলোর পেছনে একটি নির্দিষ্ট মডেল রাখে।
একটি কার্যকর উদাহরণের জন্য, একটি OpenClaw-স্টাইলের ব্যক্তিগত এজেন্ট তৈরি করা এই অংশগুলো প্রয়োগ করে, এবং আপনি যদি একটি তৈরি করা এজেন্ট চালাতে পছন্দ করেন, তবে VPS-এ Hermes Agent সেলফ-হোস্ট করা বা আপনার নিজের সার্ভারে Agent Zero চালানো দিয়ে শুরু করুন, এবং 2026-এ সেরা সেলফ-হোস্টেড AI এজেন্ট আমরা যে প্রতিটি তৈরি করা বিকল্প কভার করি তা পাশাপাশি তুলনা করে।
FAQ
একটি AI এজেন্ট এবং একটি চ্যাটবটের মধ্যে পার্থক্য কী?
একটি চ্যাটবট একটি বার্তার উত্তর দেয় এবং থেমে যায়। একটি এজেন্ট একটি লুপ চালায়: মডেল একটি কাজ ঠিক করে, আপনার কোড এটি সম্পাদন করে, ফলাফল মডেলে ফিরে যায়, এবং কাজ শেষ না হওয়া পর্যন্ত এটি পুনরাবৃত্তি করে। পার্থক্য হলো একটি এজেন্ট তার পালাগুলোর মাঝে বাস্তব কাজ নেয়, ফাইল পড়তে, কমান্ড চালাতে, বা পরিষেবা অনুসন্ধান করতে টুল কল করে, কেবল টেক্সট তৈরি করার বদলে।
একটি VPS-এ একটি AI এজেন্ট চালানোর জন্য আমার কি একটি GPU প্রয়োজন?
কেবল তখনই যদি আপনি মডেলটি সেলফ-হোস্ট করেন। এজেন্ট লুপ, টুল, এবং মেমরি হলো সাধারণ কোড যা কোনো GPU ছাড়াই একটি সাধারণ VPS-এ ভালোভাবে চলে। একটি GPU তখনই গুরুত্বপূর্ণ যখন আপনি নিজের হার্ডওয়্যারে ভাষা মডেল চালাতে চান, কারণ মডেলটিকে মেমরিতে ফিট করতে হবে। আপনি যদি একটি API-এর মাধ্যমে একটি হোস্টেড মডেল ব্যবহার করেন, তবে ভারী গণনা অন্যত্র হয় এবং একটি সামান্য VPS যথেষ্ট।
MCP কী এবং একটি এজেন্ট তৈরি করতে আমার কি এটি প্রয়োজন?
MCP, বা Model Context Protocol, হলো একটি এজেন্টকে টুল এবং ডেটা উৎসের সাথে সংযুক্ত করার জন্য একটি ওপেন স্ট্যান্ডার্ড। আপনি কঠোরভাবে এটি প্রয়োজন করেন না, যেহেতু আপনি প্রতিটি টুল হাতে লিখতে পারেন। MCP আপনাকে সেই কাজটি বাঁচায় সাধারণ পরিষেবাগুলোর জন্য বিদ্যমান সার্ভার পুনঃব্যবহার করতে এবং আপনার নিজের সিস্টেমগুলো একবার প্রকাশ করে যেকোনো এজেন্টের ব্যবহারের জন্য দিতে দিয়ে। এটি একটি সুবিধা যা ইন্টিগ্রেশনের সংখ্যা বাড়ার সাথে সাথে এর মূল্যবান হয়ে ওঠে।
একটি AI এজেন্টকে আমার সার্ভারে অ্যাক্সেস দেওয়া কি নিরাপদ?
নিরাপদ হতে পারে, যদি আপনি এটি সীমাবদ্ধ রাখেন। একটি এজেন্ট যে কমান্ড চালায় সেটি ততটাই নিরাপদ যতটা নিরাপদ অ্যাকাউন্ট এটি চলে এবং আপনি যে টুলগুলো অনুমোদন করেন। এটিকে একজন অবিশেষাধিকারপ্রাপ্ত ব্যবহারকারী হিসেবে চালান, এর গোপন তথ্যগুলো নাগালের বাইরে রাখুন, filesystem স্পর্শ করে এমন টুলগুলো স্যান্ডবক্স করুন, এবং যে কাজগুলো পূর্বাবস্থায় ফেরানো কঠিন সেগুলোর জন্য অনুমোদন দাবি করুন। এজেন্টকে অবিশ্বস্ত কোড হিসেবে বিবেচনা করুন যা ঘটনাক্রমে চালাক, এবং এটিকে কেবল ততটুকু দিন যতটুকু কাজের প্রয়োজন।