OpenClaw-এর মতো নিজের AI agent কীভাবে বানাবেন
নিজের server-এ চলা OpenClaw-এর মতো AI agent কীভাবে তৈরি করবেন, তা ধাপে ধাপে জানুন। Hardening কেন আগে দরকার, CVE-2026-32922-এর severity 9.9-সহ দেখুন।
OpenClaw আসলে কী
OpenClaw একটি self-hosted ব্যক্তিগত AI agent। আপনি এটি নিজের server-এ চালান, আপনি যে chat app-গুলো আগে থেকেই ব্যবহার করেন সেগুলোর সঙ্গে সংযুক্ত করেন, এবং এটি shell command চালাতে, browser নিয়ন্ত্রণ করতে, আপনার file পড়তে ও লিখতে এবং আপনার পাঠানো message-এর ভিত্তিতে কাজ করতে পারে। এটি MIT-licensed, local-first এবং 2026-এর মাঝামাঝি সময় পর্যন্ত GitHub-এ 380,000-এর বেশি star পেয়েছে। ফলে এটি platform-টির সবচেয়ে বেশি star পাওয়া project-গুলোর একটি। বাহ্যিক আলোচনার আড়ালে এটি পরস্পরের সঙ্গে সুসংগঠিতভাবে সংযুক্ত কয়েকটি ছোট উপাদানের সমষ্টি। এই post-এ সেই উপাদানগুলো ব্যাখ্যা করা হয়েছে, যাতে আপনি বুঝতে পারেন এ ধরনের tool কীভাবে তৈরি হয় এবং কোথায় গুরুত্বপূর্ণ ঝুঁকি রয়েছে।
শুরুতেই একটি সতর্কতা দিচ্ছি, কারণ নিচের প্রতিটি design choice-এর ওপর এর প্রভাব রয়েছে। 2026 সালের March-এ OpenClaw-এর নয়টি security issue চার দিনের মধ্যে প্রকাশ করা হয়েছিল। এর মধ্যে একটি critical privilege-escalation flaw ছিল, যার severity rating 10-এর মধ্যে 9.9 (CVE-2026-32922)। এই project-টি operator হিসেবে আপনার দ্বারা harden করার জন্য তৈরি। যে agent যেকোনো command চালাতে পারে, সেটি যে server-এ চলে এবং আপনি তার ওপর যে সীমাবদ্ধতা আরোপ করেন, তার নিরাপত্তার চেয়ে বেশি নিরাপদ হতে পারে না। পড়ার সময় বিষয়টি মনে রাখুন।
গেটওয়ে daemon: একটি process, private রাখা
কেন্দ্রে একটি দীর্ঘ সময় চলমান process থাকে, যাকে সাধারণত gateway বলা হয়। এটি control plane। এটি message গ্রহণ করে, কী করতে হবে তা নির্ধারণ করে, tool চালায় এবং reply ফেরত পাঠায়। অন্য সবকিছু এর সঙ্গে সংযুক্ত হয়।
gateway কোথায় listen করে, সেটিই সবচেয়ে গুরুত্বপূর্ণ বিষয়। ডিফল্টভাবে OpenClaw এটিকে loopback address, 127.0.0.1-এ bind করে। তাই ইচ্ছাকৃতভাবে expose না করলে এটি Internet থেকে reachable হয় না। এটিকে সেখানেই রাখুন। এই process-ই command চালায়। তাই exposed gateway-এর মাধ্যমে যে কেউ এটি খুঁজে পেলে আপনার server-এ remote foothold পেতে পারে। laptop থেকে gateway-এ পৌঁছাতে হলে port খোলার বদলে VPN বা SSH tunnel ব্যবহার করুন। যে port-এ পৌঁছানো যায় না, সেটিতে কেউ attack করতে পারে না।
চ্যানেল connector: বার্তা গ্রহণ এবং উত্তর পাঠানো
আপনি যে অ্যাপগুলো ইতিমধ্যে ব্যবহার করেন, সেগুলো থেকে যোগাযোগ করা না গেলে personal agent তেমন কার্যকর নয়। চ্যানেল connector-গুলো এই কাজই করে। প্রতিটি connector একটি platform-এর সঙ্গে কাজ করে, যেমন Telegram, WhatsApp, Slack বা Discord। এ জন্য সেটি ওই platform-এর bot API অথবা webhook ব্যবহার করে।
সব connector-এর কাঠামো একই। connector platform-এ একটি bot নিবন্ধন করে। এরপর এটি আপনার পাঠানো বার্তা গ্রহণ করে। এটি platform-কে poll করে বার্তা নিতে পারে, অথবা platform যে webhook পাঠায় তা গ্রহণ করতে পারে। তারপর connector বার্তাটি gateway-তে পাঠায় এবং একই API ব্যবহার করে gateway-এর উত্তর আবার পাঠায়। connector একটি সরল translation layer। এটি “Telegram-এ একটি বার্তা এসেছে” ঘটনাকে “agent-এর জন্য এই text” হিসেবে রূপান্তর করে এবং উত্তর পাওয়ার পর বিপরীত রূপান্তর করে। নিজের connector তৈরি করতে সাধারণত একটি platform-এর bot documentation পড়ে তার message format-কে gateway-এর format-এর সঙ্গে mapping করলেই হয়।
The brain and the tool loop
Gateway-এর ভেতরে এমন একটি অংশ আছে, যা এটিকে chatbot-এর বদলে agent বানায়। এটি একটি loop।
একটি message আসে। Gateway এটি model যে tools ব্যবহার করতে পারবে, সেই tools-এর তালিকাসহ একটি language model-এ পাঠায়। Model message পড়ে সিদ্ধান্ত নেয়: সরাসরি উত্তর দেবে, নাকি কোনো tool call করবে। Model কোনো tool call করলে gateway সেই tool চালায়, ফলাফল সংগ্রহ করে এবং ফলাফলটি model-এ ফেরত পাঠায়। Model ফলাফল দেখে আবার সিদ্ধান্ত নেয়। Model-এর আর কিছু করার না থাকা পর্যন্ত এই প্রক্রিয়া চলতে থাকে। এরপর model একটি final reply তৈরি করে।
এই loop-ই agent-এর মূল ধারণা। Agent chat app-এ চলুক বা terminal-এ, loop একই থাকে। Tools-কে standard উপায়ে এই loop-এর সঙ্গে কীভাবে যুক্ত করতে হয়, তা জানতে Model Context Protocol-এর মাধ্যমে tools যুক্ত করা পরের ভালো পাঠ। Model-এর দিকটি বুঝতে নিজের hardware-এ model চালানো বিষয়টির অন্য অর্ধটি ব্যাখ্যা করে।
টুলসমষ্টিই মূল বিষয় এবং ঝুঁকিও এখানেই
OpenClaw-কে শক্তিশালী করে টুলগুলো। এমন একটি টুল আছে যা shell command চালায়, এমন একটি টুল আছে যা browser নিয়ন্ত্রণ করে, আবার এমন টুলও আছে যা file পড়ে ও লেখে। উপরের loop-কে এগুলোর access দিলে keyboard-এ আপনি যা করতে পারেন, এটি প্রায় সবই করতে পারে। এই বিস্তৃত ক্ষমতাই পুরো product, এবং একই সঙ্গে পুরো ঝুঁকিও।
যে agent chat app থেকে আসা নির্দেশ অনুযায়ী যেকোনো command চালাতে পারে, সেটি একটি বড় attack surface। কোনো খারাপ নির্দেশ, browser tool যে web page-এ যায় সেখানে লুকানো prompt-injection attack, অথবা March 2026-এর flaws-এর মতো কোনো bug, "আমার calendar পড়ো" নির্দেশকে "আমার file মুছে দাও"-তে পরিণত করতে পারে। তাই সীমাবদ্ধতাগুলো ঐচ্ছিক অতিরিক্ত সুবিধা নয়। agent-কে কোনো sudo ছাড়াই একটি dedicated, unprivileged user হিসেবে চালান, যাতে compromise হলে privilege escalation সম্ভব না হয়। বিপজ্জনক tool-গুলোকে approval step-এর আড়ালে রাখুন, যাতে destructive কাজ করার আগে agent অনুমতি চায়। tool execution sandbox করুন, যাতে নিয়ন্ত্রণের বাইরে চলে যাওয়া command সীমাবদ্ধ থাকে। model-এর API key আলাদা করে সুরক্ষিত রাখুন, যাতে key ফাঁস হলে attacker আপনার account-এর access না পায়। একই box-এ থাকা অন্যান্য secret নিয়েও ভাবুন, কারণ Vaultwarden-এর প্রকৃত দুর্বল স্থান হলো তার admin token এবং backup file, encryption নয়; আর shell access-সহ একটি agent উভয়েরই নাগালের মধ্যে থাকে।
shell command চালায় এমন কোনো কিছু Internet-এ প্রকাশ করার আগে মৌলিক বিষয়গুলো পরিকল্পনা করে সম্পন্ন করুন। নিজের box-এর জন্য এখানে একটি checklist তৈরি করুন, তারপর উপর থেকে নিচ পর্যন্ত অনুসরণ করুন:
unprivileged user হিসেবে service চালানোর বিষয়টি unprivileged user হিসেবে service চালানো-তে বিস্তারিতভাবে ব্যাখ্যা করা হয়েছে। প্রকৃত project-এর জন্য সম্পূর্ণ নিরাপদ setup-এর নির্দেশিকা রয়েছে VPS-এ OpenClaw নিরাপদে চালানো-তে।
ফাইল হিসেবে memory
বেশিরভাগ মানুষ আশা করেন, agent-এর memory কোনো database-এ থাকবে। OpenClaw-এর ক্ষেত্রে তা নয়। এটি disk-এ plain Markdown file হিসেবে memory সংরক্ষণ করে, এবং এই পদ্ধতিটি অনুসরণ করার মতো।
File সহজ। কোনো schema migrate করতে হয় না, চালু রাখার মতো কোনো service নেই, এবং কোনো query language শেখার প্রয়োজন নেই। এগুলো সহজে পরিদর্শন করা যায়: folder খুলে agent আপনার সম্পর্কে ঠিক কী মনে করছে তা পড়তে পারেন, file edit করে ভুল note সংশোধন করতে পারেন, অথবা কোনো memory মুছে ফেলতে সেটি remove করতে পারেন। এগুলো portable-ও, কারণ agent-কে নতুন server-এ স্থানান্তর করতে একটি directory copy করাই যথেষ্ট। একক ব্যবহারকারীর personal agent-এর জন্য text file-এর একটি folder যথেষ্ট, এবং এতে পুরো system বোঝা ও পরিচালনা করা সহজ থাকে।
দক্ষতা: সক্ষমতা যোগ করার একটি পোর্টেবল পদ্ধতি
অন্তর্নির্মিত টুলের বাইরে, OpenClaw একটি পোর্টেবল skill format ব্যবহার করে। এর মাধ্যমে core পরিবর্তন না করেই community-এর পক্ষে এর সক্ষমতা বাড়ানো যায়। একটি skill হলো instructions এবং কখনও কখনও code-এর একটি স্বয়ংসম্পূর্ণ bundle, যা agent-কে নতুন কোনো কাজ শেখায়। কোনো task-এর জন্য প্রয়োজন হলে agent skill লোড করে। Web search সাধারণত মানুষ প্রথমে যে skill যোগ করে। আর সেই skill-কে আপনার নিজের SearXNG instance-এ নির্দেশ করলে আপনার query কোনো commercial search API-এর বাইরে থাকে। একই সঙ্গে skill-এর trust boundary কোথায়, তা স্পষ্ট হয়। কারণ skill যে ফলাফল ফেরত দেয়, সেগুলো কোনো অপরিচিত ব্যক্তির লেখা text।
এই ধরনের format-এর সুবিধা হলো, সক্ষমতাগুলো share করা যায়। কেউ নির্দিষ্ট কাজের জন্য একটি skill লেখে, সেটি publish করে, এবং অন্যরা তা যুক্ত করে। এই সুবিধার ঝুঁকিও আছে। কারণ skill হলো কোনো অপরিচিত ব্যক্তির code, যা আপনার agent দ্বিধা না করেই চালাবে। তাই আপনি নিজে লেখেননি এমন যেকোনো কিছু load করার আগে নিজের host করা একটি security scanner দিয়ে পরীক্ষা করা উপযোগী। আপনি নিজের agent তৈরি করলে শুরুতেই একটি ছোট ও স্পষ্ট extension format নির্ধারণ করুন। এতে পরে প্রতিটি সক্ষমতা core-এর মধ্যে hard-code করতে হবে না।
নিজের মডেল ব্যবহার করুন
OpenClaw মডেল-নিরপেক্ষ। এটি নিজস্ব কোনো language model সরবরাহ করে না। এর পরিবর্তে, আপনি যে মডেল বেছে নেবেন সেটির সঙ্গে এটি সংযুক্ত হয়। সেই মডেল hosted API হতে পারে অথবা আপনি নিজে চালাতে পারেন।
খরচ, গোপনীয়তা এবং নিয়ন্ত্রণের ক্ষেত্রে এই বিভাজন গুরুত্বপূর্ণ। hosted API ব্যবহার করলে কোনো hardware পরিচালনা না করেই সবচেয়ে শক্তিশালী মডেল পাওয়া যায়। তবে token-ভিত্তিক খরচ দিতে হয় এবং আপনার prompt সার্ভারের বাইরে পাঠানো হয়। Ollama-এর মতো কোনো software দিয়ে self-hosted model চালালে প্রতিটি message আপনার নিজের server-এই থাকে। তখন খরচের মধ্যে শুধু hardware ও বিদ্যুৎ থাকে। তবে এর বিনিময়ে ছোট বা ধীরগতির model চালাতে হতে পারে। অনেকে দুটি পদ্ধতি একসঙ্গে ব্যবহার করেন। কোনো agent-কে সম্পূর্ণ private রাখতে চাইলে আপনার VPS-এ model self-host করা এই শেষ ব্যবধানটিও দূর করে। তুলনা করার মতো আরেকটি self-hosted agent হলো Hermes Agent।
একটি তৈরি করবেন কি?
আপনি এগুলো সব নিজেই তৈরি করতে পারেন। উপাদানগুলো অস্বাভাবিক কিছু নয়: একটি daemon, কয়েকটি chat connector, একটি model-and-tools loop, একটি Markdown folder এবং একটি plugin format। এগুলো বোঝা সত্যিই কাজে লাগে। এতে আপনি যে প্রতিটি agent ব্যবহার করবেন, তার কার্যপ্রণালি পরিষ্কার হয় এবং ঝুঁকি ঠিক কোথায় থাকে তা জানা যায়।
তবে অধিকাংশ মানুষের জন্য সৎ উত্তর হলো, এটি নতুন করে বানানোর বদলে আসল সফটওয়্যারটি চালিয়ে harden করা। OpenClaw ইতিমধ্যে connector, loop এবং skill format সমাধান করেছে, এবং এর নিরাপত্তা নিয়ে বাস্তব পর্যালোচনাও হয়েছে। আপনার সময় এমন অংশে ব্যয় করা বেশি কার্যকর, যেটি সঠিকভাবে করা আপনার নিজের দায়িত্ব—নিজের server-এর setup এবং hardening। আপনি যদি আগে শেখার পথ বেছে নিতে চান, তাহলে ধাপে ধাপে ধারণাগুলো আয়ত্ত করা agent-এর source code সরাসরি পড়ার চেয়ে বেশি কার্যকর, কারণ প্রতিটি ধাপ শেষে আপনার হাতে এমন একটি জিনিস থাকে, যা আপনি নিজে তৈরি করেছেন। শেখার জন্য একটি ছোট সংস্করণ তৈরি করুন। ব্যবহারের জন্য আসল সংস্করণটি চালিয়ে নিরাপদ করুন।
সাধারণ ভিত্তিগুলো VPS-এ নিজের AI agent তৈরি করা-এ রয়েছে, আর Claude দিয়ে একটি agent তৈরি করা একই ধারণাগুলো নির্দিষ্ট একটি model-কে brain হিসেবে ব্যবহার করে দেখায়।
FAQ
OpenClaw-এর মতো agent তৈরি করা কি কঠিন?
প্রতিটি অংশ আলাদাভাবে কঠিন নয়। একটি gateway process, একটি chat connector, একটি model-and-tools loop এবং একটি files folder—প্রতিটিই আলাদাভাবে সরল। কঠিন অংশ হলো এটি নিরাপদভাবে তৈরি করা। chat message থেকে shell command চালানো agent একটি গুরুতর security surface তৈরি করে। sandboxing, permissions এবং unprivileged user-এর সঠিক configuration করা feature-গুলো সংযুক্ত করার চেয়ে বেশি কাজের।
OpenClaw database-এর পরিবর্তে Markdown file-এ memory সংরক্ষণ করে কেন?
কারণ single-user personal agent-এর জন্য file যথেষ্ট এবং অনেক সরল। কোনো database service চালাতে হয় না। memory সহজে পড়া যায় এবং হাতে সংশোধন করা যায়। agent-কে অন্য server-এ সরিয়ে নিতে শুধু একটি directory copy করলেই হয়। বড় scale-এ database ব্যবহার যুক্তিযুক্ত হয়, এখানে নয়।
Personal AI agent-এর সবচেয়ে বিপজ্জনক অংশ কোনটি?
যে tool-গুলো agent-কে কাজ করার ক্ষমতা দেয়: shell command চালানো, browser নিয়ন্ত্রণ করা এবং file লেখা। agent তৈরির কারণ এগুলোই, আবার এগুলোর কারণেই এটি আপনার ক্ষতি করতে পারে। OpenClaw-এর March 2026 security event-এ চার দিনে 9টি issue শনাক্ত হয়েছিল, যার মধ্যে 9.9 rating-প্রাপ্ত একটি critical issue ছিল। tool layer সতর্কতার সঙ্গে পরিচালনার পক্ষে এটি সবচেয়ে স্পষ্ট কারণ। agent-কে unprivileged user হিসেবে চালান, destructive action অনুমোদন-নির্ভর করুন এবং execution sandbox করুন।
এটি তৈরি করতে কি আমার নিজের language model দরকার?
না। OpenClaw-এর মতো agent model-agnostic, তাই আপনার পছন্দের একটি model সংযুক্ত করতে পারেন। শক্তিশালী model-এর জন্য hosted API ব্যবহার করা যায়। সম্পূর্ণ privacy-এর জন্য নিজে চালানো model-ও ব্যবহার করা যায়। Ollama দিয়ে self-hosting করলে প্রতিটি message আপনার নিজের server-এই থাকে, তবে এর বিনিময়ে ছোট model চালাতে হয়।