
ব্যবহারের পরিধি আগে বুঝে নিন
ARTEX শুধুমাত্র ব্যক্তিগত শেখা, কোড গবেষণা এবং স্থানীয় বিচ্ছিন্ন পরিবেশে প্রযুক্তিগত যাচাইয়ের জন্য ব্যবহারের উপযোগী। প্রকল্পের ঘোষণার অনুযায়ী, কোনো অনলাইন সিস্টেম, ওয়েবসাইট, নেটওয়ার্ক-সংযুক্ত সিস্টেম বা উৎপাদন পরিবেশে স্ক্যান, অনুসন্ধান, শোষণ বা আক্রমণ চালাতে এটি ব্যবহার করা যাবে না, লক্ষ্যটি নিজের হলেও বা অনুমতি থাকলেও নয়। শুরু করার আগে নিশ্চিত করুন যে আপনি প্রকল্পের AGPL-3.0 লাইসেন্স, আপনার অবস্থানের সাইবার নিরাপত্তা আইন এবং রিপোজিটরিতে থাকা ব্যবহারের সীমাবদ্ধতা ও দায়বদ্ধতা-অস্বীকারের শর্ত বুঝেছেন এবং মেনে চলছেন।
এই নিবন্ধে স্থানীয় স্থাপন ও নিরাপদ বিচ্ছিন্ন পরিবেশের ভিত্তিতে ARTEX ইনস্টল করা, PostgreSQL ও LLM কনফিগার করা, ইন্টারফেস থেকে কাজ পর্যবেক্ষণ করা এবং সম্পদ সিঙ্ক ও দুর্বলতা পুনঃপরীক্ষার মতো ফিচার ব্যবহারের পদ্ধতি দেখানো হবে।
ARTEX হলো Go ব্যাকএন্ড এবং Next.js ফ্রন্টএন্ড-ভিত্তিক একটি AI মাল্টি-agent সিস্টেম। প্রকল্পটি ইন্টারঅ্যাকশন দেখার জন্য একটি অনলাইন Demo সরবরাহ করে। আনুষ্ঠানিকভাবে চালানোর সময় ফ্রন্টএন্ডকে Go-এর go:embed ব্যবহার করে একটি একক বাইনারির মধ্যে সংযুক্ত করা যায়।
ARTEX কী করতে পারে
ARTEX স্বায়ত্তশাসিত অনুসন্ধান, কাজের সমন্বয় এবং প্রক্রিয়ার রেকর্ড সংরক্ষণকে কেন্দ্র করে তৈরি। সিস্টেমে ড্যাশবোর্ড, কাজের তালিকা, সেশন执行过程, অনুসন্ধান পথ, আবিষ্কার, সম্পদ, সম্পদ কভারেজ মানচিত্র, ট্রাফিক রেকর্ড, মানব-নিয়ন্ত্রিত সংলাপ, Agent ব্যবস্থাপনা এবং LLM কনফিগারেশনসহ বিভিন্ন ইন্টারফেস রয়েছে।

