মূল কনটেন্টে যান
এআই টিউটোরিয়াল

Astra ও JEV Minecraft এজেন্ট চালান ও যাচাই করুন

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

Astra ও JEV Minecraft এজেন্ট চালান ও যাচাই করুন

প্রকল্পটি যা করে

Astra এবং JEV Minecraft এজেন্ট কাঠামোবদ্ধ গেম পর্যবেক্ষণ এবং সীমাবদ্ধ প্লেয়ার অ্যাকশনের মাধ্যমে একটি পূর্বনির্ধারিত Minecraft Java 1.16.5 রুট সম্পন্ন করে। GPT-6 Astra, অথবা ঐচ্ছিকভাবে GPT-5.6 Sol, লক্ষ্য, প্রয়োজনীয় আইটেম এবং যাতায়াতের ওয়েপয়েন্ট পরিকল্পনা করে। এরপর JEV একটি উপলব্ধ অ্যাকশন নির্বাচন করে, আর Mineflayer চলাচল, পাথফাইন্ডিং এবং স্বাভাবিক গেম-প্রোটোকল ইন্টারঅ্যাকশন সম্পাদন করে।

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

সর্বশেষ যাচাইকৃত রান, nether-final-08, 8 মিনিট 43.300 সেকেন্ডে শেষ হয়েছে। এটি Peaceful ডিফিকাল্টিতে একটি নতুন Survival বিশ্বে খালি ইনভেন্টরি নিয়ে শুরু হয়, Nether অতিক্রম করে, প্রথম অবতরণেই ছয়টি বেড বিস্ফোরণের মাধ্যমে Ender Dragon-কে হত্যা করে এবং পূর্ণ স্বাস্থ্য ও কোনো মৃত্যু ছাড়াই এক্সিট পোর্টালে প্রবেশ করে। রানটিতে 131টি JEV সিদ্ধান্ত এবং 35টি Astra কল ব্যবহার করা হয়েছে।

প্রকল্পটি অফিসিয়াল vanilla সার্ভার ব্যবহার করে এবং স্বাভাবিক প্লেয়ার প্রোটোকলের মাধ্যমে নির্বাচিত অ্যাকশন পাঠায়। এর Java ড্রাগন সেন্সরটি শুধু-পঠনযোগ্য: এটি ড্রাগনের মাথার সঠিক অবস্থান জানায়, কিন্তু কোনো আইটেম দেয় না, কোনো entity সরায় না, স্বাস্থ্য পরিবর্তন করে না বা গেমের নিয়ম বদলায় না।

প্রধান বৈশিষ্ট্য

  • মডেলের পৃথক ভূমিকা: Astra বা Sol বর্তমান লক্ষ্য পরিকল্পনা করে, আর JEV বর্তমান পর্যবেক্ষণ থেকে একটি সীমাবদ্ধ অ্যাকশন নির্বাচন করে।
  • স্বাভাবিক Minecraft ইন্টারঅ্যাকশন: Mineflayer চলাচল, পাথফাইন্ডিং, ব্লক ইন্টারঅ্যাকশন, ক্রাফটিং, ইনভেন্টরি অপারেশন এবং প্রোটোকল যোগাযোগ পরিচালনা করে।
  • Nether-সহায়িত রুট: End যুদ্ধের আগে নির্ধারিত রুটটি Nether-কে দ্রুত যাতায়াতের পথ হিসেবে ব্যবহার করে।
  • শুধু-পঠনযোগ্য ড্রাগন পর্যবেক্ষণ: একটি স্থানীয় Java সেন্সর entity-র স্টেট পরিবর্তন না করে নির্ভুল বেড টাইমিংয়ের জন্য ড্রাগনের মাথার অবস্থান জানায়।
  • নেটিভ রেকর্ডিং: একটি লুকানো অফিসিয়াল Minecraft Java 1.16.5 ক্লায়েন্ট নেটিভ মডেল, টেক্সচার, অ্যানিমেশন, ইনভেন্টরি স্ক্রিন, স্বাস্থ্য, ক্ষুধা, বায়ু, হটবার স্টেট, হাতে ধরা আইটেম এবং ড্রাগনের স্বাস্থ্য রেন্ডার করে।
  • নিয়ন্ত্রিত ক্যামেরা চলাচল: প্রতি অক্ষে ক্যামেরা ঘোরার গতি প্রতি সেকেন্ডে 240 ডিগ্রিতে এবং ত্বরণ প্রতি সেকেন্ডে প্রতি সেকেন্ডে 960 ডিগ্রিতে সীমাবদ্ধ।
  • কাঠামোবদ্ধ প্রমাণ: JSONL ইভেন্ট লগ, স্ট্যাটাস ফাইল, বিজয়-সংক্রান্ত প্রমাণ, ভিডিও ম্যানিফেস্ট এবং বিশ্ব-স্টেট যাচাই পরবর্তী ভেরিফিকেশন সমর্থন করে।
  • স্বয়ংক্রিয় পরীক্ষা: রিপোজিটরিতে completion event, নেটিভ প্যাকেট, অ্যাকশন পলিসি এবং পাথফাইন্ডার বাতিলকরণের পরীক্ষা রয়েছে।

