AI agent ও tool use: function calling সহজ ভাষায়
টুল model-কে শুধু কথা নয়, কাজ করতে দেয়। agent-এর পেছনের loop এবং নির্ভরযোগ্য ও নিরাপদ রাখার নকশা নিয়ম শিখুন।

সাধারণ LLM শুধু লেখা তৈরি করতে পারে। টুল পেলে সে কাজও করতে পারে: ওয়েব সার্চ, database query, ফাইল পড়া, API কল, কোড চালানো। যে সিস্টেম লক্ষ্যে পৌঁছাতে model-কে ধাপে ধাপে কোন টুল ব্যবহার করবে ঠিক করতে দেয় তাকে প্রায়ই agent বলা হয়।
Function calling কীভাবে কাজ করে
১. আপনি model-কে উপলব্ধ টুল বর্ণনা করেন: নাম, বিবরণ ও parameter schema। ২. ব্যবহারকারী কিছু জিজ্ঞেস করে। Model সরাসরি উত্তর দেয় অথবা আর্গুমেন্টসহ টুল কলের অনুরোধ পাঠায়। ৩. আপনার কোড টুল চালায় (model নিজে কখনো চালায় না) এবং ফল ফেরত দেয়। ৪. Model ফল পড়ে এগোয়: উত্তর দেয় অথবা আরেকটি টুল ডাকে।
tools = [{
name: "get_order_status",
description: "Look up the status of a customer's order by order ID.",
parameters: { type: "object", properties: { order_id: { type: "string" } }, required: ["order_id"] }
}]
সঠিক request ফরম্যাট provider ভেদে আলাদা, ধারণা একই। মূল কথা: model শুধু কল প্রস্তাব করে। চালাবেন কি না আপনার অ্যাপ ঠিক করে।
Agent loop
শেষ না হওয়া বা সীমা না পৌঁছানো পর্যন্ত পুনরাবৃত্তি:
model-কে জিজ্ঞেস করুন এরপর কী করবে
টুল চাইলে: যাচাই করুন, চালান, ফল কথোপকথনে যোগ করুন
নইলে: চূড়ান্ত উত্তর ফেরত দিন
Agent এই loop-এর ওপর পরিকল্পনা, স্মৃতি ও নিজে যাচাই যোগ করে। বেশি স্বায়ত্তশাসন মানে বেশি শক্তি এবং ভুল হওয়ার বেশি উপায়।
ভালো টুল নকশা
- পরিষ্কার নাম ও বিবরণ। আপনার লেখা থেকেই model টুল বাছে, তাই প্রতিটি ঠিক কী করে ও কখন ব্যবহার করবে বলুন।
- সহজ parameter-সহ ছোট, কেন্দ্রীভূত টুল একটি বিশাল টুলের চেয়ে ভালো।
- কাজের ফল: context নষ্ট করা লেখার বন্যা নয়, সংক্ষিপ্ত, কাঠামোবদ্ধ আউটপুট ফেরত দিন।
- সহায়ক error: পরিষ্কার বার্তা দিন ("order পাওয়া যায়নি, ID দেখুন") যাতে model সামলে উঠতে পারে।
- সম্ভব হলে idempotent, যাতে retry কোনো পার্শ্বপ্রতিক্রিয়া পুনরাবৃত্তি না করে।
- বিপজ্জনক অংশ স্পষ্ট করুন, যেমন আলাদা "draft email" ও "send email" টুল।
টুলের নিরাপত্তা নিয়ম
টুল স্তরেই agent আসল ক্ষতি করতে পারে, বিশেষত অবিশ্বস্ত কনটেন্ট পড়লে (এই সিরিজের LLM নিরাপত্তা লেখা দেখুন)।
- Least privilege। প্রতিটি টুল ও credential-এর কাজ চলার মতো ন্যূনতম access।
- আর্গুমেন্ট কোডে যাচাই করুন। ধরন, পরিসর, অনুমোদিত মান এবং বর্তমান ব্যবহারকারী সেই resource-এ কাজ করতে পারে কি না দেখুন। ঠিক মনে হলেও model-এর আর্গুমেন্ট বিশ্বাস করবেন না।
- অপরিবর্তনীয় বা ব্যয়বহুল কাজে মানুষের অনুমোদন: পেমেন্ট, মোছা, বার্তা পাঠানো, deploy।
- আগে read-only। কিছু বদলাতে পারে না এমন টুল দিয়ে শুরু করুন।
- কোনো secret ও সীমিত network ছাড়া কোড চালানো sandbox-এ করুন।
- সীমা: প্রতি কাজে ধাপ, টুল কল, সময় ও খরচের সর্বোচ্চ, loop ও ছুটে যাওয়া খরচ ঠেকাতে।
- Audit ও debug-এর জন্য আর্গুমেন্ট ও ফলসহ প্রতিটি টুল কল log করুন।
নির্ভরযোগ্যতার টিপ
- Prompt একটি কাজে কেন্দ্রীভূত রাখুন এবং agent-কে পরিষ্কার "শেষ"-এর সংজ্ঞা দিন।
- Error model-কে ফেরত দিন ও retry করতে দিন, তবে retry সীমিত রাখুন।
- সম্ভব হলে চূড়ান্ত ফল কোডে যাচাই করুন (যেমন agent যে test পাস বলছে তা চালান)।
- ব্যর্থতা ও অপব্যবহার ক্ষেত্রসহ কাজের test set-এ শুরু থেকে শেষ পর্যন্ত মূল্যায়ন করুন (মূল্যায়ন লেখা দেখুন)।
- মানুষ নজর রেখে শুরু করুন, প্রমাণ জমলেই কেবল তদারকি শিথিল করুন।
Workflow নাকি agent?
অনেক সমস্যা নির্দিষ্ট workflow দিয়ে ভালো মেটে, যেখানে কোড ধাপ ঠিক করে আর LLM শুধু আলাদা ধাপ সামলায় (শ্রেণিবিন্যাস, নিষ্কাশন, খসড়া)।
- ধাপ জানা থাকলে workflow ব্যবহার করুন। এটি সস্তা, দ্রুত, বেশি অনুমানযোগ্য ও পরীক্ষা করা সহজ।
- পথ আগে জানা যায় না এবং কাজে নমনীয় সিদ্ধান্ত লাগে, যেমন খোলা গবেষণা বা পুরো codebase জুড়ে কোডিং, তখন agent ব্যবহার করুন।
ভালো নিয়ম: কাজ করে এমন সবচেয়ে সরল নকশা নিন এবং স্পষ্ট লাভ থাকলেই স্বায়ত্তশাসন যোগ করুন।
যেসব standard দেখবেন
Model Context Protocol (MCP)-এর মতো protocol model ও অ্যাপকে টুল ও data উৎসের সাথে যুক্ত করার সাধারণ উপায় দেয়, ফলে প্রতি জোড়ার জন্য আলাদা integration লিখতে হয় না। প্রতিটি টুল server-কে আপনার অনুমতিতে চলা কোড ধরুন: শুধু বিশ্বস্তগুলো যুক্ত করুন এবং সেগুলো কী করতে পারে পর্যালোচনা করুন।
মূল কথা: model টুল কল প্রস্তাব করে আর আপনার কোড চালায়। ছোট, পরিষ্কার, least-privilege টুল বানান, সবকিছু যাচাই করুন, ঝুঁকিপূর্ণ কাজে অনুমোদন চান, সীমা দিন, সব log করুন, এবং পারলে স্বয়ংক্রিয় agent-এর বদলে সরল workflow বাছুন।
AI ও LLM সিরিজ, পর্ব ২ (মান, agent ও খরচ): 3 নম্বর (মোট 5)। আগের লেখা: LLM অ্যাপ মূল্যায়ন: test set, metric ও LLM judge.