- মাল্টি-agent অনুসন্ধান: goals, planner, worker এবং mainagent-এর মতো ভূমিকা সমন্বিতভাবে কাজ এগিয়ে নেয়।
- দুটি গ্রাফ মডেল: সম্পদ গ্রাফে বিভিন্ন কাজের মধ্যে ভাগ করা সম্পদের তথ্য সংরক্ষিত হয়; অনুসন্ধান গ্রাফে একটি নির্দিষ্ট কাজের লক্ষ্য, অভিপ্রায়, তথ্য, ইঙ্গিত এবং আবিষ্কার নথিভুক্ত হয়।
- প্রক্রিয়া-স্তরের তথ্য বিনিময়: worker অন্য worker-এর কার্যপ্রক্রিয়া খুঁজে দেখে সেখানকার পর্যবেক্ষণ পুনরায় ব্যবহার করতে পারে।
- মানব-নিয়ন্ত্রিত ব্যবস্থা: সংলাপ ও অনুমোদন আটকে রাখার ব্যবস্থার মাধ্যমে টুল কল এবং গুরুত্বপূর্ণ কার্যক্রমের সিদ্ধান্তে অংশ নেওয়া যায়।
- রিয়েল-টাইম কার্যক্রম প্রবাহ: ব্যাকএন্ড SSE-এর মাধ্যমে কার্যক্রমের তথ্য পাঠায়, ফলে কাজ চলার প্রক্রিয়া ইন্টারফেসে ধারাবাহিকভাবে দেখা যায়।
- ট্রাফিক রেকর্ড: রেকর্ডিং-ভিত্তিক MITM প্রক্সি টুল চালানোর জন্য ট্রাফিক ও প্রমাণ সংরক্ষণ করে।
- সম্পদ সিঙ্ক: ScopeSentry থেকে ডোমেইন, সাবডোমেইন, IP, পোর্ট, সাইট এবং এন্ডপয়েন্টসহ বিভিন্ন সম্পদ সিঙ্ক করা যায়।
- দুর্বলতা পুনঃপরীক্ষা: বিদ্যমান দুর্বলতার জন্য আলাদাভাবে পুনঃপরীক্ষার Agent সেশন তৈরি করা যায় এবং সিদ্ধান্ত, প্রমাণ ও সেশন লিংক সংরক্ষণ করা যায়।

ARTEX ইনস্টল করুন
পদ্ধতি এক: এক-ক্লিক ইনস্টলেশন স্ক্রিপ্ট ব্যবহার
এটি প্রকল্পের সুপারিশকৃত ইনস্টলেশন পদ্ধতি। স্ক্রিপ্টটি Docker শনাক্ত বা ইনস্টল করে এবং সম্পূর্ণ Docker অথবা স্থানীয়ভাবে কম্পাইল করে চালানোর দুটি বিকল্প দেয়।

git clone https://github.com/Autumn-27/ARTEX.git
cd ARTEX
./install.shসম্পূর্ণ Docker নির্বাচন করলে PostgreSQL পাসওয়ার্ড দিতে হবে। চাইলে সরাসরি Enter চাপলে স্ক্রিপ্ট একটি এলোমেলো পাসওয়ার্ড তৈরি করবে। এরপর স্ক্রিপ্টটি .env লিখে docker compose up -d চালাবে।
স্থানীয়ভাবে চালানোর বিকল্প বেছে নিলে বিদ্যমান ডেটাবেসে সংযোগ করা যায়, অথবা Docker-কে একটি ডেটাবেস চালু করতে দেওয়া যায়। স্ক্রিপ্টটি config.json তৈরি করবে, ফ্রন্টএন্ডসহ একক বাইনারি কম্পাইল করবে এবং সার্ভিস চালু করবে।
ইনস্টলেশন শেষ হলে http://localhost:8787 ঠিকানায় প্রবেশ করুন। প্রথমবার খোলার সময় /setup-এ গিয়ে প্রশাসকের পাসওয়ার্ড সেট করুন।
পদ্ধতি দুই: Docker Compose হাতে ব্যবহার
git clone https://github.com/Autumn-27/ARTEX.git
cd ARTEX
cp .env.example .env
docker compose up -d.env সম্পাদনা করে অন্তত POSTGRES_PASSWORD পূরণ করুন। পরিবেশ ভেরিয়েবলের মাধ্যমে Anthropic কনফিগার করতে চাইলে ANTHROPIC_API_KEY-ও পূরণ করতে পারেন। কনটেইনার ইমেজে সাধারণ টুলগুলো অন্তর্ভুক্ত রয়েছে এবং ./skills ও ./data বাইন্ড মাউন্টের মাধ্যমে সংরক্ষিত থাকবে।
চালু হওয়ার পর http://localhost:8787 ঠিকানায় প্রবেশ করুন। দূরবর্তী MCP প্রয়োজন হলে সিস্টেম সেটিংসে http অথবা sse নির্বাচন করতে পারেন। পুরোনো SSE সাধারণত ইভেন্ট স্ট্রিম তৈরি করতে /sse ব্যবহার করে এবং ফেরত পাওয়া /message?sessionId=... ঠিকানার মাধ্যমে JSON-RPC অনুরোধ গ্রহণ করে; প্রমাণীকরণ হেডার Authorization=Bearer <token> হিসেবে কনফিগার করুন।
পদ্ধতি তিন: পূর্বে কম্পাইল করা বাইনারি ব্যবহার
Releases থেকে সংশ্লিষ্ট প্ল্যাটফর্মের আর্কাইভ ডাউনলোড করে আনজিপ করুন। সাধারণত এতে artex, start.sh অথবা Windows-এর জন্য start.bat, skills/ এবং config.example.json থাকে।