আর্কিটেকচার ও মডেল কনফিগারেশন

ডিফল্ট প্ল্যানার মডেল হলো openai/gpt-6-astra, যা /api/v1/chat/completions-এর মাধ্যমে কল করা হয়। PLANNER_MODEL এনভায়রনমেন্ট ভেরিয়েবলের মাধ্যমে openai/gpt-5.6-sol নির্বাচন করা যায়। JEV /api/alpha/decisions-এর মাধ্যমে typesafe/jev-1.13 ব্যবহার করে।

প্ল্যানার সরাসরি ইচ্ছেমতো কোনো সিকোয়েন্স সম্পাদন করে না। এটি বর্তমান লক্ষ্য, কাঙ্ক্ষিত আইটেম এবং ওয়েপয়েন্ট নির্ধারণ করে। JEV বর্তমান কাঠামোবদ্ধ পর্যবেক্ষণ মূল্যায়ন করে এবং একটি অনুমোদিত অ্যাকশন নির্বাচন করে। এই পৃথকীকরণ প্রতিটি সিদ্ধান্তকে সীমাবদ্ধ রাখে, একইসঙ্গে পুরো রানকে দীর্ঘমেয়াদি পরিকল্পনা অনুসরণ করতে দেয়।

প্রয়োজনীয়তা ও গুরুত্বপূর্ণ সীমাবদ্ধতা

লঞ্চ এবং নেটিভ-রেন্ডারিং স্ক্রিপ্টগুলো macOS-এ তৈরি করা হয়েছে। অন্য অপারেটিং সিস্টেমে আপনাকে রানটাইম পাথ, Java অবস্থান এবং স্থানীয় সার্ভার সেটিংস মানিয়ে নিতে হবে। সরবরাহ করা নেটিভ লঞ্চ স্ক্রিপ্ট নিজস্ব স্থানীয় Java 17 রানটাইম ব্যবহার করে।

আপনার Node.js এবং npm, নেটিভ ক্লায়েন্ট স্ক্রিপ্টের জন্য Python 3, একটি সামঞ্জস্যপূর্ণ Java রানটাইম, Google Application Default Credentials, OpenRouter কী-যুক্ত Google Secret Manager সিক্রেটে অ্যাক্সেস এবং পর্যাপ্ত OpenRouter ক্রেডিট প্রয়োজন। Minecraft বাইনারি, ডাউনলোড করা রানটাইম, সংরক্ষিত বিশ্ব, রেকর্ডিং এবং ক্রেডেনশিয়াল ইচ্ছাকৃতভাবে Git থেকে বাদ রাখা হয়েছে।

নথিভুক্ত গেম কনফিগারেশন হলো:

  • সিড: 8398967436125155523
  • মোড: Survival
  • যাচাইকৃত রেকর্ডিংয়ে ব্যবহৃত ডিফিকাল্টি: Peaceful
  • সক্রিয় End পোর্টালের কেন্দ্র: -1130, 34, 856
  • প্রধান সার্ভার: 127.0.0.1:25576
  • স্ট্যাটাস এন্ডপয়েন্ট: http://127.0.0.1:3078
  • এজেন্ট ব্যবহৃত স্থানীয় ড্রাগন সেন্সর এন্ডপয়েন্ট: http://127.0.0.1:3093
  • নেটিভ প্রোটোকল মিরর পোর্ট: 25578

