আমি আমার কোডিং এজেন্টদের জন্য একটি লোকাল কন্ট্রোল প্লেন তৈরি করেছি
বিভিন্ন AI এজেন্ট ব্যবহার করা আগে বেশ বিশৃঙ্খল ছিল।
আমি Copilot, Claude Code এবং OpenCode ব্যবহার করতাম। প্রতিটি টুলের নিজস্ব হোম ডিরেক্টরি, নিজস্ব সেটিংস এবং নিজস্ব মেমরি ছিল। প্রতিবার যখন আমি নতুন কোনো স্কিল বা রুল যোগ করতাম, আমাকে প্রশ্ন করতে হতো: এই টুলটি এটি কোথায় আশা করছে?
আমার হোম ডিরেক্টরি AI ফোল্ডারের একটি আবর্জনার ড্রয়ারে পরিণত হয়েছিল।
আমি এজেন্টদের মধ্যে প্ল্যান আদান-প্রদান করার জন্য Markdown ফাইল ব্যবহার করার চেষ্টা করেছি। এটি কিছুটা সাহায্য করলেও পুরোপুরি সফল হয়নি। একটি এজেন্ট কোনো একটি ধারণা (assumption) মিস করলে পরের এজেন্টটি ভুল ফলাফল তৈরি করত। ফাইলগুলো ডেটা প্রদান করত, কিন্তু সেগুলো কোনো শেয়ারড কনটেক্সট (shared context) প্রদান করতে পারত না।
আমার এমন একটি উপায় প্রয়োজন ছিল যা দিয়ে:
- একবারেই হাই-লেভেল রুলস লেখা যায়।
- পারমিশন রুলস এক জায়গায় রাখা যায়।
- হাতে কলমে স্কিল কপি করা বন্ধ করা যায়।
- বিভিন্ন প্রজেক্ট এবং সেশনের মধ্যে মেমরি শেয়ার করা যায়।
এটি সমাধানের জন্য আমি একটি লোকাল কন্ট্রোল প্লেন তৈরি করেছি।
আমার সেটআপের মূল ভিত্তি হলো একটি মাত্র ডিরেক্টরি: ~/.ai।
ছড়িয়ে ছিটিয়ে থাকা ফোল্ডারের পরিবর্তে, আমি symlinks ব্যবহার করি। টুলগুলো মনে করে তারা তাদের নিজস্ব স্পেসে আছে, কিন্তু আসল কাঠামোটি একটি মাত্র জায়গায় থাকে। আমি সমস্ত মডেল ট্রাফিক একটি লোকাল প্রক্সির মাধ্যমে রাউট করি এবং MCP-এর মাধ্যমে মেমরির জন্য একটি শেয়ারড SQLite ডাটাবেস ব্যবহার করি।
এটি দুটি ভিন্ন কাজকে আলাদা করে: ১. রাউটিং (Routing): প্রোভাইডারের কাছে পৌঁছানোর আগে মডেল রিকোয়েস্টগুলো একটি লোকাল প্রক্সির মধ্য দিয়ে যায়। ২. মেমরি (Memory): দীর্ঘস্থায়ী তথ্যগুলো একটি লোকাল স্টোরে থাকে।
যদি কোনো মডেল অদ্ভুত আচরণ করে, আমি প্রক্সি চেক করি। যদি কোনো এজেন্ট কোনো তথ্য ভুলে যায়, আমি মেমরি চেক করি। এটি ডিবাগিং সহজ করে তোলে।
আমার শেয়ারড মেমরি এমন সব জিনিস জমা রাখে যা নতুন করে খুঁজে বের করা সময়সাপেক্ষ:
- প্রজেক্টের সিদ্ধান্তসমূহ।
- আর্কিটেকচার নোট।
- ওয়ার্কফ্লো পছন্দসমূহ।
- বারবার আসা বাগ (bugs)।
আমি আমার সিকিউরিটি বা নিরাপত্তাকেও কেন্দ্রীভূত করেছি। আমি কোডিং স্ট্যান্ডার্ড এবং নিষিদ্ধ কমান্ডের (denied commands) জন্য শেয়ারড ফাইল ব্যবহার করি। এটি নিশ্চিত করে যে এক এজেন্ট থেকে অন্য এজেন্টে পরিবর্তন করলেও এনভায়রনমেন্টের নিরাপত্তা পরিবর্তিত হয় না।
এটি একটি নিখুঁত এজেন্ট খুঁজে পাওয়ার বিষয় নয়। এটি নিশ্চিত করার বিষয় যে আমার এজেন্টরা যথেষ্ট কনটেক্সট শেয়ার করে, যাতে তাদের মধ্যে পরিবর্তন করা মানে নতুন করে শুরু করা মনে না হয়।
Source: https://dev.to/sperekrestova/i-built-a-local-control-plane-for-my-coding-agents-1bf7
Optional learning community: https://t.me/GyaanSetuAi