cp config.example.json config.json
./start.shচালু করতে start.sh অথবা start.bat ব্যবহার করুন, সরাসরি ./artex চালাবেন না। চালু করার স্ক্রিপ্টটি প্রসেস তত্ত্বাবধান করে এবং পেজ থেকে এক-ক্লিক আপডেটের পর পুনরায় চালু হওয়া সমর্থন করে। ব্যাকগ্রাউন্ডে চালাতে ব্যবহার করতে পারেন:
nohup ./start.sh >artex.log 2>&1 &পদ্ধতি চার: সোর্স কোড থেকে কম্পাইল
ফ্রন্টএন্ড সংযুক্ত একক বাইনারি সোর্স কোড থেকে তৈরি করতে চাইলে প্রথমে Next.js স্ট্যাটিক ফাইল তৈরি করুন, তারপর সেগুলো ব্যাকএন্ডের এমবেডেড ডিরেক্টরিতে কপি করুন।
cd web && npm ci && npm run build:static && cd ..
cp -r web/out server/webui/dist
CGO_ENABLED=0 go build -tags embedui -o artex ./cmd/artex
./start.shমৌলিক কনফিগারেশন সম্পন্ন করুন
PostgreSQL কনফিগার করুন
ARTEX PostgreSQL-এর ওপর নির্ভরশীল। স্থানীয়ভাবে চালানোর সময় config.json-এ ডেটাবেস সংযোগের তথ্য পূরণ করতে পারেন, অথবা ARTEX_PG_DSN দিয়ে কনফিগারেশন ওভাররাইড করতে পারেন।
{
"database": {
"host": "127.0.0.1",
"port": 5432,
"user": "artex",
"password": "yourpass",
"dbname": "artex",
"sslmode": "disable"
}
}
প্রতিবার চালু হওয়ার সময় সার্ভিসটি ডেটাবেসের কাঠামো ও মাইগ্রেশন আইডেমপোটেন্টভাবে সম্পন্ন করে, যার মধ্যে প্রয়োজনীয় ফিল্ড ও ইনডেক্স পরিবর্তনও রয়েছে। আপগ্রেডের আগে ডেটাবেস এবং ./data ডিরেক্টরির ব্যাকআপ নেওয়ার পরামর্শ দেওয়া হয়।
LLM কনফিগার করুন
অনুসন্ধান ফিচারের জন্য LLM প্রয়োজন। Anthropic অথবা OpenAI-এর API Key ব্যবহার করতে পারেন, অথবা ইন্টারফেসের 「LLM配置」 পেজে তা পূরণ করতে পারেন।
export ANTHROPIC_API_KEY=sk-...OPENAI_API_KEY-ও সেট করা যায়। প্রকল্পটি ARTEX_LLM_PROVIDER, ARTEX_LLM_MODEL, ARTEX_LLM_BASE_URL এবং ARTEX_LLM_PROXY ব্যবহার করে প্রদানকারী, মডেল, ঠিকানা ও প্রক্সি পরিবর্তন করাও সমর্থন করে।
সমান্তরালতা ও পোর্ট সমন্বয়
প্রতিটি কাজের work agent-এর সংখ্যা 「系统设置」-এ পরিবর্তন করা যায়; ডিফল্ট মান 3। চালু করার প্যারামিটারে Web/API ঠিকানা এবং ট্রাফিক রেকর্ডিং প্রক্সি পোর্ট সেট করা যায়:
./start.sh -addr :8787 -proxy :8788চালু করার স্ক্রিপ্টটি প্যারামিটারগুলো অপরিবর্তিতভাবে artex-এ পাঠায়।
Web ইন্টারফেস ব্যবহার শুরু করুন

