
agent-purge কী
agent-purge হলো একাধিক Coding Agent-এর জন্য তৈরি একটি সিস্টেম প্রম্পট ব্যবস্থাপনা টুল। বিভিন্ন Agent স্টার্টআপ প্যারামিটার, কনফিগারেশন ফাইল, Hook বা প্লাগইনের মাধ্যমে প্রম্পট পড়তে পারে। agent-purge এই পার্থক্যগুলো আড়াল করে, যাতে ব্যবহারকারী একই Persona বিষয়বস্তুকে কেন্দ্র করে ইনজেক্ট, পরিবর্তন এবং প্রত্যাহার করতে পারেন।
প্রকল্পটি তিনটি মোড সমর্থন করে:
- replace:Persona-এর মূল বিষয়বস্তু দিয়ে লক্ষ্য সিস্টেম প্রম্পট প্রতিস্থাপন করে।
- append:বিদ্যমান প্রম্পটের শেষে Persona-এর মূল বিষয়বস্তু যোগ করে।
- off:ইনজেকশন বন্ধ করে এবং করা পরিবর্তন প্রত্যাহার করে।
মোড তাৎক্ষণিকভাবে পরিবর্তন করা যায়। Web-এর প্রধান সুইচ বন্ধ করলে বা --mode off ব্যবহার করলে, টুলটি সংশ্লিষ্ট পরিবর্তনগুলো আগের অবস্থায় ফিরিয়ে দেয় এবং পরিচালিত ইনজেকশনের কোনো অবশিষ্টাংশ রাখে না।
মূল প্রক্রিয়া ও বৈশিষ্ট্য
তিনটি একীভূত চ্যানেল
agent-purge বিভিন্ন Harness-এর সঙ্গে মানিয়ে নিতে তিনটি চ্যানেল ব্যবহার করে। তিনটি চ্যানেলই শেষ পর্যন্ত বর্তমান personas/<id>.md ফাইলের মূল বিষয়বস্তু ব্যবহার করে।
- install:লক্ষ্য Harness-এ পরিচালিত কনফিগারেশন ব্লক লেখে, যা Markdown, Hooks বা প্লাগইন প্রক্রিয়া ব্যবহার করতে পারে। এটি স্থায়ী কনফিগারেশনের অংশ; অন্য কেউ সংশ্লিষ্ট Harness সরাসরি চালালেও এটি কার্যকর হবে।
- shim:
PATH-এর শুরুতে একই নামের একটি কমান্ড শেল রাখে এবং কলটিagent-purge <h>-এ ফরোয়ার্ড করে। এর মাধ্যমে সরাসরি প্রবেশ করা মূল কমান্ডের নিয়ন্ত্রণ নেওয়া হয়। - slash:সেশনের মধ্যে
/purge on,/purge offবা/purge statusব্যবহার করে তাৎক্ষণিক পরিবর্তন করা যায়, ডিস্কের কনফিগারেশন পরিবর্তন না করেই।
স্থানীয়তা ও প্রত্যাবর্তনযোগ্যতা
প্রকল্পটি শুধু প্রম্পট-সম্পর্কিত অবস্থানগুলো পরিবর্তন করে; বাইনারি ফাইল পরিবর্তন করে না এবং অনুমোদন ভাঙে বা এড়িয়ে যায় না। অবস্থা স্থানীয় মেশিনের state.json-এ সংরক্ষিত হয়, আপলোড করা হয় না। আনইনস্টল, নিয়ন্ত্রণমুক্ত করা বা মোড বন্ধ করার মাধ্যমে মূল অবস্থা ফিরিয়ে আনা যায়।
agent-purge uninstall <h>
agent-purge disarm
agent-purge <h> --mode off
কোন Harness কোন চ্যানেল সমর্থন করে, তা স্থানীয় মেশিনে চালানোর সময় পাওয়া শনাক্তকরণ ফলাফলের ভিত্তিতে নির্ধারণ করা উচিত।
ইনস্টলেশনের পূর্বশর্ত
agent-purge চালাতে Node.js 20 বা তার পরের সংস্করণ প্রয়োজন। প্রকল্পটির নিজস্ব কোনো নির্ভরতা নেই। এটি npm-এর মাধ্যমে বিশ্বব্যাপী ইনস্টল করা যায়, অথবা npx ব্যবহার করে সরাসরি Web কনসোল খোলা যায়।
ইনস্টলেশন ও প্রথম চালনা
পদ্ধতি এক: বিশ্বব্যাপী ইনস্টলেশন
npm i -g agent-purge
ইনস্টলেশন সম্পন্ন হলে সরাসরি চালানো যায়:
agent-purge web
স্থানীয় কনসোলের ডিফল্ট ঠিকানা হলো http://127.0.0.1:7788। ব্রাউজারে এই ঠিকানা খুললে Persona, Harness-এর অবস্থা এবং প্রধান সুইচ দেখা ও পরিচালনা করা যাবে।
পদ্ধতি দুই: npx-এর মাধ্যমে চালু করা
আগে বিশ্বব্যাপী ইনস্টল করতে না চাইলে সরাসরি চালান:
npx agent-purge web
ডেটা ডিরেক্টরি
কনফিগারেশন ও Persona npm প্যাকেজের ডিরেক্টরিতে রাখা হয় না, তাই সফটওয়্যার প্যাকেজ আপগ্রেড করলে ব্যবহারকারীর ডেটা ওভাররাইট হবে না। ডিফল্ট অবস্থান:
- Linux ও macOS:
~/.agent-purge/ - Windows:
C:\Users\<আপনি>\.agent-purge\
ডিরেক্টরিতে প্রধানত state.json এবং personas/ থাকে। প্রথমবার চালানোর সময় টুলটি Persona ডিরেক্টরিতে শুরু করার জন্য neutral.md টেমপ্লেট তৈরি করে।
আগে 0.1.x সংস্করণ ব্যবহার করা হয়ে থাকলে, নতুন সংস্করণ প্রথমবার চালানোর সময় প্যাকেজ ডিরেক্টরিতে থাকা আগের ডেটা স্বয়ংক্রিয়ভাবে স্থানান্তরিত হবে এবং মূল ফাইলগুলো সংরক্ষিত থাকবে।
কাস্টম ডেটা সংরক্ষণের অবস্থান
AGENT_PURGE_HOME পরিবেশ ভেরিয়েবলের মাধ্যমে আলাদা ডেটা ডিরেক্টরি নির্দিষ্ট করা যায়। Persona ব্যাকআপ রাখা, কাজের পরিবেশ আলাদা করা বা কনফিগারেশন অন্য ডিস্কে রাখার ক্ষেত্রে এটি উপযোগী।
Linux অথবা macOS
export AGENT_PURGE_HOME=/path/to/your/data
Windows
setx AGENT_PURGE_HOME D:\ap-data
সেট করার পর নতুন টার্মিনাল সেশনে agent-purge চালানো উচিত, যাতে পরিবেশ ভেরিয়েবল কার্যকর হয়েছে নিশ্চিত করা যায়।
Persona বোঝা ও পরিচালনা
প্রতিটি Persona-এর জন্য একটি personas/<id>.md ফাইল থাকে। ফাইলটি Frontmatter ও মূল বিষয়বস্তু নিয়ে গঠিত, যেখানে মূল বিষয়বস্তুই সিস্টেম প্রম্পটে বাস্তবে লেখা হয়।
Frontmatter-এ নিম্নলিখিত ক্ষেত্রগুলো সমর্থিত:
- description:Persona-এর বিবরণ, যা Web তালিকা ও
agent-purge lsআউটপুটে দেখানো হয়। - desc:পুরোনো বিবরণ ক্ষেত্র, এখনও সামঞ্জস্যপূর্ণ।
- order:ঐচ্ছিক সাজানোর তথ্য।
- harness:ঐচ্ছিক Harness মিলের তথ্য।
- model:ঐচ্ছিক মডেল মিলের তথ্য।
Web কনসোলে শুধু নাম ও বিবরণ পরিবর্তন করলে অন্যান্য Frontmatter কী সংরক্ষিত থাকে, পুরো অংশ ওভাররাইট হয় না।
Persona তালিকা করা
agent-purge ls
এই কমান্ডটি সব Persona তালিকাভুক্ত করে এবং বর্তমানে মিলে যাওয়া আইটেম চিহ্নিত করে। পাশাপাশি এটি চলার সময় শনাক্ত করা Harness ইনস্টলেশনের অবস্থা, সংস্করণ, ইনজেকশন স্তর এবং প্রতিটি চ্যানেলের প্রাপ্যতাও দেখায়।
বর্তমান Persona পরিবর্তন করা
agent-purge use <id>
এখানে <id> হলো personas/ ডিরেক্টরির Persona ফাইলের নামের পরিচয়। পরিবর্তনের পর পরবর্তী পরিচালিত কলগুলো এই Persona ব্যবহার করবে।
শুধু একটি কলের জন্য Persona নির্দিষ্ট করা
বর্তমান বৈশ্বিক নির্বাচন পরিবর্তন না করে শুধু এই কলের জন্য অন্য একটি Persona নির্দিষ্ট করা যায়:
agent-purge pi --persona <id>
ভিন্ন প্রম্পটের প্রভাব সাময়িকভাবে পরীক্ষা করার জন্য এই পদ্ধতি উপযোগী। কল শেষ হলে এই Persona পরবর্তী কলগুলোর ডিফল্ট নির্বাচন হবে না।
মৌলিক ব্যবহারের উদাহরণ
Web কনসোল চালু করা
agent-purge web
এরপর http://127.0.0.1:7788 ঠিকানায় যান। কনসোল থেকে চলমান অবস্থা দেখা এবং প্রধান সুইচ পরিচালনা করা যায়। প্রধান সুইচ বন্ধ করলে ইনজেকশন প্রত্যাহার করা হবে।
বর্তমান Persona ব্যবহার করে Codex চালু করা
agent-purge codex
agent-purge সংশ্লিষ্ট Backend ও স্থানীয় রানটাইম পরিবেশ অনুযায়ী চালু করার প্রক্রিয়া পরিচালনা করবে এবং এই Harness-এ বাস্তবে উপলব্ধ প্রক্রিয়ার মাধ্যমে বর্তমান Persona প্রয়োগের চেষ্টা করবে।
pi-কে একবারের জন্য প্রশ্ন করা
agent-purge pi --ask "এই প্রকল্পের ত্রুটি ব্যবস্থাপনার যুক্তি পরীক্ষা করুন"
এই কমান্ডটি বর্তমান Persona ব্যবহার করে একটি কল চালু করে এবং --ask-এর পরের বিষয়বস্তুকে এই পর্বের প্রশ্ন হিসেবে ব্যবহার করে।
সেশনের মধ্যে তাৎক্ষণিক পরিবর্তন
Slash চ্যানেল সমর্থনকারী Harness-এর ক্ষেত্রে সেশনের মধ্যে ব্যবহার করা যায়:
/purge on
/purge status
/purge off
/purge on:Persona ইনজেকশন সক্রিয় করে।/purge status:বর্তমান অবস্থা দেখায়।/purge off:ইনজেকশন বন্ধ করে, ডিস্কের কনফিগারেশন পরিবর্তন না করেই।
ইনজেকশন সত্যিই কার্যকর হয়েছে কি না নিশ্চিত করা
matrix.json-এ স্থির সক্ষমতার ম্যাট্রিক্স সংরক্ষিত থাকে, কিন্তু স্থির ঘোষণা স্থানীয় মেশিনের প্রকৃত বর্তমান অবস্থার সমান নাও হতে পারে। সংস্করণের পার্থক্য, ইনস্টলেশনের পদ্ধতি এবং Harness-এর নিজস্ব পরিবর্তন চ্যানেলের প্রাপ্যতাকে প্রভাবিত করতে পারে।
তাই প্রথমে agent-purge ls অথবা Web কনসোলের চলমান তথ্য দেখা উচিত। এগুলোতে প্রতিফলিত হবে:
- Harness ইনস্টল করা হয়েছে কি না।
- শনাক্ত করা Harness-এর সংস্করণ।
- প্রম্পট
SYSনাকিUSERইনজেকশন স্তরে রয়েছে। install,shimএবংslashতিনটি চ্যানেল উপলব্ধ কি না।
স্থির সক্ষমতা তালিকা ও চলমান শনাক্তকরণ ফলাফলের মধ্যে বিরোধ থাকলে চলমান ফলাফলকে অগ্রাধিকার দিন।
উন্নত ব্যবহারের কৌশল
বিভিন্ন কাজের জন্য একাধিক Persona প্রস্তুত করা
personas/-এর অধীনে একাধিক Markdown ফাইল রাখা যায়, যেমন কোড পর্যালোচনা, রিফ্যাক্টরিংয়ের পরামর্শ বা দৈনন্দিন ডেভেলপমেন্ট সহযোগিতার জন্য আলাদা Persona। description-এ ব্যবহার স্পষ্টভাবে লিখুন এবং order দিয়ে প্রদর্শনের ক্রম সামঞ্জস্য করুন; মিলের পরিসর সীমিত করতে harness বা model ক্ষেত্র ব্যবহার করা যায়।
পরিবর্তনের আগে চালান:
agent-purge ls
লক্ষ্য Persona নিশ্চিত করার পর চালান:
agent-purge use <id>
দীর্ঘমেয়াদি কনফিগারেশন ও সাময়িক পরীক্ষা আলাদা করা
- স্থায়ীভাবে কার্যকর রাখতে লক্ষ্য Harness সমর্থিত install চ্যানেল ব্যবহার করুন।
- সরাসরি প্রবেশ করা মূল কমান্ডও agent-purge-এর নিয়ন্ত্রণে আনতে চাইলে shim চ্যানেল ব্যবহার করুন।
- শুধু বর্তমান সেশনে পরীক্ষা করতে চাইলে slash চ্যানেল অথবা একবারের
--personaপ্যারামিটার ব্যবহার করুন।
কোন চ্যানেল ব্যবহার করা যাবে, তা এখনও চলমান শনাক্তকরণ ফলাফলের ভিত্তিতে নির্ধারণ করতে হবে।
পরিবর্তনের আগে প্রত্যাবর্তনের পথ সংরক্ষণ করা
প্রকল্পটি অবস্থা সংরক্ষণ করে এবং প্রত্যাবর্তনযোগ্য অপারেশন দেয়, তবুও বাস্তব ব্যবহারে আগে বর্তমান Persona, লক্ষ্য Harness এবং সক্রিয় মোড নিশ্চিত করার পরামর্শ দেওয়া হয়। পরীক্ষা শেষ হলে নিম্নলিখিত উপায়ে পরিবর্তন প্রত্যাহার করা যায়:
agent-purge uninstall <h>
agent-purge disarm
এছাড়াও --mode off-এ পরিবর্তন করা যায়, অথবা Web কনসোলে প্রধান সুইচ বন্ধ করা যায়।
মূল অবস্থায় চালু হওয়াকে সফল ইনজেকশন মনে করবেন না
যেসব ক্লোজড-সোর্স ডেস্কটপ ক্লায়েন্টে সিস্টেম প্রম্পট সার্ভার-সাইডে বা বন্ধ বাইনারির মধ্যে থাকে, সেখানে agent-purge শুধু মূল অবস্থায় চালু করবে, প্রম্পট ইনজেকশন করবে না। agent-purge <h> চালানোর সময় টুলটি ইনজেকশন করা সম্ভব নয় কেন তা স্পষ্টভাবে দেখাবে; কার্যকর হয়েছে এমন ভান করবে না।
প্রকল্পের কাঠামো এক নজরে
bin/:CLI-এর প্রবেশদ্বার।lib/:অবস্থা, Persona, ইনজেকশন, চ্যানেল ও শনাক্তকরণ যুক্তি।backends/:প্রতিটি Harness-এর চালু করার প্যারামিটার ও পরিচয় বাক্য প্রক্রিয়াকরণ।web/:স্থানীয় কনসোল, যার মধ্যেserver.mjsএবংui.htmlরয়েছে।bench/:ইনজেকশন সফলতার বাস্তব পরিমাপ ও বিচারক স্ক্রিপ্ট; শুধু ডেভেলপমেন্টের জন্য, স্বাভাবিক চালনায় অংশ নেয় না।matrix.json:স্থির সক্ষমতা ম্যাট্রিক্স।
নিরাপত্তা, গোপনীয়তা ও সম্মতির সীমা
agent-purge ব্যবহারকারীর অনুমোদিত নিজস্ব অফিসিয়াল Harness-এ প্রম্পট ইঞ্জিনিয়ারিং ও দৃঢ়তা মূল্যায়নের জন্য তৈরি। এটি বাইনারি ফাইলে পরিবর্তন করে না, অনুমোদন এড়িয়ে যায় না, স্থানীয় অবস্থা বাইরে আপলোড করে না এবং অননুমোদিত সিস্টেমে ব্যবহার করা উচিত নয়।
- শুধুমাত্র আপনার নিয়ন্ত্রণাধীন ডিভাইস, সফটওয়্যার এবং অনুগত পরীক্ষামূলক পরিবেশে ব্যবহার করুন।
- অননুমোদিত আক্রমণ, দুর্বলতার অপব্যবহার, তথ্য চুরি, অবৈধ অনুপ্রবেশ বা ক্ষতিকর পেলোড ছড়াতে ব্যবহার করা যাবে না।
- প্রযোজ্য আইন ও বিধি, মডেল সেবার শর্ত এবং অপব্যবহারবিরোধী নীতি লঙ্ঘন করা যাবে না।
- প্রকল্পটি MIT লাইসেন্সের অধীনে “যে অবস্থায় আছে” ভিত্তিতে সরবরাহ করা হয়; ব্যবহারকারীরা তাদের ইনপুট, আউটপুট এবং ব্যবহারের আচরণের জন্য নিজেরাই দায়ী।
- প্রকল্পের নাম, ধারণা, কোড বা প্রম্পট ব্যবহার করলে রিপোজিটরির ঘোষণার অনুযায়ী কৃতিত্ব দিতে হবে এবং উৎস উল্লেখ করতে হবে।
README-তে নির্দিষ্ট অঞ্চলের সার্ভার ও ওয়েবসাইটে প্রবেশের ওপরও কঠোর বিধিনিষেধ রয়েছে। বাস্তবে ব্যবহারের আগে রিপোজিটরির দায়বদ্ধতা-বর্জন ও অনুবর্তিতা-সংক্রান্ত ঘোষণা সম্পূর্ণ পড়ুন এবং নিশ্চিত করুন যে ব্যবহারের পরিসর তার প্রয়োজনীয়তার সঙ্গে সামঞ্জস্যপূর্ণ।
সারসংক্ষেপ
agent-purge একাধিক Coding Agent-এর অসামঞ্জস্যপূর্ণ প্রম্পট প্রবেশপথকে Persona, install, shim এবং slash-এর মতো ধারণার অধীনে একীভূত করে এবং Web কনসোল, রানটাইম শনাক্তকরণ ও প্রত্যাহারের সুবিধা প্রদান করে। শুরুতে টুলটি ইনস্টল করুন, Web কনসোল খুলুন, agent-purge ls চালিয়ে সমর্থন যাচাই করুন, তারপর Persona বেছে নিয়ে লক্ষ্য Harness চালু করুন। অস্থায়ী পরীক্ষার জন্য একবারের Persona বা সেশন চলাকালীন হট-সুইচিংকে অগ্রাধিকার দিন; দীর্ঘমেয়াদি কনফিগারেশনের ক্ষেত্রে রানটাইম সক্ষমতা ও অনুবর্তিতার সীমা নিশ্চিত করার পর স্থায়ী চ্যানেল সক্রিয় করুন।