সিডটিতে একটি গ্রাম, 21টি obsidian-সহ তিনটি সরবরাহ চেস্ট এবং স্বাভাবিকভাবে সক্রিয় একটি End পোর্টাল রয়েছে। নথিভুক্ত রুটে blaze rod প্রয়োজন হয় না। স্থানাঙ্কগুলো একটি পৃথক টেস্ট বিশ্বে জরিপ করা হয়েছিল, কিন্তু চূড়ান্ত রানের চলাচল ও স্থাপনাগুলো স্বাভাবিক প্লেয়ার ইন্টারঅ্যাকশনের মাধ্যমে সম্পন্ন হয়।

ধাপ 1: Node.js নির্ভরতা ইনস্টল করুন

রিপোজিটরির রুট থেকে প্রকল্পের প্যাকেজ ইনস্টল করুন:

npm install

এটি এজেন্ট, মডেল রিলে, রুট লজিক, প্রমাণ-সংক্রান্ত টুল এবং পরীক্ষায় ব্যবহৃত JavaScript নির্ভরতাগুলো ইনস্টল করে।

ধাপ 2: নিরাপদ মডেল অ্যাক্সেস কনফিগার করুন

এজেন্ট ইচ্ছাকৃতভাবে সাধারণ OPENROUTER_API_KEY এনভায়রনমেন্ট ভেরিয়েবল উপেক্ষা করে। এর পরিবর্তে, মডেল কলগুলো Google Secret Manager থেকে কী লোড করে এবং কেবল প্রসেস মেমোরিতে সেটি ধরে রাখে। কীটি সোর্স ফাইল বা রান লগে থাকার কথা নয়।

  1. model-relay.mjs এবং models.mjs খুলুন।
  2. মূল ডিপ্লয়মেন্টের Google Cloud প্রকল্প ও সিক্রেটের রেফারেন্সগুলো নিজের প্রকল্পের রেফারেন্স দিয়ে প্রতিস্থাপন করুন।
  3. Google Application Default Credentials ব্যবহার করে স্থানীয়ভাবে প্রমাণীকরণ করুন।
  4. প্রমাণীকৃত পরিচয়কে নির্বাচিত সিক্রেট অ্যাক্সেস করার অনুমতি দিন।
  5. রিপোজিটরির রিলে সেটআপ অনুযায়ী মডেল রিলে চালু করুন।
  6. এজেন্ট চালু করার সময় রিলে URL সেট করুন:
MODEL_RELAY=http://127.0.0.1:3099

OpenRouter কী সোর্স কোড, শেল স্ক্রিপ্ট, ইভেন্ট লগ বা রান মেটাডেটায় পেস্ট করবেন না। প্রকল্পটি Secret Manager থেকে কী পুনরুদ্ধার করে প্রক্রিয়ার মেমরিতে রাখার জন্য নকশা করা হয়েছে।

ধাপ ৩: সার্ভার ও ড্রাগন পর্যবেক্ষক প্রস্তুত করুন

সামঞ্জস্যপূর্ণ vanilla Minecraft Java 1.16.5 সার্ভার JAR-টি server/server.jar-এ রাখুন। README-তে উল্লেখ আছে যে ইনস্টল করা Minecraft Java runtime এই সার্ভার চালাতে পারে।

ড্রাগন পর্যবেক্ষকটি observer/DragonObserver.java-এ বাস্তবায়িত হয়েছে। এটি বিল্ড করুন:

./build-observer.sh

মূল সার্ভার এবং এর read-only সেন্সর চালু করুন:

./start-server.sh

পর্যবেক্ষকটি সার্ভারের ড্রাগন টিকে একটি শুধু-স্থানীয় পর্যবেক্ষণ কল যোগ করে। এটি read-only থাকতে হবে; এটি ড্রাগন AI অথবা কোনো খেলোয়াড় বা সত্তার অবস্থা পরিবর্তন করে না।

সত্যিকারের নতুন বিশ্ব তৈরি করুন

নতুন রান ডিরেক্টরি তৈরি করলে Minecraft বিশ্ব রিসেট হয় না। নতুন রেকর্ডিংয়ের আগে সার্ভার বন্ধ করুন এবং server/server.properties-এ ব্যবহৃত হয়নি এমন একটি level-name বেছে নিন। কনফিগার করা seed অপরিবর্তিত রাখুন, তারপর সার্ভার পুনরায় চালু করুন।

রান লগ ডিরেক্টরির জন্য একই নতুন নাম ব্যবহার করুন। আগের রানগুলোর প্রমাণের অংশ হলে আগের বিশ্বগুলো সংরক্ষণ করুন।