1. লগইন করে ড্যাশবোর্ড দেখুন
প্রথমবার প্রবেশের সময় প্রশাসকের পাসওয়ার্ড সেট করুন, তারপর সারসংক্ষেপ, Token ব্যবহার এবং কার্যক্রম প্রবাহ দেখতে ড্যাশবোর্ডে যান। বর্তমান সিস্টেম স্বাভাবিকভাবে চলছে কি না এবং কাজগুলো নতুন কার্যক্রম তৈরি করেছে কি না তা দ্রুত বোঝার জন্য ড্যাশবোর্ড উপযোগী।
2. কাজ ও কার্যপ্রক্রিয়া দেখুন
কাজের তালিকা থেকে লক্ষ্য কাজ নির্বাচন করলে তার সেশন, টুল কল, কার্যক্রমের রেকর্ড এবং অনুসন্ধান পথ দেখা যায়। কার্যপ্রক্রিয়া পেজে agent-এর কাজের ধাপগুলো দেখানো হয়, আর অনুসন্ধান পথ লক্ষ্য, অভিপ্রায়, তথ্য ও আবিষ্কারের মধ্যকার সম্পর্ক বোঝার জন্য ব্যবহৃত হয়।


এই পেজগুলো ব্যবহারের সময় প্রথমে স্থানীয় বিচ্ছিন্ন পরিবেশে প্রক্রিয়াটি যাচাই করুন এবং কার্যক্রম ও ট্রাফিক রেকর্ড দেখে agent বাস্তবে কোন ধাপগুলো সম্পন্ন করেছে তা পরীক্ষা করুন।
3. আবিষ্কার ও সম্পদ দেখুন
আবিষ্কার পেজে কাজ থেকে তৈরি দুর্বলতা বা অন্যান্য আবিষ্কারগুলো একত্রে দেখানো হয়, আর সম্পদ পেজে সিস্টেম সংগৃহীত ও একত্রিত করা সম্পদের তথ্য দেখানো হয়।


সম্পদ কভারেজ মানচিত্র বল-নির্দেশিত বিন্যাসে পরিসরের সম্পদ দেখাতে পারে এবং পরীক্ষিত নোডগুলো হাইলাইট করতে পারে; এতে নোড ভাঁজ ও প্রসারিত করার সুবিধাও রয়েছে। কোন সম্পদ অনুসন্ধান করা হয়েছে এবং কোনগুলো এখনও আওতাভুক্ত হয়নি, তা সামগ্রিকভাবে পর্যবেক্ষণের জন্য এটি উপযোগী।

ScopeSentry সম্পদ সিঙ্ক করুন
আপনি যদি ScopeSentry-তে আগে থেকেই সম্পদ সংগ্রহ করে থাকেন, তাহলে পুনরায় সংগ্রহ এড়াতে ARTEX-এর 「资产同步」 পেজে ডেটা উৎস সংযুক্ত করতে পারেন।

