প্রকল্প সম্পর্কে
এটি 《AG-UI 群聊扩展协议标准 v1.0》-এর উপর ভিত্তি করে তৈরি একটি গ্রুপ চ্যাট প্রোটোকল হাব (Hub), যা C# / .NET 10-এর ASP.NET Core Minimal API ব্যবহার করে লেখা হয়েছে। এটি "গ্রুপ চ্যাট"-কে একটি প্রোটোকল লেয়ার হিসেবে তৈরি করেছে যা তৃতীয় পক্ষের অ্যাপ্লিকেশনগুলো ব্যবহার করতে পারে: গ্রুপ এবং সদস্যদের লাইফসাইকেল, মেসেজ ফ্যান-আউট, সাবস্ক্রিপশন এবং রিয়েল-টাইম ডাউনলিঙ্ক একই ইভেন্ট এবং এরর কোড কনভেনশন অনুসরণ করে, যেখানে AI এজেন্টরা গ্রুপের সদস্য হিসেবে অংশগ্রহণ করে।
প্রোটোকল সক্ষমতা
- গ্রুপ লাইফসাইকেল: তৈরি, আপডেট এবং বিলুপ্তি, যা যথাক্রমে GROUP_CREATED / GROUP_UPDATED / GROUP_DISBANDED-এর সাথে সম্পর্কিত।
- সদস্য ব্যবস্থাপনা: যোগদান, অপসারণ, স্বেচ্ছায় প্রস্থান, ভূমিকা এবং প্রোফাইল পরিবর্তন (GROUP_MEMBER_*)।
- মেসেজ ফ্যান-আউট: ব্যবহারকারীর মেসেজ TEXT_MESSAGE_START/CONTENT/END ট্রিপলেট হিসেবে ব্রডকাস্ট করা হয়। এটি all, mentioned, private—এই তিন ধরণের দৃশ্যমানতা প্রদান করে এবং মেসেজ প্রত্যাহার (recall), রিড রিসিট এবং টাইপিং স্ট্যাটাস সমর্থন করে।
- সাবস্ক্রিপশন মেকানিজম: GROUP_SUBSCRIBE / GROUP_UNSUBSCRIBE / GROUP_SUBSCRIBE_ACK / GROUP_STATE_SNAPSHOT।
- ডুয়াল ট্রান্সপোর্ট: WebSocket ফুল-ডুপ্লেক্স (/ws) এবং SSE সিঙ্গেল-ডাউনলিঙ্ক (/sse), সাথে হার্টবিট কিপ-অ্যালাইভ সুবিধা; SSE-এর মাধ্যমে HTTP ইন্টারফেস ব্যবহার করে ডায়নামিকভাবে সাবস্ক্রাইব এবং আনসাবস্ক্রাইব করা যায়।
- এজেন্ট ট্রিগার রুলস (প্রোটোকল §6): মেনশন ট্রিগার, ফুল লিসেনিং, কিওয়ার্ড ট্রিগার এবং কনটেক্সট ট্রিগার (মডেল কনটেক্সট অনুযায়ী সিদ্ধান্ত নেয় কথা বলবে কি না)।
- HTTP আপলিঙ্ক API: গ্রুপ তৈরি, কাস্টমার সার্ভিস নলেজ হাব অনুসন্ধান/প্রবেশ, স্বয়ংক্রিয় গ্রুপ নাম জেনারেশন, সদস্য যোগ/বাদ, মেসেজ পাঠানো, অ্যাটাচমেন্ট আপলোড/ডাউনলোড, প্রত্যাহার, রিড রিসিট, মানব-মেশিন ইন্টারঅ্যাকশন সিদ্ধান্ত, স্ন্যাপশট এবং সদস্য তালিকা ইত্যাদি কভার করে। এররগুলো ইউনিফাইড code + message হিসেবে রিটার্ন করা হয় এবং স্ট্যাটাস কোডগুলো 403/404/409/400-এ ম্যাপ করা হয়। রাইট ইন্টারফেস টোকেন আইডেন্টিটির মাধ্যমে রিকোয়েস্ট বডির আইডেন্টিটি ফিল্ড ওভাররাইট করে এবং রিড ইন্টারফেস যাচাই করে যে আহ্বানকারী গ্রুপের সদস্য কি না।
এজেন্ট এবং মেমোরি
- AguiGroupChat.Agents: Microsoft Agent Framework-এর উপর ভিত্তি করে IAgentGateway বাস্তবায়ন করে। মক প্রোভাইডার সরাসরি ব্যবহারযোগ্য, অথবা OpenAI সামঞ্জস্যপূর্ণ এন্ডপয়েন্ট (Ollama / vLLM / Azure OpenAI / DeepSeek) কনফিগার করা যায়। ট্রিগার হওয়ার পর এটি টেক্সট ইভেন্ট স্ট্রিম করে এবং ফাংশন কলগুলোর জন্য TOOL_CALL_START ফ্যান-আউট করে।
- মানব-মেশিন ইন্টারঅ্যাকশন (HITL): টুলগুলোকে ApprovalRequiredAIFunction হিসেবে চিহ্নিত করা হলে অনুমোদনের প্রয়োজন হয়। মডেল কল করার সময় এটি স্থগিত হয় এবং গ্রুপ চ্যাটে AGENT_INTERACTION_REQUEST ইন্টারঅ্যাকশন কার্ড ব্রডকাস্ট করা হয়। শুধুমাত্র ট্রিগারকারী ব্যক্তি এটি অনুমোদন বা প্রত্যাখ্যান করতে পারেন, যার পর সেশনটি পুনরায় শুরু হয়।
- RAG সেমান্টিক মেমোরি: MemoryContextProvider রিট্রিভাল কনটেক্সট ইনজেক্ট করে, ভেক্টরগুলো pgvector-এ সংরক্ষিত থাকে। এমবেডিং (embedding) HTTP এন্ডপয়েন্ট বা LLamaSharp লোকাল মডেল (যেমন bge-m3) এর মাধ্যমে সম্পন্ন হয়। নলেজ বেস ডকুমেন্ট স্লাইসিং এবং রিট্রিভাল সমর্থন করে, এবং মেমোরি রেঞ্জ, TopK, সিমিলারিটি থ্রেশহোল্ড ইত্যাদি অ্যাডজাস্ট করা যায়।
- মেমোরি পারসোনা টাইপ: প্রতিটি ডিজিটাল এমপ্লয়ির জন্য পাঁচটি মেমোরি প্রিসেট এবং টোন মোড কনফিগার করা যায়; কনফিগার করা না থাকলে প্ল্যাটফর্মের গ্লোবাল সেটিংস ব্যবহৃত হয়।
- বিল্ট-ইন টুলসেট: ক্যালকুলেটর, ইউনিট কনভার্টার, গ্রুপ মেমোরি রিট্রিভাল, অ্যাটাচমেন্ট রিডিং ইত্যাদি অন্তর্ভুক্ত। ইন্টারনেট ভিত্তিক web_search / read_url ডিফল্টভাবে বন্ধ থাকে।
- ইমেজ আন্ডারস্ট্যান্ডিং: ইমেজ অ্যাটাচমেন্টসহ রিপ্লাইগুলো ভিশন মডেলে রাউট করা হয় এবং ইমেজগুলো base64 মাল্টি-মোডাল কন্টেন্ট হিসেবে পাঠানো হয়।
- থিংকিং মোড ব্রিজ: এক্সটার্নাল সার্ভিসের REASONING_MESSAGE_CONTENT একটি আলাদা চ্যানেলে চলে, যা ফ্রন্টএন্ডে ফোল্ডেবল থিংকিং প্রসেস ব্লক হিসেবে রেন্ডার হয়।
অ্যাপ্লিকেশন এবং এক্সটেনশন ফিচার
- ইউজার ম্যানেজমেন্ট: রেজিস্ট্রেশন, লগইন, লগআউট, পাসওয়ার্ড পরিবর্তন, প্রোফাইল রক্ষণাবেক্ষণ। PBKDF2 পাসওয়ার্ড হ্যাশ এবং সেশন টোকেন ব্যবহৃত হয়; WS/SSE টোকেন অথেন্টিকেশন সমর্থন করে। লগইন ইন্টারফেসে ইউজারনেম এনামারেশন প্রতিরোধ এবং ফেইলুর রেট লিমিটিং ব্যবস্থা রয়েছে।
- প্ল্যাটফর্ম লেভেল RBAC: SuperAdmin / Admin / Operator / User—এই চারটি লেভেল রয়েছে। এটি কনফিগারেশন লিস্টের মাধ্যমে বা সুপার অ্যাডমিনিস্ট্রেটর দ্বারা অনলাইনে প্রদান করা যায়। ডিজিটাল এমপ্লয়ি এবং স্কিলগুলোর দৃশ্যমানতার জন্য ইউজার গ্রুপিং এবং গ্রুপ-ভিত্তিক অথোরাইজেশন রয়েছে।
- স্কিল লাইব্রেরি: prompt / shell / http / dotnet—এই চার শ্রেণিতে বিভক্ত। এক্সিকিউশন ক্ষমতা সম্পন্ন স্কিলগুলো শুধুমাত্র সিস্টেম অ্যাডমিন পরিবর্তন করতে পারেন। ন্যাচারাল ল্যাঙ্গুয়েজ ব্যবহার করে স্কিল ডেফিনিশন তৈরি এবং ট্রায়াল রান সমর্থন করে।
- ওয়ান-ক্লিক অর্গানাইজেশন অর্কেস্ট্রেশন: একটি বাক্যের রিকোয়েস্টের মাধ্যমে SSE স্ট্রিম ব্যবহার করে পজিশন প্ল্যান জেনারেট করা হয়। অর্গানাইজেশন স্ট্রাকচার, স্কিল এবং অ্যাসাইনমেন্ট সম্পর্ক প্রিভিউ করার পর তা ডাটাবেসে সেভ করা হয় এবং গ্রুপ তৈরি করা যায়।
- সিঙ্গেল চ্যাট এবং কাস্টমার সার্ভিস নলেজ হাব: ডিজিটাল এমপ্লয়িদের জন্য আইডেমপোটেন্ট প্রাইভেট ওয়ান-টু-ওয়ান চ্যাট তৈরি করা যায়। কাস্টমার সার্ভিস নলেজ হাবে সাধারণ ব্যবহারকারীরা অংশগ্রহণকারী হিসেবে প্রবেশ করেন এবং সেশনগুলো একে অপরের থেকে বিচ্ছিন্ন থাকে।
- গ্লোবাল সার্চ: মেসেজ, সেমান্টিক মেমোরি এবং নলেজ বেস জুড়ে অনুসন্ধান করে এবং দৃশ্যমানতা অনুযায়ী ফলাফল ফিল্টার করে।
- লিঙ্ক প্রক্সি, ডাটা এক্সপোর্ট/ইমপোর্ট, রানটাইম মডেল কনফিগারেশন, অডিট লগ এবং অ্যাকাউন্ট ডিলিট করার মতো এন্টারপ্রাইজ কমপ্লায়েন্স ফিচার রয়েছে।
ডিপ্লয়মেন্ট এবং প্রজেক্ট ফরম্যাট
- চারটি রান মোড উপলব্ধ: Web ডেমো, শুধুমাত্র প্রোটোকল Hub, Windows ডেস্কটপ (WPF + WebView2), এবং ক্রস-প্ল্যাটফর্ম ডেস্কটপ (Avalonia)। ডেস্কটপ ভার্সন একই ব্যাকএন্ড প্রসেস শেয়ার করে মাল্টি-ইনস্ট্যান্স সমর্থন করে।
- পারসিস্টেন্সের জন্য JSON সিঙ্গেল ফাইল স্ন্যাপশট অথবা postgres / mysql / sqlite ডাটাবেস বেছে নেওয়া যায়। docker compose-এর মাধ্যমে এক ক্লিকে postgres(pgvector) + বিল্ট-ইন Ollama + Web চালু করা যায়, যেখানে ডিফল্টভাবে সেমান্টিক মেমোরি সক্রিয় থাকে।
- সাথে থার্ড-পার্টি ইন্টিগ্রেশন SDK (AguiClient + AguiRealtimeClient, net8.0/net10.0 সমর্থিত), উদাহরণ ক্লায়েন্ট, ইউনিট এবং এন্ড-টু-এন্ড টেস্ট, এবং Playwright ব্রাউজার অটোমেশন স্ক্রিপ্ট প্রদান করা হয়েছে।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.