Sverklo, একটি লোকালি হোস্ট করা কোড-সার্চ সার্ভার, এখন ডেভেলপারদের একটি এআই এজেন্ট ফলাফলের ওপর ভিত্তি করে কাজ করার আগে কুয়েরির প্রতিটি ধাপ পরীক্ষা করার সুযোগ দেয় – ফাইল আবিষ্কার থেকে শুরু করে সিম্বল-গ্রাফ রিজনিং পর্যন্ত।
কেন বর্তমান কোডিং এজেন্টরা হোঁচট খায়
বেশিরভাগ কোড-জেনারেশন টুল একটি রিপোজিটরিকে একটি বিশাল টেক্সট ডাম্প হিসেবে বিবেচনা করে। তারা স্নিপেট এমবেড করে, একটি সিমিলারিটি সার্চ চালায় এবং সর্বোচ্চ স্কোরযুক্ত ফ্র্যাগমেন্টটি রিটার্ন করে। যখন ফ্র্যাগমেন্টটি পুরনো (stale), স্কোপের বাইরে বা কেবল একটি ফাইলের নাম হয়, তখন এজেন্ট তার উৎসের দিকে নির্দেশ করতে পারে না। ব্যর্থতার ধরনটি কোনো শব্দ হারিয়ে যাওয়া নয়; বরং এটি একটি অনুপস্থিত কনটেক্সট লেয়ার যা একজন মানুষকে জানায় যে তথ্যটি কোথা থেকে এসেছে এবং এটি এখনও প্রযোজ্য কি না।
Sverklo-এর চার-স্তরীয় ভেরিফিকেশন মডেল
Sverklo নিজেকে একটি “ইঞ্জিনিয়ারিং হাইপোথিসিস” সার্ভার হিসেবে উপস্থাপন করে যা প্রথাগত সার্চের সাথে স্ট্রাকচারাল অ্যানালাইসিস যোগ করে:
- File Discovery – ইনডেক্সটি
.gitignoreএবং অন্যান্য ইগনোর ফাইলগুলো পড়ে। একটি ফলাফল বিশ্বাস করার আগে, আপনি ইনডেক্সটি কুয়েরি করে দেখতে পারেন আসলে কোন পাথগুলো স্ক্যান করা হয়েছে। - Code Structure – সিম্বলগুলো একটি গ্রাফে থাকে যা ডেফিনিশন, ইমপোর্ট এবং কল রিলেশনশিপ রেকর্ড করে। একটি লুকআপ শুধুমাত্র একটি ফাইল পাথ নয়, বরং সিম্বল অবজেক্ট রিটার্ন করে, যাতে আপনি নিশ্চিত করতে পারেন যে সঠিক API সারফেস রেফারেন্স করা হয়েছে।
- Context Delivery – যখন আপনি একটি টোকেন বাজেট সেট করেন, Sverklo সেই স্নিপেটগুলোর একটি ম্যাপ রিটার্ন করে যা উত্তরে অবদান রেখেছে। ম্যাপটিতে একটি
found_byফিল্ড থাকে যা আপনাকে জানায় যে ম্যাচটি BM25 কিওয়ার্ড ম্যাচিং, ONNX-জেনারেটেড এমবেডিং, নাকি PageRank-র্যাঙ্কড সিম্বল গ্রাফ থেকে এসেছে। - Memory Ledger – সার্ভারটি প্রতিটি সিদ্ধান্ত লগ করে। যদি কোনো ফাইল পরিবর্তিত হয়, লেজারটি সংশ্লিষ্ট মেমরি এন্ট্রিটিকে 'stale' বা পুরনো হিসেবে ফ্ল্যাগ করে, যা দেখায় যে ক্যাশ করা উত্তরটি এখনও বৈধ কি না।
রিট্রিভাল স্ট্যাক কীভাবে কাজ করে
Sverklo শুধুমাত্র এমবেডিংয়ের ওপর নির্ভর করে না। এটি সঠিক টার্ম ম্যাচিংয়ের জন্য একটি ক্লাসিক BM25 কিওয়ার্ড ইঞ্জিন চালায়, সেমান্টিক সিমিলারিটির জন্য সেগুলোকে ONNX-ভিত্তিক ভেক্টর এমবেডিং দিয়ে বর্ধিত করে, এবং তারপর উচ্চ-প্রভাবশালী ডেফিনিশনগুলো সামনে আনার জন্য সিম্বল গ্রাফের ওপর একটি PageRank অ্যালগরিদম প্রয়োগ করে। প্রতিটি হিট কোন পদ্ধতিতে তৈরি হয়েছে তা প্রকাশ করার মাধ্যমে, ডেভেলপাররা অমিলগুলো শনাক্ত করতে পারেন—উদাহরণস্বরূপ, একটি BM25 হিট যাকে এমবেডিং মডেল অপ্রাসঙ্গিক মনে করে—এবং কোন সিগন্যালটি বিশ্বাস করতে হবে তা বেছে নিতে পারেন।
ব্যবহারিক প্রয়োগ
- অপরিচিত কোডবেস এক্সপ্লোর করা – ম্যানুয়ালি grep না করেই একটি ফাংশন নাম থেকে এর সমস্ত কলারের কাছে চলে যান।
- ডিপেন্ডেন্সি গ্রাফ ম্যাপিং করা – একাধিক প্যাকেজে বিস্তৃত ইমপোর্ট চেইনগুলো ভিজ্যুয়ালাইজ করুন।
- রিফ্যাক্টর ইমপ্যাক্ট অনুমান করা – একটি নির্দিষ্ট ফাইল পরিবর্তন করলে কোন সিম্বলগুলো ভেঙে যাবে তা দেখুন।
- সিম্যান্টিক প্রশ্নের উত্তর দেওয়া – জিজ্ঞাসা করুন “এই হেল্পারটি কী করে?” এবং একটি সংক্ষিপ্ত, সূত্রসহ উদ্ধৃতি পান।
যেসব বিষয়ে সতর্ক থাকতে হবে
- Freshness – একটি রিনডেক্স শেষ হতে পারে কিন্তু ইনডেক্স টাইমস্ট্যাম্প পুরনো থাকতে পারে। সর্বশেষ রানটি বর্তমান বলে ধরে না নিয়ে সবসময় index-status এন্ডপয়েন্টটি কুয়েরি করুন।
- Project registration – একটি প্রজেক্ট আনরেজিস্টার করার সময়, Sverklo দ্বারা সরবরাহ করা অভ্যন্তরীণ প্রজেক্টের নাম ব্যবহার করুন, অ্যাবসোলিউট ফাইল সিস্টেম পাথ নয়, অন্যথায় অপারেশনটি নীরবে ব্যর্থ হবে।
- Tool naming quirks – MCP হোস্টগুলো মাঝে মাঝে প্রজেক্টের নাম দুবার যোগ করে দেয়, যার ফলে
sverklo_sverklo_impact-এর মতো আইডেন্টিফায়ার তৈরি হয়। কোনো টুল কল করার আগে নামটি পুনরায় যাচাই করে নিন।
এরপর কী চেষ্টা করবেন
- একটি ডিসপোজেবল রিপোজিটরি ক্লোন করুন এবং লোকালি Sverklo চালু করুন।
- একটি সাধারণ সিম্বল লুকআপ চালান এবং
found_byফিল্ডটি পরীক্ষা করুন। - একটি সোর্স ফাইল পরিবর্তন করুন এবং পুনরায় লুকআপ চালান; লক্ষ্য করুন কীভাবে মেমরি লেজার পুরনো এন্ট্রিটিকে ফ্ল্যাগ করে।
- পুরনো ইনডেক্সগুলো স্বয়ংক্রিয়ভাবে শনাক্ত করতে আপনার বিল্ড স্ক্রিপ্টে index-status চেকটি যুক্ত করুন।
মূল কথা
Sverklo একটি কোড-সার্চ ইঞ্জিনকে একটি অডিটেবল এভিডেন্স চেইনে রূপান্তরিত করে। ডেভেলপারদের ফাইল কভারেজ, সিম্বল নির্ভুলতা, রিট্রিভাল পদ্ধতি এবং মেমরির নতুনত্ব যাচাই করতে বাধ্য করার মাধ্যমে, এটি প্রোডাকশনে পৌঁছানোর আগেই একটি এআই-চালিত পরামর্শ নির্ভরযোগ্য কি না তা সিদ্ধান্ত নিতে সাহায্য করে।