- ScopeSentry-এর ঠিকানা ও API Key পূরণ করে ডেটা উৎস সংযুক্ত করুন।
- প্রকল্প বা কাজ অনুযায়ী যে লক্ষ্যগুলো সিঙ্ক করতে চান সেগুলো নির্বাচন করুন।
- সম্পদের ধরন নির্বাচন করুন, যেমন ডোমেইন, সাবডোমেইন, IP, পোর্ট, সাইট বা এন্ডপয়েন্ট।
- ইমপোর্ট চালান, যাতে ARTEX কোম্পানির সম্পদের পরিসর অনুযায়ী তথ্য একত্রিত করতে পারে।
- সম্পদ গ্রাফে ইমপোর্টের ফলাফল পরীক্ষা করুন এবং পরবর্তী অনুসন্ধানের জন্য তা agent-কে দিন।
সম্পদ গ্রাফ হলো বিভিন্ন কাজের মধ্যে ভাগ করা বৈশ্বিক সম্পদ-তথ্যের সত্যের ভান্ডার। প্রোগ্রাম অভিভাবক-সন্তান সম্পর্ক ও ডিডুপ্লিকেশন key গণনা করে; agent কেবল মূল সম্পদের তথ্য জমা দেয়।
ARTEX-এর দ্বৈত-গ্রাফ স্থাপত্য বোঝা
অ্যাসেট গ্রাফ: কী কী অ্যাসেট আছে তা বর্ণনা করে
অ্যাসেট গ্রাফের নোডগুলোর মধ্যে রয়েছে root_domain, subdomain, ip, service, app এবং endpoint। ডোমেইন, সাবডোমেইন, সার্ভিস ও এন্ডপয়েন্টগুলো প্যারেন্ট-চাইল্ড সম্পর্কের মাধ্যমে সংগঠিত এবং সংশ্লিষ্ট কোম্পানির অধীনে থাকে।
এক্সপ্লোরেশন গ্রাফ: কাজ কীভাবে এগোয় তা বর্ণনা করে
এক্সপ্লোরেশন গ্রাফ প্রতিটি কাজের জন্য আলাদাভাবে সংরক্ষিত হয়। এর নোডগুলোর মধ্যে রয়েছে goal, intent, fact, finding এবং hint। সিস্টেম spawns, derived_from, yields এবং proves-এর মতো সম্পর্কের মাধ্যমে অগ্রগতির ধারা রেকর্ড করে।
দুটি গ্রাফ অ্যাঙ্করের মাধ্যমে যুক্ত থাকে। ইন্টেন্ট, তথ্য ও দুর্বলতাকে নির্দিষ্ট অ্যাসেটের সঙ্গে অ্যাঙ্কর করা যায়। ফলে এক্সপ্লোরেশনের দিক থেকে সংশ্লিষ্ট অ্যাসেট দেখা যায়, আবার কোনো অ্যাসেট থেকে উল্টোভাবে দেখা যায় যে বর্তমান কাজে সেটিকে কোন কোন দিক থেকে পরীক্ষা করা হয়েছে।
planner ও worker কীভাবে সমন্বয় করে
ইঞ্জিনটি ইভেন্ট-চালিত লুপ ব্যবহার করে: গ্রাফ পরিবর্তিত হলে planner জেগে ওঠে, বর্তমান পরিস্থিতি পড়ে ইন্টেন্ট বিতরণ করে; worker একটি ইন্টেন্ট গ্রহণ করে, টুল ব্যবহার করে কাজ সম্পন্ন করে এবং নতুন অ্যাসেট, তথ্য বা আবিষ্কার ডেটাবেসে লিখে দেয়; এই লিখন-অপারেশন আবার planner-কে সক্রিয় করে।