ধাপ ৪: নেটিভ ক্লায়েন্ট ইনস্টল ও বিল্ড করুন

গোপন নেটিভ ক্লায়েন্টটি নতুন রেকর্ডিংয়ে ব্যবহৃত অফিসিয়াল Minecraft রেন্ডারিং সরবরাহ করে। এর Python-ভিত্তিক নির্ভরতাগুলো ইনস্টল করুন এবং ডিসপ্লে ও ক্যাপচার অ্যাডাপ্টার বিল্ড করুন:

python3 native-client/install.py
./native-client/build.sh

ক্লায়েন্টটি একটি বিচ্ছিন্ন গেম ডিরেক্টরি ব্যবহার করে, তাই এটি ব্যবহারকারীর স্বাভাবিক Minecraft সেটিংস ওভাররাইট করে না। ডেস্কটপ ফোকাস ও কার্সর নিয়ন্ত্রণ নিষ্ক্রিয় থাকে, এবং ক্যাপচার ডেস্কটপ রেকর্ড করার পরিবর্তে গেমের ফ্রেমবাফার থেকে পড়ে।

ধাপ ৫: রান কনফিগারেশন স্থির করুন

একটি অনন্য শনাক্তকারী বেছে নিন, যা নিচে NEW_RUN হিসেবে দেখানো হয়েছে। এজেন্ট চালু করার আগে রানটি স্থির করুন:

node optimization/nether/freeze-run.mjs NEW_RUN

চূড়ান্ত রুটটি optimization/nether/config.json-এ নির্ধারিত। একটি রান স্থির করলে তার ফলস্বরূপ লগ ও রেকর্ডিংয়ের সঙ্গে সম্পর্কিত কনফিগারেশন সংরক্ষণে সহায়তা করে।

ধাপ ৬: এজেন্ট চালু করুন

রিপোজিটরির রুট থেকে এজেন্ট চালু করুন। নিচের কমান্ডটি Astra নির্বাচন করে, নেটিভ ভিউ ও রেকর্ডার সক্রিয় করে, নেটিভ ক্লায়েন্টের জন্য অপেক্ষা করে এবং ড্রাগন সেন্সরের সঙ্গে সংযোগ স্থাপন করে:

PLANNER_MODEL=openai/gpt-6-astra RUN_ID=NEW_RUN \
NATIVE_VIEW=1 WAIT_NATIVE=1 NATIVE_RECORD=1 \
DRAGON_SENSOR_URL=http://127.0.0.1:3093 node nether-agent.mjs

রিলে URL যদি ইতিমধ্যে প্রসেসের পরিবেশে না থাকে, সেটিও অন্তর্ভুক্ত করুন:

MODEL_RELAY=http://127.0.0.1:3099 \
PLANNER_MODEL=openai/gpt-6-astra RUN_ID=NEW_RUN \
NATIVE_VIEW=1 WAIT_NATIVE=1 NATIVE_RECORD=1 \
DRAGON_SENSOR_URL=http://127.0.0.1:3093 node nether-agent.mjs

পরিকল্পনাকারী হিসেবে Sol ব্যবহার করতে মডেল মান পরিবর্তন করুন:

PLANNER_MODEL=openai/gpt-5.6-sol

ধাপ ৭: গোপন Minecraft ক্লায়েন্ট চালু করুন

স্থানীয় প্রোটোকল মিররটি 25578 পোর্টে শুনছে কি না অপেক্ষা করে দেখুন। তারপর অন্য একটি টার্মিনাল খুলে চালান:

python3 native-client/launch.py

WAIT_NATIVE=1 সক্রিয় থাকায়, প্রথম পদক্ষেপ নেওয়ার আগে এজেন্ট গোপন ক্লায়েন্ট ও রেকর্ডারের জন্য অপেক্ষা করে। exit-portal ইভেন্টের পরে রেকর্ডার থেমে যায়।

ফলস্বরূপ ক্যাপচারটি ২০ ফ্রেম প্রতি সেকেন্ডে 960 × 540 রেজোলিউশন এবং অডিও ছাড়া ব্যবহারের জন্য তৈরি। এতে স্বাস্থ্য, ক্ষুধা, হটবার, হাতে ধরা আইটেম, ইনভেন্টরি ও ক্রাফটিং স্ক্রিন, নেটিভ অ্যানিমেশন এবং ড্রাগনের স্বাস্থ্য দেখা যেতে পারে।

