AgentInspect ডেভেলপারদের একটি AI এজেন্টের ধাপে ধাপে পদক্ষেপগুলোকে JSONL লগ হিসেবে ক্যাপচার করতে দেয়, যার ফলে প্রয়োজনীয় টুলগুলো কাজ করেছে কি না তা যাচাই করা সম্ভব হয় – আর এর জন্য স্ট্যাকে OpenTelemetry যুক্ত করার প্রয়োজন হয় না।
Vercel AI SDK-এর ওপর ভিত্তি করে তৈরি একটি আবহাওয়া-যাচাইকরণ (weather-checking) উদাহরণের দ্রুত পরীক্ষায়, AgentInspect একটি “silent failure” বা নিঃশব্দ ব্যর্থতা চিহ্নিত করেছে: চূড়ান্ত উত্তরটি সঠিক ছিল, কিন্তু weather-tool কলটি কখনোই সম্পন্ন হয়নি। লাইব্রেরিটির প্রসেস-লেভেল চেক সেই সমস্যাটি ধরে ফেলেছে যা একটি সাধারণ আউটপুট টেস্ট মিস করে যেত।
কেন এক্সিকিউশন পাথ (execution path) গুরুত্বপূর্ণ
একটি AI এজেন্টের রেসপন্স হলো একটি চেইনের চূড়ান্ত ফলাফল, যার মধ্যে একাধিক মডেল ইনভোকেশন (model invocation) এবং এক্সটার্নাল টুল কল থাকতে পারে। যদি একটি প্রম্পটের কাজ হয় লাইভ ডেটা সংগ্রহ করা, তবে সেই ডেটা সংগ্রহ না করা সত্ত্বেও টেক্সটটি সঠিক দেখালে ঝুঁকির মাত্রা পরিবর্তিত হয়ে যায়। শুধুমাত্র উত্তরের ওপর ভিত্তি করে করা টেস্টের কারণে একটি গুরুত্বপূর্ণ ধাপ বাদ পড়া বাগ (bug) সহজেই প্রোডাকশনে ধরা না পড়েই চলে যেতে পারে।
AgentInspect কী করে
- Lightweight recording – একটি TypeScript অ্যাডাপ্টার এজেন্ট কোডের সাথে যুক্ত হয় এবং প্রতিটি মডেল কল, টুল ইনভোকেশন এবং তাদের ক্রম একটি line-delimited JSON (JSONL) ফাইলে লিখে রাখে।
- Rule engine – ডেভেলপাররা সহজ প্রেডিকেট (predicates) ঘোষণা করতে পারেন, যেমন “the weather tool must be called” অথবা “the finance API must not be used।” লাইব্রেরিটি প্রতিটি রান শেষে এই নিয়মগুলো মূল্যায়ন করে।
- CLI inspection – ব্যর্থ রানগুলো ফাইল হিসেবে সেভ করা হয়, যা বিল্ট-ইন কমান্ড-লাইন টুল দিয়ে ওপেন করে এক্সিকিউশন ট্রেসের একটি মানুষের পাঠযোগ্য (human-readable) রিপ্লে দেখা সম্ভব।
যেহেতু লগগুলো লোকাল ফাইল, তাই কোনো ট্রেসিং ব্যাকএন্ড, নেটওয়ার্ক কনফিগারেশন বা আলাদা অবজারভেবিলিটি সার্ভিসের প্রয়োজন নেই।
কীভাবে টেস্টটি সেটআপ করা হয়েছিল
- Process checks – একটি নিয়ম যাচাই করেছিল যে weather-tool এন্ডপয়েন্টটি ইনভোকেড করা হয়েছে কি না।
- Answer checks – একটি আলাদা অ্যাসারশন (assertion) জেনারেট করা টেক্সটটিকে প্রত্যাশিত ইনডোর-সাইটসিয়িং (indoor-sightseeing) রেকমেন্ডেশনের সাথে তুলনা করেছিল।
দুটি সিনারিও চালানো হয়েছিল:
| সিনারিও (Scenario) | উত্তর যাচাই (Answer check) | প্রসেস যাচাই (Process check) |
|---|---|---|
| Happy path (আবহাওয়া সংগ্রহ করা হয়েছে) | Pass | Pass |
| আবহাওয়া বাদ পড়েছে (টুল কল করা হয়নি) | Pass | Fail |
দ্বিতীয় রানটি প্রসেস চেকের গুরুত্ব প্রদর্শন করে: উত্তরটি ঠিক মনে হলেও, টুল কলটি না হওয়া একটি লুকানো ত্রুটির সংকেত দেয়।
AgentInspect বনাম Promptfoo
Promptfoo একটি প্রতিষ্ঠিত টেস্টিং ফ্রেমওয়ার্ক, যা OpenTelemetry-এর মাধ্যমে ট্রেস ক্যাপচার করে। এই পদ্ধতিটি সেই সব টিমের জন্য ভালো যারা ইতিমধ্যে একটি কালেক্টরে টেলিমেট্রি ডেটা পাঠায়, তবে এটি কনফিগারেশনের বাড়তি চাপ এবং ট্রেসিং ইনফ্রাস্ট্রাকচারের ওপর নির্ভরশীলতা তৈরি করে।
AgentInspect ডেভেলপমেন্টের শুরুর দিকের পর্যায়ের মনে হতে পারে, তবে এটি সেটআপ করা খুবই সহজ।
কাদের এটি প্রয়োজন
- CI pipelines – একটি মাত্র ধাপ যোগ করা, যা AgentInspect রান করবে এবং নিয়ম লঙ্ঘন হলে বিল্ডটি ফেইল করে দেবে, তা নিঃশব্দ বাগগুলোকে সরাসরি বাধা (hard stops) হিসেবে চিহ্নিত করে।
- Debugging – কলগুলোর সঠিক সিকোয়েন্স রিপ্লে করার জন্য JSONL লগগুলো লোকালি ওপেন করা যায়, যা রিমোট ট্রেস ড্যাশবোর্ডে খোঁজাখুঁজি করার চেয়ে অনেক সময় বাঁচায়।
- Product teams – কোনো ফিচার রিলিজ করার আগে একটি গুরুত্বপূর্ণ ডেটা ফেচ (data fetch) আসলে সম্পন্ন হয়েছে কি না তা নিশ্চিত হওয়া পরবর্তী পর্যায়ে ব্যবহারকারীর অভিযোগের ঝুঁকি কমিয়ে দেয়।
সারকথা: যখন একটি AI এজেন্টের সঠিকতা কেবল চূড়ান্ত টেক্সটের ওপর নয়, বরং তার নেওয়া পদক্ষেপগুলোর ওপর নির্ভর করে, তখন AgentInspect-এর মতো একটি লাইটওয়েট রেকর্ডার একটি পূর্ণাঙ্গ ট্রেসিং স্ট্যাকের ঝামেলা ছাড়াই লুকানো প্রসেস বাগগুলোকে দৃশ্যমান এবং পরীক্ষাযোগ্য ব্যর্থতায় রূপান্তর করতে পারে।