নতুন ও এখনও কভার না হওয়া কোনো দিক পাওয়া গেলেই planner ইন্টেন্ট বিতরণ করে। worker তার গ্রহণ করা ইন্টেন্ট সম্পন্ন করার পর থেমে যায়, যাতে বিভিন্ন worker সীমাহীনভাবে একই কাজ পুনরাবৃত্তি না করে।
একাধিক ধাপ এবং পূর্বাপর নির্ভরতা থাকা এক্সপ্লোরেশন চেইনের ক্ষেত্রে planner কাজভিত্তিক একটি শেয়ার করা todolist সংরক্ষণ করে। পূর্ববর্তী ধাপ সম্পন্ন হয়ে সংশ্লিষ্ট তথ্য উপস্থিত থাকলেই কেবল পরবর্তী ধাপ বিতরণ করা হয়। পুরো চেইন একসঙ্গে সমান্তরালে চালু হয়ে যাওয়া ঠেকাতেই এই ব্যবস্থা ব্যবহার করা হয়।
অন্যান্য worker-এর কার্যপ্রবাহ অনুসন্ধান
পরবর্তী worker এই কাজের অন্যান্য work-এর কার্যপ্রবাহে কীওয়ার্ড দিয়ে অনুসন্ধানের জন্য search_all_worker_traces(q) ব্যবহার করতে পারে। ইতিমধ্যে সম্পাদিত work দেখতে list_worker_traces এবং নির্দিষ্ট ধাপের সম্পূর্ণ বিষয়বস্তু পেতে get_worker_trace(intent_id, step_ids=[...]) ব্যবহার করা যায়। সিস্টেম স্বয়ংক্রিয়ভাবে বর্তমান worker-এর নিজস্ব ইন্টেন্ট বাদ দেয়।
এই প্রক্রিয়া-স্তরের তথ্য বিনিময় agent-কে এখনও fact হিসেবে আনুষ্ঠানিকভাবে লেখা হয়নি এমন পর্যবেক্ষণ পুনর্ব্যবহার করতে সাহায্য করে, একই সঙ্গে প্রতিটি worker যেন কেবল নিজের গ্রহণ করা ইন্টেন্টই সম্পাদন করে সেই সীমা বজায় রাখে।
ট্রাফিক রেকর্ড ও অনুমোদন
ARTEX ট্রাফিক রেকর্ডিং প্রক্সি এবং টুল অনুমোদন গেট প্রদান করে। ট্রাফিক পৃষ্ঠা টুল চালানোর ফলে তৈরি রেকর্ড দেখার জন্য ব্যবহৃত হয়, আর ইন্টারসেপ্ট অনুমোদন পৃষ্ঠা মানুষের নিশ্চিতকরণ প্রয়োজন এমন অপারেশন পরিচালনা করে।

নিরাপত্তা যাচাইয়ের সময় কাজের সেশন, টুল কল, অ্যাক্টিভিটি স্ট্রিম এবং ট্রাফিক রেকর্ড একসঙ্গে দেখা ভালো, যাতে সিস্টেমের আচরণ প্রত্যাশা অনুযায়ী হচ্ছে কি না নিশ্চিত করা যায়। হিউম্যান-ইন-দ্য-লুপ কথোপকথন অতিরিক্ত প্রেক্ষাপট দেওয়া এবং অনুমোদনে অংশ নেওয়ার জন্যও ব্যবহার করা যায়।
দুর্বলতা পুনঃপরীক্ষা চালানো
কাজের বিবরণের「পুনঃপরীক্ষা」ট্যাবে পৃষ্ঠা ধরে এই কাজের দুর্বলতাগুলো নির্বাচন করা, পূর্ববর্তী সিদ্ধান্ত ও প্রমাণ দেখা এবং আলাদাভাবে পুনঃপরীক্ষা শুরু করা যায়। দুর্বলতার তালিকা, দুর্বলতার বিবরণ, কাজের গ্রুপ ভিউ এবং অ্যাসেট ভিউ—সবখানেই পুনঃপরীক্ষার প্রবেশপথ রয়েছে।