নিরাপদে রান পর্যবেক্ষণ ও বন্ধ করা

স্থানীয় স্ট্যাটাস এন্ডপয়েন্ট থেকে বর্তমান অবস্থা পাওয়া যায়:

http://127.0.0.1:3078

বর্তমান অগ্রগতি status.json-এও লেখা হয়। কোনো অ্যাকশন সীমায় থামার অনুরোধ করতে নিচের ফাইলটি তৈরি করুন:

runs/NEW_RUN/stop

রান শেষ হওয়ার সঙ্গে সঙ্গে নেটিভ ক্লায়েন্ট বন্ধ করবেন না। রেকর্ডিং সম্পন্ন হওয়ার মার্কারের জন্য অপেক্ষা করুন:

runs/NEW_RUN/full-playthrough.mp4.finished.json

এটি চূড়ান্ত ক্যাপচার অসম্পূর্ণ বা ক্ষতিগ্রস্ত হওয়া এড়াতে সহায়তা করে।

তৈরি হওয়া প্রমাণ বোঝা

প্রতিটি রান তার প্রমাণ runs/<run>-এর অধীনে সংরক্ষণ করে। সবচেয়ে গুরুত্বপূর্ণ ফাইলগুলো হলো:

  • events.jsonl: অনুরোধ, মডেলের প্রতিক্রিয়া, নির্বাচিত পদক্ষেপ, গেমের ফলাফল এবং সমাপ্তির ইভেন্ট।
  • status.json: রানটির সর্বশেষ অগ্রগতি।
  • victory.json: প্রয়োজনীয় ড্রাগন-মৃত্যু ও exit-portal প্রমাণ উপস্থিত থাকলেই তৈরি হয়।
  • full-playthrough.mp4: রেকর্ডিং সক্রিয় থাকলে নেটিভ রেকর্ডিং।
  • full-playthrough.mp4.finished.json: রেকর্ডিং চূড়ান্তকরণ সম্পন্ন হওয়ার নিশ্চিতকরণ।

ড্রাগন-মৃত্যুর প্রমাণ kill advancement হতে পারে, অথবা ড্রাগনের dying phase-এর সঙ্গে সার্ভার-প্রতিবেদিত শূন্য স্বাস্থ্য মিলিত হতে পারে। এই পার্থক্য গুরুত্বপূর্ণ, কারণ বিছানা ব্যবহার করে করা হত্যায় kill advancement অনুপস্থিত থাকতে পারে। Java 1.16.5-এর ক্ষেত্রে exit event-এ সংখ্যাগত reason 4 ব্যবহার করা হয়।

একটি বৈধ চূড়ান্ত পর্যালোচনায় শুধু victory.json-এর ওপর নির্ভর করা উচিত নয়। বিশ্বের DragonFight অবস্থা এবং ভিডিওও পরীক্ষা করা উচিত।

স্বয়ংক্রিয় পরীক্ষা চালান

সম্পন্নতার ইভেন্ট, নেটিভ মিরর প্যাকেট, অ্যাকশন পলিসি এবং পাথফাইন্ডার বাতিলকরণ যাচাই করতে রিপোজিটরির Node টেস্ট স্যুট ব্যবহার করুন:

node --test evidence.test.mjs native-mirror.test.mjs optimization/*.test.mjs optimization/pass-2/policy.test.mjs optimization/nether/*.test.mjs

এই টেস্টগুলো লাইভ ভ্যালিডেশনের বিকল্প নয়। মুভমেন্ট, ক্রাফটিং, কমব্যাট, সার্ভার ইন্টিগ্রেশন এবং রেকর্ডিংয়ের জন্য এখনও চালু Minecraft সার্ভারের বিরুদ্ধে টেস্ট প্রয়োজন।

End কমব্যাট কীভাবে কাজ করে

end-combat.mjs-এ থাকা কমব্যাট ইমপ্লিমেন্টেশন JEV-এর নির্বাচনের জন্য একটি সীমাবদ্ধ বেড আক্রমণ প্রকাশ করে। অ্যাকশনটি একটি বেড স্থাপন করে, সেটিকে লক্ষ্য করে, পর্যবেক্ষিত ড্রাগনের মাথা কনফিগার করা আক্রমণ-সময়ের পরিসরে প্রবেশ করা পর্যন্ত অপেক্ষা করে এবং একটি ব্যবহার কমান্ড পাঠায়।

খেলোয়াড় কভার হারালে বা ড্রাগনের নিঃশ্বাস কভার এলাকায় প্রবেশ করলে অ্যাকশনটি বাতিল হয়। README অনুযায়ী, ব্যবহারের আগে লক্ষ্য নির্ধারণ এবং আক্রমণ-সময়ের পরিসর সংকুচিত করার ফলে স্থানীয় টিউনিংয়ে প্রতি বেডে ক্ষতি 11 থেকে 46-এ উন্নীত হয়েছিল।

চূড়ান্তভাবে যাচাইকৃত রানে প্রথমবার অবতরণের সময় ছয়টি বেড বিস্ফোরণে ড্রাগনটি নিহত হয়। তবে ড্রাগনের উড়ান ও অবতরণের সময় প্রতিটি রানে ভিন্ন হতে পারে, তাই একই সম্পন্নতার সময় নিশ্চিত নয়।

কমব্যাট ল্যাব সঠিকভাবে ব্যবহার করুন

combat-lab ডিরেক্টরিটি একটি পৃথক টেস্ট পরিবেশ। এতে প্রস্তুত করা অবস্থান, ইনভেন্টরি এবং অন্যান্য টেস্ট পরিবর্তন থাকতে পারে। এর হার্ডকোড করা ড্রাইভার, combat-probe.mjs, 25577 পোর্ট ব্যবহার করে এবং কোনো মডেলকে কল করে না।

কমব্যাট-ল্যাবের ফলাফলকে সম্পূর্ণ মডেল-নিয়ন্ত্রিত Survival রান হিসেবে কখনো উপস্থাপন করবেন না। ল্যাবের ফলাফল বিচ্ছিন্ন কমব্যাট আচরণ যাচাই করে, খালি ইনভেন্টরি থেকে সম্পূর্ণ রুট নয়।

উন্নত রেকর্ডিং ও যাচাইয়ের টিপস

একটি তথ্য ওভারলে যোগ ও যাচাই করুন

রিপোজিটরিতে একটি ওভারলে ওয়ার্কফ্লো নথিভুক্ত আছে, যা মডেলের নাম, অতিবাহিত মিলিসেকেন্ড, XYZ স্থানাঙ্ক, প্ল্যানারের উদ্দেশ্য এবং নির্বাচিত অ্যাকশন দেখানো একটি স্বচ্ছ ওপরের ব্যানার যোগ করে। এই লেবেলগুলো রেকর্ড করা মডেল-প্রতিক্রিয়া এবং গেম ইভেন্টের ওপর ভিত্তি করে তৈরি।

নথিভুক্ত উদাহরণ রানটির জন্য, নিচের কমান্ড দিয়ে ওভারলে তৈরি ও যাচাই করুন:

node overlay.mjs nether-final-02
node verify-run.mjs nether-final-02 nether-final-02 full-playthrough-overlay.mp4

পুরোনো Prismarine Viewer রেকর্ডিংয়ের জন্য নথিভুক্ত কমান্ডগুলো হলো:

node assemble-video.mjs recorded-06
node verify-run.mjs recorded-06

পুরোনো recorded-06 ওয়ার্কফ্লোতে Prismarine Viewer এবং একটি কাস্টম HUD ব্যবহার করা হয়েছিল। নতুন রেকর্ডিংগুলো read-only protocol mirror-এর মাধ্যমে অফিসিয়াল Minecraft Java 1.16.5 ক্লায়েন্ট ব্যবহার করে।

বিরতি ও কোড-আপডেটের ইতিহাস সংরক্ষণ করুন

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

অনিরাপদ পোর্টাল-প্রবেশ কৌশল এড়িয়ে চলুন

একটি ল্যাব টেস্টে দেখা গেছে, End পোর্টালে দীর্ঘ পতন হলে পতনের ক্ষতি End-এও বহন হতে পারে। রেকর্ড করা রুটটি সেই কৌশল প্রত্যাখ্যান করে পরিবর্তে ছোট, যাচাইকৃত নিচের দিকে খননের ধাপ ব্যবহার করেছে। রুটের আচরণ পরিবর্তন করার সময় এই নিরাপত্তা-সীমা বজায় রাখুন।

বিজয়কে টার্মিনাল রাখুন

বর্তমান ইমপ্লিমেন্টেশন বিজয়ের পর আরেকটি গেম অ্যাকশন প্রতিরোধ করে। অ্যাকশন লুপ পরিবর্তন করলে এই আচরণ বজায় রাখুন, কারণ বিজয়ের পরের অ্যাকশন লগ ও রেকর্ডিং বোঝা কঠিন করে তুলতে পারে।

স্থানীয় আর্টিফ্যাক্ট Git-এর বাইরে রাখুন

রেকর্ডিং এবং তৈরি করা প্রমাণ নকশাগতভাবে স্থানীয় থাকে। সর্বশেষ ভিডিওটির নথিভুক্ত পাথ হলো runs/nether-final-08/full-playthrough-banner.mp4; এর যাচাই, সময়ের তুলনা এবং অ্যাকশন লগ একই রান ডিরেক্টরিতে রয়েছে। রেকর্ডিং, ডাউনলোড করা রানটাইম, সার্ভার বাইনারি, ওয়ার্ল্ড বা ক্রেডেনশিয়াল কমিট করবেন না।

সমস্যা সমাধানের চেকলিস্ট

  • এজেন্ট শুরু হচ্ছে না: নিশ্চিত করুন যে মিররটি 25578 পোর্টে শুনছে এবং নেটিভ ক্লায়েন্ট সংযুক্ত হয়েছে। WAIT_NATIVE=1 থাকলে অপেক্ষা করা প্রত্যাশিত।
  • মডেল অনুরোধ ব্যর্থ হচ্ছে: Google Application Default Credentials, Secret Manager-এর অনুমতি, model-relay.mjs ও models.mjs-এ থাকা প্রজেক্ট এবং সিক্রেট রেফারেন্স, 3099 পোর্টে রিলে প্রাপ্যতা এবং OpenRouter ক্রেডিট যাচাই করুন।
  • রানটি পুরোনো ওয়ার্ল্ডে শুরু হচ্ছে: সার্ভার বন্ধ করুন এবং সত্যিই অব্যবহৃত একটি level-name সেট করুন। শুধু নতুন রান ডিরেক্টরি তৈরি করা যথেষ্ট নয়।
  • ড্রাগনের পর্যবেক্ষণ পাওয়া যাচ্ছে না: অবজারভার বিল্ড করুন, এর সেন্সরসহ সার্ভার শুরু করুন এবং এজেন্ট DRAGON_SENSOR_URL=http://127.0.0.1:3093 ব্যবহার করছে কি না নিশ্চিত করুন।
  • সমাপ্ত রেকর্ডিংয়ের মার্কার দেখা যাচ্ছে না: full-playthrough.mp4.finished.json লেখা না হওয়া পর্যন্ত নেটিভ ক্লায়েন্ট চালু রাখুন।
  • প্ল্যাটফর্ম-নির্দিষ্ট পাথ ব্যর্থ হচ্ছে: Java, Minecraft runtime, নেটিভ ক্লায়েন্ট এবং সার্ভারের পাথ সামঞ্জস্য করুন, কারণ সরবরাহ করা স্ক্রিপ্টগুলো macOS-এ তৈরি করা হয়েছিল।

উপসংহার

Astra এবং JEV প্রকল্পটি একটি অবাধ গেম বটের পরিবর্তে কাঠামোবদ্ধ, প্রমাণ-ভিত্তিক Minecraft এজেন্ট প্রদর্শন করে। Astra বা Sol রুট পরিকল্পনা করে, JEV সীমাবদ্ধ অ্যাকশন নির্বাচন করে, Mineflayer স্বাভাবিক প্রোটোকলের মাধ্যমে সেগুলো সম্পাদন করে এবং একটি read-only সেন্সর নির্ভুল ড্রাগন কমব্যাটে সহায়তা করে। একটি নির্ভরযোগ্য রানের জন্য সতর্ক ক্রেডেনশিয়াল ব্যবস্থাপনা, সত্যিই নতুন ওয়ার্ল্ড, সমন্বিত নেটিভ রেকর্ডিং, সংরক্ষিত লগ, স্বয়ংক্রিয় টেস্ট এবং গেমের অবস্থা ও ভিডিও প্রমাণের চূড়ান্ত পর্যালোচনা প্রয়োজন।

সম্পর্কিত ভিত্তিগুলোর জন্য অফিশিয়াল TypeSafe পরিচিতি, Mineflayer রিপোজিটরি এবং অফিশিয়াল Astra মডেল ডকুমেন্টেশন দেখুন।