এই পাতাটি চীনা মূল থেকে অনূদিত। দুটির মধ্যে অমিল হলে মূল পাঠই প্রামাণ্য।
Confer — MVP-র পথনকশা ও বাকি কাজ
milestone ধরে ভাগ করা; প্রতিটি milestone এমন একটি সংস্করণ যা হস্তান্তর ও প্রদর্শন করা যায়।
v0.1 — Core proof of concept (৪-৬ সপ্তাহ)
লক্ষ্য: একটি যন্ত্রেই «ব্যবহারকারী ↔ নিজের Agent ↔ ওপাশের Agent» — গোটা শৃঙ্খলটি চলুক।
পরিধি (অবশ্যকরণীয়)
- ব্যাকএন্ড: gateway + agent runtime + conversation + identity (চারটি সেবা; এক প্রসেসে হোক বা আলাদা, দুই-ই চলবে)
- PostgreSQL-এর schema (দেখুন 04-data-model.md), migration সরঞ্জাম দিয়ে সামলানো
- ব্যবহারকারীর নিবন্ধন / লগইন (কেবল পাসওয়ার্ডই যথেষ্ট; OAuth বা passkey নয়)
- DID:web নথি তৈরি ও প্রকাশ (
/.well-known/did.json) - AgentFacts নথি তৈরি ও প্রকাশ
- A2A প্রোটোকল — ভিতরে আসা ও বাইরে যাওয়া (HTTP স্বাক্ষরের যাচাই; capability token এখনো তৈরি হয়নি, নিচের কাজের তালিকা দেখুন)
- agent runtime: LLM ডাকার চক্র (আপাতত কেবল দুটি সরবরাহকারী — Claude আর DeepSeek)
- সরল নীতি-ইঞ্জিন: শ্বেততালিকার peer, আর হয় সব অনুমোদিত নয় সব নাকচ
- ক্লায়েন্ট: একটিই Tauri অ্যাপ, প্রথমে তিন ডেস্কটপ (Linux / macOS / Windows; মোবাইল পরে)
- ক্লায়েন্ট যা পারবে: লগইন, পরিচিত যোগ করা (DID দিয়ে), এক-এক কথোপকথন, আর উদ্ধৃতি দেখা
- WebSocket দিয়ে প্রকৃত সময়ে বার্তা পাঠানো (একটি ইনস্ট্যান্সই যথেষ্ট; NATS fan-out নয়)
- SSE দিয়ে LLM-এর ধারা-আকারে আউটপুট
- Docker Compose দিয়ে এক ধাপে স্থানীয় উন্নয়ন-পরিবেশ
Out of scope:
- দলগত কথোপকথন, একাধিক যন্ত্রে fan-out, মোবাইল, বহুভাষিক UI, CDN, বাইরের OAuth, জটিল নীতি
- Claude Code-এর প্লাগিন এখনও এর মধ্যে নেই
Acceptance:
দুজন ডেভেলপার নিজ নিজ জায়গায় একটি করে Confer ইনস্ট্যান্স চালান, একে অপরকে যোগ করেন, কথা বলেন, আর উদ্ধৃতি দেখতে পান।
v0.2 — Claude Code প্লাগিনের MVP (৩-৪ সপ্তাহ)
লক্ষ্য: Claude Code-এর ভিতর থেকেই peer Agent-এর পরামর্শ নেওয়া যাক, আর উত্তর প্রকল্পে জমা হোক।
Scope:
- MCP সার্ভার বানানো — বাস্তবে আছে পনেরোটি যন্ত্র (
ask_agent,list_agents,read_project_memory,write_project_memory,request_code_reviewপ্রভৃতি); এই লাইনে আগে লেখাask_peer/list_peersকখনোই সত্যিকারের যন্ত্র-নাম ছিল না - OAuth-ধাঁচে Confer অ্যাকাউন্টকে Claude Code ইনস্ট্যান্সের সঙ্গে জোড়া
.claude/confer.tomlবিন্যাস ফাইলের বিশ্লেষণ.claude/peers/{slug}/ডিরেক্টরির পড়া-লেখা (facts.md, decisions.md, conversations/, meta.json)- তথ্যের স্বয়ংক্রিয় নিষ্কাশন: ask_peer-এর পর উত্তর থেকে কাঠামোবদ্ধ তথ্য বার করে facts.md-এ লেখা
conferকমান্ড-লাইন সরঞ্জাম (add peer, list peers, ask, sync)- একটি ডেমো peer Agent (mock-vendor.confer.dev), যাতে ডেভেলপাররা পরখ করতে পারেন
Acceptance:
কেউ claude mcp add confer বসিয়ে, বিন্যাস করে, Claude Code-এ mock vendor-কে প্রশ্ন করতে পারেন; উত্তর উদ্ধৃতিসহ আসে, .claude/peers/mock-vendor/facts.md-এ লেখা হয়, git-এ commit হয়, আর পরের session-এ আপনা থেকেই লোড হয়।
v0.3 — দলগত কথোপকথন ও প্রাতিষ্ঠানিক ইনস্ট্যান্স (৪-৫ সপ্তাহ)
লক্ষ্য: দলগত কথোপকথন (মানুষ ও Agent মিলিয়ে) সামলানো, আর একটি যন্ত্রে «প্রাতিষ্ঠানিক ইনস্ট্যান্স» মোতায়েন করতে পারা।
Scope:
- দলের ডেটা মডেল ও UI
- দলের সদস্য ব্যবস্থাপনা (মানুষ ও Agent যোগ করা / সরানো)
- একাধিক @ করা Agent একসঙ্গে উত্তর দিক (গুটিয়ে দেখানো, «গ্রহণ» করার ব্যবস্থা)
- প্রাতিষ্ঠানিক ইনস্ট্যান্স: নিজস্ব ডোমেইন আর SSO লগইন (OIDC হলেই চলবে)
- পরিচিত খোঁজা: ডোমেইন ধরে (acme.com লিখলেই ওই ডোমেইনের প্রকাশ্য Agent মিলুক)
- একাধিক যন্ত্রে fan-out (গেটওয়ে এখন একক-ইনস্ট্যান্স: WS সংযোগ-তালিকা, A2A replay nonce ও হার-সীমার গণনা সবই প্রক্রিয়ার ভিতরের
Map। যে Redis/NATS বিন্যাসে কখনো সংযোগ করা হয়নি তা 2026-08-07-এ মুছে ফেলা হয়েছে; কাজটি ধরার সময় আগে এই তিনটি সরাতে হবে, সবার আগে nonce) - মোবাইল (iOS, Android)
Acceptance:
পাঁচজনের ছোট দল আর ২টি Agent একটি দলে প্রকল্প নিয়ে আলোচনা চালান, আর অভিজ্ঞতা মসৃণ থাকে। কোনো কোম্পানি নিজের Confer ইনস্ট্যান্স গড়তে পারে, বাইরের জন্য প্রকাশ্য Agent দেখাতে পারে, আর অন্য ইনস্ট্যান্স তাকে খুঁজে পায়।
v0.4 — বহুভাষিকতা ও অনুপস্থিতিতে উত্তর (৩ সপ্তাহ)
লক্ষ্য: পণ্যটিকে আন্তর্জাতিক প্রেক্ষিতে আর আধা-অ্যাসিনক্রোনাস যোগাযোগে কাজে লাগানোর মতো করা।
Scope:
- UI-র i18n (চীনা ও ইংরেজি দিয়ে শুরু, জাপানি/জার্মান/ফরাসির জন্য জায়গা রেখে)
- Agent-দের মধ্যে ভাষা-পার কথোপকথন (অনুবাদ হয় লক্ষ্য Agent-এর ভিতরে, উদ্ধৃতিতে মূল পাঠ থেকে যায়)
- AgentFacts-এ
primary_languageক্ষেত্র যোগ - অনুপস্থিতিতে উত্তর: standing policy ঠিক করার UI + ঝুলন্ত ইনবক্স + push বিজ্ঞপ্তি
- MCP সার্ভারে pre-flight design review যন্ত্র যোগ
- MCP সার্ভারে post-flight code review যন্ত্র যোগ
Acceptance:
চীনের ডেভেলপার চীনা ভাষায় জার্মান সরবরাহকারীর Agent-কে জিজ্ঞেস করেন (যার নথি জার্মানে), আর চীনায় উত্তর + জার্মান মূলের উদ্ধৃতি পান। standing policy ঠিক করা থাকলে, মালিক অনুপস্থিত থাকলেও Agent নিয়মে মেলা অনুরোধ ঠিকঠাক সামলায়, আর সন্দেহজনকগুলো ঝুলিয়ে রাখে।
v1.0 — উৎপাদনের জন্য প্রস্তুত (৪-৬ সপ্তাহ)
লক্ষ্য: উৎপাদনে ব্যবহার করা যাক, আর বাণিজ্যিক সহায়তা দেওয়া যাক।
Scope:
- পূর্ণ পর্যবেক্ষণযোগ্যতা (OTel tracing, Prometheus metrics, Loki logs)
- ব্যাকআপ ও পুনরুদ্ধার (PG-র ভৌত ব্যাকআপ + S3-তে বর্ধমান)
- নিরাপত্তা নিরীক্ষা (গুরুত্বপূর্ণ কাজের audit log থাকুক)
- হার-সীমার সূক্ষ্মীকরণ (চারটি মাত্রাই)
- LLM ব্যবহারের ফলক (মডেল অনুযায়ী মাসিক টোকেন ব্যবহার, পরিচিতদের উত্তর আলাদা করে দেখানো; কোনো টাকার অঙ্ক নেই — দাম স্থানীয়ভাবে রাখা হয় না)
- BYO LLM key-র পূর্ণ অভিজ্ঞতা (এনক্রিপ্টেড সংরক্ষণ, ঘোরানো, কোটা)
- নথি-স্থান (ব্যবহারের পুস্তিকা, স্ব-স্থাপনের পুস্তিকা, API নির্দেশিকা)
- প্রকাশ্য Confer Cloud ইনস্ট্যান্স চালু (
cloud.confer.ai)
Acceptance:
অন্তত ১০০ নিবন্ধিত ব্যবহারকারী, ১০টি স্বাধীন peer Agent মোতায়েন, আর একটি ইনস্ট্যান্স ৩০ দিনের বেশি স্থিরভাবে চলুক।
v1.5+ — বৃদ্ধি ও বাস্তুতন্ত্র (নিরবচ্ছিন্ন)
Scope:
- প্রকাশ্য Agent নির্ঘণ্ট (NANDA Index-এ যুক্ত)
- আস্থার গ্রাফ ও সুনামের ব্যবস্থা
- ব্যক্তিগত ভোক্তা সংস্করণ (হালকা UI)
- সুনাম-ভিত্তিক স্প্যাম-প্রতিরোধ
- Webhooks (তৃতীয় পক্ষের তন্ত্রের সঙ্গে যুক্তি)
- প্রতি ব্যবহারকারীতে একাধিক Agent (একজনের কয়েকটি বিশেষজ্ঞ Agent)
- ব্রাউজার এক্সটেনশন (ওয়েব পাতাতেই Agent ডাকা)
কাজের সূক্ষ্মতা (Claude Code-এর জন্য)
প্রতিটি milestone ৫০-২০০টি ছোট কাজে ভাগ হয়। প্রতিটি কাজের:
- স্পষ্ট ইনপুট-আউটপুট থাকুক
- পরখযোগ্য গ্রহণ-মানদণ্ড থাকুক
- এক ডেভেলপার-দিনের বেশি কাজ না হোক
যেমন, v0.1-এর কিছু কাজের নমুনা:
ব্যাকএন্ডের কাঠামো
- monorepo বানানো (pnpm workspaces কিংবা Bun workspaces)
packages/shared: ভাগ করা টাইপ সংজ্ঞা (zod বা valibot দিয়ে)packages/gateway: Bun + Hono অ্যাপ্লিকেশনের কাঠামোpackages/agent-runtime: Agent-এর অবস্থা-যন্ত্রের কাঠামো— gateway-তে মিশিয়ে দেওয়া হয়েছে (packages/conversation: বার্তা সংরক্ষণ / প্রেরণের সেবাws/handler.ts+routes/conversations.ts); আলাদা প্যাকেজের একজনও ব্যবহারকারী ছিল না, ২০২৬-০৮-০৭-এ মুছে দেওয়া হয়packages/identity: DID + AgentFacts + A2A যাচাই- PostgreSQL migration সরঞ্জাম (drizzle-kit বা prisma)
- সব টেবিলের migration ফাইল বানানো
ডেটাবেস স্তর
- User CRUD (নিবন্ধন, লগইন, নিজের তথ্য দেখা)
- Agent CRUD (নিজের Agent বানানো, বিন্যাস বদলানো)
- PeerAgent CRUD (পরিচিত যোগ, দেখা, মোছা)
- Conversation CRUD ও Participant ব্যবস্থাপনা
- Message CRUD ও পৃষ্ঠাভাগ
- Permission টেবিলে লেখা ও তাতে খোঁজা
পরিচয় ও প্রোটোকল
- DID নথি তৈরি (প্রতি ব্যবহারকারীর জন্য ed25519 চাবি-জোড়া)
/.well-known/did.jsonendpoint- AgentFacts তৈরি ও তার প্রান্তবিন্দু
- HTTP স্বাক্ষরকারী (বাইরে যাওয়া)
- HTTP স্বাক্ষর যাচাইকারী (ভিতরে আসা)
- Capability token ইস্যু ও যাচাই
- DID নথি আনয়নকারী + ক্যাশ
LLM-এর বিমূর্তায়ন
- LLM সরবরাহকারীর ইন্টারফেস (chat, stream, tools)
- Claude সরবরাহকারীর বাস্তবায়ন
- DeepSeek সরবরাহকারীর বাস্তবায়ন
- API চাবির এনক্রিপ্টেড সংরক্ষণ (Vault / env)
- প্রতি Agent-এর মডেল বিন্যাস প্রয়োগ
Agent runtime
- Agent-এর অবস্থা-যন্ত্র: load → process → save চক্র
- LLM ডাকার চক্র + tool calling
- সরল নীতি-ইঞ্জিন (শ্বেততালিকা + allow/deny)
- A2A বাইরে যাওয়া ডাক (Agent অন্যকে বার্তা পাঠায়)
- A2A ভিতরে আসা প্রক্রিয়া (অন্যের Agent-এর বার্তা এল)
Gateway ও API
- JWT ইস্যু / যাচাইয়ের middleware
- সব
/api/v1/auth/*endpoint - সব
/api/v1/conversations/*endpoint - WebSocket handler (সাবস্ক্রিপশন, বার্তা পাঠানো)
- SSE handler (LLM-এর ধারা-আকারে আউটপুট)
- A2A ভিতরে আসা endpoint + স্বাক্ষর যাচাইয়ের middleware
- হার-সীমার middleware (আগে সরল রূপ: স্থির জানালা)
ক্লায়েন্ট
- Tauri 2.0 প্রকল্পের সূচনা
- লগইন / নিবন্ধনের পাতা
- মূল পর্দা: বাঁয়ে পরিচিতের তালিকা, ডাইনে কথোপকথন
- পরিচিত যোগ করার পপআপ (DID বা ডোমেইন দিয়ে)
- কথোপকথনের বার্তা-তালিকা (ধারা-আকারে উপস্থাপন)
- উদ্ধৃতি-ক্যাপসুলের উপস্থাপন
- অনুমতি-অনুরোধ কার্ডের উপস্থাপন
- WebSocket সংযোগের ব্যবস্থাপনা
- সাম্প্রতিক ১০০টি বার্তার স্থানীয় SQLite ক্যাশ
ডেমো উপকরণ
- mock-vendor-এর Agent মোতায়েন (প্রদর্শনের জন্য)
- X100-এর নকল নির্দেশিকা (RAG উপাত্ত হিসেবে কয়েক পাতার PDF)
- প্রদর্শনের video / নথি: পরিচিত যোগ করা থেকে উত্তর পাওয়া পর্যন্ত গোটা পথ
ঝুঁকি ও গোড়াতেই দরকারি সিদ্ধান্ত
| ঝুঁকি | প্রশমন |
|---|---|
| MCP SDK এখনও বিকশিত হচ্ছে, API ভেঙে যেতে পারে | স্থিতিশীল সংস্করণে থাকুন, changelog-এ নজর রাখুন, অভিযোজন-স্তর বানান |
| A2A প্রোটোকল (Google) আর NANDA মান — দুটোই এখনও বিকশিত হচ্ছে | সরলতম উপসেট দিয়ে শুরু করুন, প্রোটোকল অভিযোজন-স্তরের জায়গা রাখুন |
| Tauri 2.0-র iOS / Android তুলনায় নতুন, হোঁচট লাগতে পারে | MVP পর্বে কেবল তিন ডেস্কটপ; মোবাইল v0.3-এ |
| LLM-এর খরচ হাতের বাইরে চলে যাওয়া | ডিফল্ট কোটা + স্পষ্ট BYO key + ব্যবহারের ফলক আগেভাগে |
| চীনা LLM সরবরাহকারীদের (DeepSeek/Qwen) SDK স্থিতিশীল নয় | OpenAI-সঙ্গতিপূর্ণ ইন্টারফেসকে (এই সব সরবরাহকারীই যা দেয়) একক প্রবেশপথ করুন |
Claude Code-এর জন্য বাস্তবায়নের ইঙ্গিত
- আগে একক পরীক্ষা, পরে একীভবন: প্রতিটি সেবা নিজের পরীক্ষা একাই চালাতে পারুক, অন্য সেবা ওঠার উপর নির্ভর না করুক
- ডেটাবেসের migration migration সরঞ্জাম দিয়েই হোক, হাতে SQL নয়
- types
@confer/sharedপ্যাকেজ দিয়ে ভাগ হোক, সামনে-পিছনে দুই দিকেই কাজে লাগুক - প্রতিটি PR-এর সঙ্গে নথির বদল থাকুক (যদি প্রোটোকল বা API ছোঁয়া হয়)
- A2A প্রোটোকলের জন্য আগে থেকে থাকা লাইব্রেরিকে অগ্রাধিকার দিন (যেমন
http-message-signaturesnpm প্যাকেজ), চাকা নতুন করে বানাবেন না - DID:web-এর জন্য
did-resolver+did-jwt— এই W3C সরঞ্জামগুলোকে অগ্রাধিকার দিন - MCP সার্ভারের জন্য দাপ্তরিক SDK-কে অগ্রাধিকার দিন (
@modelcontextprotocol/sdk) - commit-এর বিষয় এমন একটি বাক্যে লিখুন যা বলে এই বদল কী করে, conventional উপসর্গ নয়। খেয়াল রাখুন:
.github/scripts/gen-release-notes.shকেবলfeat:/fix:ধাঁচের উপসর্গ চেনে, তাই মুক্তি-নোট হাতে লিখতে হবে — গদ্য বিষয় থেকে সে বানাবে না