- দুর্বলতার তালিকা বা বিবরণে「পুনঃপরীক্ষা」ক্লিক করুন।
- প্রয়োজনে সংশোধন সংস্করণ, পরীক্ষার শর্ত বা সীমাবদ্ধতা পূরণ করুন।
- একটি স্বতন্ত্র পুনঃপরীক্ষা Agent সেশন শুরু করুন।
- সেশনে পুনঃপরীক্ষার প্রক্রিয়া দেখুন এবং শেষ হলে সিদ্ধান্ত ও প্রমাণ পর্যালোচনা করুন।
পুনঃপরীক্ষার সিদ্ধান্তের মধ্যে রয়েছে「এখনও পুনরুৎপাদনযোগ্য」,「সংশোধন করা হয়েছে」এবং「নিশ্চিত করা যায়নি」। পুনঃপরীক্ষা সফলভাবে সম্পন্ন হয়ে সিদ্ধান্ত「সংশোধন করা হয়েছে」হলে সিস্টেম স্বয়ংক্রিয়ভাবে দুর্বলতার নিষ্পত্তির অবস্থা আপডেট করে; চলমান, ব্যর্থ, থামানো বা অন্যান্য সিদ্ধান্ত মূল অবস্থা স্বয়ংক্রিয়ভাবে পরিবর্তন করে না। মূল প্রমাণ ও প্রতিবেদন সংরক্ষিত থাকে।
সিস্টেম সম্পাদনাযোগ্য「দুর্বলতা পুনঃপরীক্ষা」retester Agent আগে থেকেই প্রস্তুত রাখে। Agent ব্যবস্থাপনায় এর প্রম্পট, LLM, রান বাজেট ও টুল কনফিগার করা যায়; নির্দিষ্ট LLM সংযুক্ত না থাকলে বৈশ্বিক সক্রিয় কনফিগারেশন ব্যবহার করা হয়। একই দুর্বলতা পুনঃপরীক্ষাধীন থাকলে বিদ্যমান সেশন পুনর্ব্যবহার করা হয়; থামানো, ব্যর্থতা বা সার্ভিস পুনরায় চালুর পর পুনরায় শুরু করা যায়।
মনে রাখুন, প্রকল্পের বিবরণ অনুযায়ী পুনঃপরীক্ষার ইতিহাস এখনও দুর্বলতা প্রতিবেদন এক্সপোর্ট বা কাজের আর্কাইভ প্যাকেজে অন্তর্ভুক্ত হয়নি এবং ট্রাফিক প্যাকেজের সঙ্গেও স্বয়ংক্রিয়ভাবে যুক্ত হয় না। ডেমো মোডে কেবল স্পষ্টভাবে চিহ্নিত সিমুলেটেড রেকর্ড তৈরি হয়, বাস্তব লক্ষ্যকে অনুরোধ পাঠানো হয় না।
রিভার্স প্রক্সি স্থাপনার মূল বিষয়
ফ্রন্টএন্ড, API এবং SSE ডিফল্টভাবে একই ব্যাকএন্ড পোর্টে প্রদান করা হয়। তাই সাধারণত শুধু HTTPS পোর্টটি পাবলিকভাবে উন্মুক্ত রেখে ARTEX-এর 8787 অভ্যন্তরীণ নেটওয়ার্কে রাখা যথেষ্ট। রিয়েল-টাইম অ্যাক্টিভিটি স্ট্রিম একই-উৎস ঠিকানা ব্যবহার করে, তাই সাধারণত NEXT_PUBLIC_SSE_BASE সেট করার প্রয়োজন হয় না।
Nginx-এর মতো রিভার্স প্রক্সিকে অবশ্যই SSE বাফারিং বন্ধ করতে হবে এবং দীর্ঘ রিড টাইমআউট সেট করতে হবে। তা না হলে ব্রাউজার সংযোগ সফল হলেও অ্যাক্টিভিটি ইভেন্ট ধারাবাহিকভাবে পেতে নাও পারে।
location / {
proxy_pass http://127.0.0.1:8787;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_buffering off;
proxy_cache off;
proxy_read_timeout 3600s;
proxy_http_version 1.1;
proxy_set_header Connection "";
}SSE-কে ভিন্ন উৎসে, যেমন স্বাধীন সাবডোমেইনে, ব্যবহার করা আবশ্যক হলেই কেবল বিল্ড পর্যায়ে NEXT_PUBLIC_SSE_BASE সেট করতে হবে। এই ভেরিয়েবলটি next build-এর সময় স্ট্যাটিক প্যাকেজে স্থায়ীভাবে যুক্ত হয়; কনটেইনার চালুর সময় সেট করলে কার্যকর হবে না।
আপগ্রেড ও রোলব্যাক

ARTEX আপগ্রেডের সময় প্রোগ্রাম প্রতিস্থাপন করে, তবে PostgreSQL ডেটা ভলিউম, ./data এবং ./skills সংরক্ষণ করে। সিস্টেম কনফিগারেশন পৃষ্ঠার「সংস্করণ ও আপডেট」কার্ড থেকে এক-ক্লিকে আপডেট করার পরামর্শ দেওয়া হয়। আপডেট প্রক্রিয়ায় বর্তমান প্ল্যাটফর্মের রিলিজ প্যাকেজ ডাউনলোড, SHA256SUMS যাচাই, নতুন বাইনারির স্মোক টেস্ট এবং তারপর স্টার্টআপ স্ক্রিপ্টের মাধ্যমে প্রতিস্থাপন সম্পন্ন হয়।
যাচাই বা স্মোক টেস্ট ব্যর্থ হলে অস্থায়ী প্রোগ্রামটি বাতিল করা হয়; নতুন সংস্করণ পরপর তিনবার চালু হতে ব্যর্থ হলে স্বয়ংক্রিয়ভাবে রোলব্যাক হয়। আগের সংস্করণটি artex.old হিসেবে রাখা হয়। তবে প্রোগ্রাম রোলব্যাকের সঙ্গে ডেটাবেস কাঠামো রোলব্যাক হয় না, তাই আপগ্রেডের আগে ডেটাবেস ও ./data ব্যাকআপ নেওয়া উচিত।
আপডেটের সময় সার্ভিস পুনরায় চালু হয় এবং চলমান কাজ ব্যাহত হয়, তাই অবসর সময়ে এটি করা উচিত। Docker স্থাপনার ক্ষেত্রে আরও মনে রাখতে হবে: পৃষ্ঠা আপডেট করলে শুধু প্রোগ্রাম প্রতিস্থাপিত হয়, ইমেজের টুলচেইন প্রতিস্থাপিত হয় না। ইমেজ আপগ্রেড করতে চালান:
docker compose pull artex
docker compose up -d artexরিপোজিটরির আপডেট স্ক্রিপ্টও ব্যবহার করা যায়:
cd ARTEX
./update.shস্থানীয় ডেভেলপমেন্ট ও পরীক্ষা
ডেভেলপমেন্ট পরিবেশে dev.sh ব্যবহার করে একই সঙ্গে ব্যাকএন্ড, ট্রাফিক প্রক্সি এবং Next.js ডেভেলপমেন্ট সার্ভার চালু করা যায়:
./dev.shডিফল্ট ব্যাকএন্ড পোর্ট 8787, ট্রাফিক প্রক্সি পোর্ট 8788 এবং ফ্রন্টএন্ড ডেভেলপমেন্ট সার্ভার 5173। আলাদাভাবেও চালানো যায়:
go run ./cmd/artex
cd web && npm run dev
go test ./...শুধু ব্যাকএন্ড চালু না করে ফ্রন্টএন্ড প্রিভিউ করতে চাইলে ব্যবহার করুন:
cd web && NEXT_PUBLIC_MOCK=1 npm run devসারাংশ
ARTEX Go মনোলিথিক ব্যাকএন্ড, Next.js ইন্টারফেস, PostgreSQL, LLM agent, ট্রাফিক রেকর্ড, অনুমোদন ব্যবস্থা এবং অ্যাসেট ব্যবস্থাপনাকে একটি সিস্টেমে একত্র করে। শুরুতে Docker বা ইনস্টলেশন স্ক্রিপ্টের মাধ্যমে স্থাপনা সম্পন্ন করে PostgreSQL ও LLM কনফিগার করা যায়, এরপর কাজ, সেশন, এক্সপ্লোরেশন চেইন, অ্যাসেট কভারেজ গ্রাফ এবং ট্রাফিক রেকর্ড পর্যায়ক্রমে দেখে সিস্টেমের আচরণ বোঝা যায়।
অ্যাসেট গ্রাফ ও এক্সপ্লোরেশন গ্রাফের ভূমিকার পার্থক্য বোঝা ARTEX আয়ত্ত করার মূল চাবিকাঠি: অ্যাসেট গ্রাফের উত্তর「কী কী অ্যাসেট আছে」, আর এক্সপ্লোরেশন গ্রাফের উত্তর「কাজ কীভাবে এগোয়」। যেকোনো পরীক্ষার আগে তা অবশ্যই স্থানীয় বিচ্ছিন্ন পরিবেশ এবং প্রকল্প অনুমোদিত শিক্ষামূলক ব্যবহারের মধ্যে সীমাবদ্ধ রাখুন এবং প্রকল্পের ঘোষণা, ওপেন সোর্স লাইসেন্স ও প্রযোজ্য আইন মেনে চলুন。
