
Kile mradi hufanya
Wakala wa Astra na JEV wa Minecraft hukamilisha njia iliyobainishwa mapema ya Minecraft Java 1.16.5 kwa kutumia uchunguzi wa mchezo wenye muundo na vitendo vya mchezaji vilivyo na mipaka. GPT-6 Astra, au kwa hiari GPT-5.6 Sol, hupanga malengo, vitu vinavyolengwa, na vituo vya njia vya kusafiria. Kisha JEV huchagua kitendo kinachopatikana, huku Mineflayer ikitekeleza uhamishaji, utafutaji wa njia, na mwingiliano wa kawaida wa itifaki ya mchezo.
Huu si udhibiti unaotegemea picha za skrini pekee, wala hauigi mibofyo ya kibodi ya mtu mmoja mmoja. Miundo hupokea hali yenye muundo, ikijumuisha vitalu katika vipande vilivyopakiwa na viwianishi vilivyotolewa vya mbegu inayojulikana. Vitendo vinavyopatikana vinajumuisha kusafiri, kuchimba kitalu kimoja, kukusanya vitu vilivyoanguka, kutengeneza, kufungua vifua, kula, kulala, na mwingiliano wa mapigano.
Jaribio la hivi karibuni lililothibitishwa, nether-final-08, lilikamilika kwa dakika 8 sekunde 43.300. Lilianza kwa orodha tupu ya vitu katika ulimwengu mpya wa Survival wenye kiwango cha ugumu cha Peaceful, likasafiri kupitia Nether, likamuua Ender Dragon kwa milipuko sita ya vitanda wakati wa kutua kwake kwa kwanza, na likaingia kwenye lango la kutoka likiwa na afya kamili na bila vifo. Jaribio hilo lilitumia maamuzi 131 ya JEV na miito 35 ya Astra.
Mradi hutumia seva rasmi ya vanilla na hutuma vitendo vilivyochaguliwa kupitia itifaki ya kawaida ya mchezaji. Kitambuzi chake cha Java cha dragon ni cha kusoma pekee: huripoti mahali halisi pa kichwa cha dragon lakini hakitoi vitu, hakisogezi huluki, hakibadilishi afya, wala hakibadilishi sheria za mchezo.
Vipengele muhimu
- Majukumu yaliyotenganishwa ya miundo: Astra au Sol hupanga lengo la sasa, huku JEV ikichagua kitendo kimoja chenye mipaka kutokana na uchunguzi wa sasa.
- Mwingiliano wa kawaida wa Minecraft: Mineflayer hushughulikia uhamishaji, utafutaji wa njia, mwingiliano wa vitalu, utengenezaji, shughuli za orodha ya vitu, na mawasiliano ya itifaki.
- Njia inayosaidiwa na Nether: Njia isiyobadilika hutumia Nether kama mkato wa kusafiri kabla ya mapambano ya End.
- Uchunguzi wa dragon wa kusoma pekee: Kitambuzi cha ndani cha Java huripoti mahali pa kichwa cha dragon kwa upangaji sahihi wa muda wa vitanda bila kubadilisha hali ya huluki.
- Rekodi asilia: Mteja rasmi wa Minecraft Java 1.16.5 uliofichwa huonyesha miundo, maumbo, uhuishaji, skrini za orodha ya vitu, afya, njaa, hewa, hali ya upau wa vitu, vitu vilivyoshikiliwa, na afya ya dragon kwa njia asilia.
- Uhamishaji unaodhibitiwa wa kamera: Mizunguko ya kamera inawekewa kikomo cha digrii 240 kwa sekunde kwa kila mhimili, ikiwa na kuongeza kasi ya digrii 960 kwa sekunde mraba.
- Ushahidi wenye muundo: Kumbukumbu za matukio za JSONL, faili za hali, ushahidi wa ushindi, maelezo ya video, na ukaguzi wa hali ya ulimwengu huwezesha uthibitishaji wa baadaye.
- Majaribio ya kiotomatiki: Hazina hii ina ukaguzi wa matukio ya kukamilika, pakiti asilia, sera ya vitendo, na kughairi kitafuta njia.
Muundo wa mfumo na usanidi wa modeli
Modeli chaguo-msingi ya mpangaji ni openai/gpt-6-astra, inayoitwa kupitia /api/v1/chat/completions. Unaweza kuchagua openai/gpt-5.6-sol kupitia kigezo cha mazingira cha PLANNER_MODEL. JEV hutumia typesafe/jev-1.13 kupitia /api/alpha/decisions.
Mpangaji hatekelezi moja kwa moja mfululizo wa vitendo holela. Huanzisha lengo la sasa, vitu vinavyohitajika, na kituo cha njia. JEV hutathmini uchunguzi wa sasa wenye muundo na kuchagua kitendo kinachoruhusiwa. Utenganishaji huu huweka mipaka kwa maamuzi binafsi huku ukiruhusu jaribio zima kufuata mpango mrefu zaidi.
Mahitaji na vikwazo muhimu
Hati za kuanzisha na kutoa picha asilia zilitengenezwa kwenye macOS. Kwenye mfumo mwingine wa uendeshaji, lazima ubadilishe njia za uendeshaji, maeneo ya Java, na mipangilio ya seva ya ndani. Hati ya kuanzisha asilia iliyotolewa hutumia runtime yake ya ndani ya Java 17.
Unahitaji Node.js na npm, Python 3 kwa hati za mteja asilia, runtime ya Java inayooana, Google Application Default Credentials, ufikiaji wa siri ya Google Secret Manager iliyo na ufunguo wa OpenRouter, na salio la kutosha la OpenRouter. Binaries za Minecraft, runtimes zilizopakuliwa, ulimwengu uliohifadhiwa, rekodi, na vitambulisho vya kuingia vimeondolewa kwa makusudi kwenye Git.
Usanidi wa mchezo uliowekwa kwenye nyaraka ni:
- Mbegu:
8398967436125155523 - Hali:
Survival - Kiwango cha ugumu kilichotumika kwa rekodi iliyothibitishwa:
Peaceful - Katikati ya lango la End linalotumika:
-1130, 34, 856 - Seva kuu:
127.0.0.1:25576 - Njia ya hali:
http://127.0.0.1:3078 - Njia ya ndani ya kitambuzi cha dragon kinachotumiwa na wakala:
http://127.0.0.1:3093 - Porti ya kioo cha itifaki asilia:
25578
Mbegu hiyo ina kijiji, vifua vitatu vya vifaa vyenye obsidian 21, na lango la End lililoamilika kiasili. Njia iliyoandikwa haihitaji vijiti vya blaze. Viwianishi vilichunguzwa katika ulimwengu tofauti wa majaribio, lakini uhamishaji na uwekaji katika jaribio la mwisho hutumia mwingiliano wa kawaida wa mchezaji.
Hatua ya 1: Sakinisha vitegemezi vya Node.js
Kutoka kwenye mzizi wa hazina, sakinisha vifurushi vya mradi:
npm installHii husakinisha vitegemezi vya JavaScript vinavyotumiwa na wakala, relay ya modeli, mantiki ya njia, zana za ushahidi, na majaribio.
Hatua ya 2: Sanidi ufikiaji salama wa modeli
Wakala hupuuza kwa makusudi kigezo cha jumla cha mazingira cha OPENROUTER_API_KEY. Badala yake, miito ya modeli hupakia ufunguo kutoka Google Secret Manager na kuuhifadhi katika kumbukumbu ya mchakato pekee. Ufunguo huo haupaswi kuonekana katika faili za chanzo au kumbukumbu za uendeshaji.
- Fungua
model-relay.mjsnamodels.mjs. - Badilisha marejeleo ya mradi wa Google Cloud na siri ya uwekaji wa awali kwa marejeleo ya mradi wako mwenyewe.
- Jithibitishe hapa nchini kwa kutumia Google Application Default Credentials.
- Ruhusu utambulisho uliothibitishwa kufikia siri iliyochaguliwa.
- Anzisha relay ya modeli kulingana na usanidi wa relay wa hifadhi hii.
- Weka URL ya relay unapoanzisha wakala:
MODEL_RELAY=http://127.0.0.1:3099Usibandike ufunguo wa OpenRouter kwenye msimbo wa chanzo, hati za shell, kumbukumbu za matukio, au metadata ya uendeshaji. Mradi huu umeundwa ili kupata ufunguo kutoka Secret Manager na kuuhifadhi kwenye kumbukumbu ya mchakato.
Hatua ya 3: Andaa seva na mwangalizi wa joka
Weka JAR ya seva inayooana ya vanilla Minecraft Java 1.16.5 kwenye server/server.jar. README inabainisha kuwa mazingira ya Minecraft Java yaliyosakinishwa yanaweza kuendesha seva hii.
Mwangalizi wa joka ametekelezwa kwenye observer/DragonObserver.java. Iunde kwa:
./build-observer.shAnzisha seva kuu na kihisi chake cha kusoma pekee kwa:
./start-server.shMwangalizi anaongeza mwito wa uchunguzi wa ndani pekee kwenye mzunguko wa joka wa seva. Lazima ubaki wa kusoma pekee; haubadilishi AI ya joka wala hali ya mchezaji au huluki yoyote.
Unda ulimwengu mpya kabisa
Saraka mpya ya uendeshaji haibadilishi upya ulimwengu wa Minecraft. Kabla ya kurekodi upya, simamisha seva na uchague level-name ambayo haijatumika kwenye server/server.properties. Weka seed iliyosanidiwa bila kuibadilisha, kisha anzisha seva tena.
Tumia jina hilo hilo jipya kwa saraka ya kumbukumbu ya uendeshaji. Hifadhi ulimwengu za awali zinapokuwa sehemu ya ushahidi wa uendeshaji wa awali.
Hatua ya 4: Sakinisha na uunde mteja asilia
Mteja asilia uliofichwa hutoa uonyeshaji rasmi wa Minecraft unaotumika katika rekodi mpya. Sakinisha vitegemezi vyake vya upande wa Python na uunde adapta ya kuonyesha na kunasa:
python3 native-client/install.py
./native-client/build.shMteja hutumia saraka ya mchezo iliyotengwa, kwa hivyo hauandiki juu ya mipangilio ya kawaida ya Minecraft ya mtumiaji. Umakinifu wa eneo-kazi na udhibiti wa kielekezi umezimwa, na kunasa husoma fremu ya mchezo badala ya kurekodi eneo-kazi.
Hatua ya 5: Funga usanidi wa uendeshaji
Chagua kitambulisho cha kipekee, kinachowakilishwa hapa chini kama NEW_RUN. Funga uendeshaji kabla ya kuanzisha wakala:
node optimization/nether/freeze-run.mjs NEW_RUNNjia ya mwisho imefafanuliwa kwenye optimization/nether/config.json. Kufunga uendeshaji husaidia kuhifadhi usanidi unaohusishwa na kumbukumbu na rekodi inayotokana nao.
Hatua ya 6: Anzisha wakala
Anzisha wakala kutoka mzizi wa hifadhi. Amri ifuatayo huchagua Astra, huwezesha mwonekano asilia na kinasa, husubiri mteja asilia, na kuunganisha kwenye kihisi cha joka:
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.mjsIkiwa URL ya relay haipo tayari kwenye mazingira ya mchakato, ijumuishe pia:
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.mjsIli kutumia Sol kama mpangaji badala yake, badilisha thamani ya modeli:
PLANNER_MODEL=openai/gpt-5.6-solHatua ya 7: Anzisha mteja wa Minecraft uliofichwa
Subiri hadi kioo cha itifaki cha ndani kisikilize kwenye mlango 25578. Kisha fungua terminali nyingine na uendeshe:
python3 native-client/launch.pyKwa kuwa WAIT_NATIVE=1 imewezeshwa, wakala husubiri mteja na kinasa vilivyofichwa kabla ya kuchukua hatua yake ya kwanza. Kinasa husimama baada ya tukio la lango la kutoka.
Kinasa kinachotokana kimeundwa kwa mwonekano wa 960 × 540 kwa fremu 20 kwa sekunde bila sauti. Kinaweza kuonyesha afya, njaa, upau wa zana, vitu vilivyoshikiliwa, orodha na skrini za utengenezaji, uhuishaji asilia, na afya ya joka.
Ufuatiliaji na kusimamisha uendeshaji kwa usalama
Hali ya sasa inapatikana kutoka kwenye kituo cha hali cha ndani:
http://127.0.0.1:3078Maendeleo ya sasa pia yanaandikwa kwenye status.json. Ili kuomba kusimamishwa kwenye mpaka wa hatua, unda faili ifuatayo:
runs/NEW_RUN/stopUsimsitishe mara moja mteja asilia baada ya uendeshaji kumalizika. Subiri alama ya kukamilika kwa rekodi:
runs/NEW_RUN/full-playthrough.mp4.finished.jsonHii husaidia kuzuia kukatiza au kuharibu kinasa cha mwisho.
Kuelewa ushahidi unaozalishwa
Kila uendeshaji huhifadhi ushahidi wake chini ya runs/<run>. Faili muhimu zaidi ni:
events.jsonl: maombi, majibu ya modeli, vitendo vilivyochaguliwa, matokeo ya mchezo, na matukio ya kukamilika.status.json: maendeleo ya hivi karibuni ya uendeshaji.victory.json: huzalishwa tu wakati ushahidi unaohitajika wa kifo cha joka na lango la kutoka unapopatikana.full-playthrough.mp4: rekodi asilia wakati kurekodi kumewezeshwa.full-playthrough.mp4.finished.json: uthibitisho kwamba ukamilishaji wa rekodi umekamilika.
Ushahidi wa kifo cha joka unaweza kuwa hatua ya kuua au afya sifuri iliyoripotiwa na seva pamoja na awamu ya kufa ya joka. Tofauti hii ni muhimu kwa sababu mauaji kwa vitanda yanaweza kukosa hatua ya kuua. Kwa Java 1.16.5, tukio la kutoka hutumia sababu ya nambari 4.
Ukaguzi halali wa mwisho haupaswi kutegemea victory.json pekee. Unapaswa pia kuchunguza hali ya DragonFight ya ulimwengu na video.
Endesha ukaguzi wa kiotomatiki
Tumia seti ya majaribio ya Node ya hifadhi ili kukagua matukio ya kukamilika, pakiti asilia za kioo, sera ya vitendo, na kughairi kwa kitafuta njia:
node --test evidence.test.mjs native-mirror.test.mjs optimization/*.test.mjs optimization/pass-2/policy.test.mjs optimization/nether/*.test.mjsMajaribio haya hayachukui nafasi ya uthibitishaji wa moja kwa moja. Mwendo, utengenezaji, mapambano, muunganisho wa seva, na kurekodi bado vinahitaji majaribio dhidi ya seva ya Minecraft inayoendesha.
Jinsi pambano la End linavyofanya kazi
Utekelezaji wa pambano katika end-combat.mjs unaweka wazi shambulio moja lenye mipaka la kitanda ili JEV lichague. Kitendo hicho kinaweka kitanda kimoja, kinakilenga, kinasubiri hadi kichwa cha joka kinachotazamwa kiingie kwenye dirisha la shambulio lililosanidiwa, kisha kinatuma amri moja ya kutumia.
Kitendo hukatishwa mchezaji akipoteza kinga au pumzi ya joka ikiingia katika eneo la kinga. Kulingana na README, urekebishaji wa ndani uliimarisha uharibifu kutoka 11 hadi 46 kwa kila kitanda kwa kulenga kabla ya kutumia na kubana dirisha la shambulio.
Uendeshaji wa mwisho uliothibitishwa ulimuua joka kwa milipuko sita ya vitanda wakati wa kutua kwake kwa mara ya kwanza. Hata hivyo, muda wa kuruka na kutua kwa joka hutofautiana kati ya uendeshaji, kwa hiyo nyakati zinazofanana za kukamilika hazijahakikishwa.
Tumia maabara ya pambano kwa usahihi
Saraka ya combat-lab ni mazingira tofauti ya majaribio. Inaweza kutumia nafasi, orodha za vitu, na mabadiliko mengine yaliyoandaliwa kwa majaribio. Kiendeshi chake kilichowekwa moja kwa moja, combat-probe.mjs, hutumia porti 25577 na hakiiti modeli yoyote kati ya hizo mbili.
Usiwahi kuwasilisha matokeo ya combat-lab kama uendeshaji kamili wa Survival unaodhibitiwa na modeli. Matokeo ya maabara yanathibitisha tabia ya pambano lililotengwa, si njia kamili kutoka kwenye orodha tupu ya vitu.
Vidokezo vya kina vya kurekodi na kuthibitisha
Ongeza na uthibitishe kidirisha cha taarifa
Hifadhi inaeleza mtiririko wa kazi wa kidirisha unaoongeza bango la juu lenye uwazi linaloonyesha majina ya modeli, milisekunde zilizopita, viwianishi vya XYZ, lengo la mpangaji, na kitendo kilichochaguliwa. Lebo hizi zinategemea majibu ya modeli yaliyorekodiwa na matukio ya mchezo.
Kwa uendeshaji wa mfano ulioelezwa, tengeneza na uthibitishe kidirisha kwa:
node overlay.mjs nether-final-02
node verify-run.mjs nether-final-02 nether-final-02 full-playthrough-overlay.mp4Kwa rekodi ya zamani ya Prismarine Viewer, amri zilizoelezwa ni:
node assemble-video.mjs recorded-06
node verify-run.mjs recorded-06Mtiririko wa zamani wa recorded-06 ulitumia Prismarine Viewer na HUD maalum. Rekodi mpya hutumia mteja rasmi wa Minecraft Java 1.16.5 kupitia kioo cha itifaki cha kusoma tu.
Hifadhi mapumziko na historia ya masasisho ya msimbo
Ikiwa rekodi ina faili nyingi za kunasa kwa sababu wakala alihitaji sasisho la msimbo, hifadhi kila sehemu ya uchezaji inayotumika. Weka alama ya kila kusitisha kwa ajili ya sasisho katika video iliyounganishwa na uripoti vifo na mapumziko yote. Uendeshaji kama huo haupaswi kuelezwa kuwa haukukatikakatika au haukuwa na vifo isipokuwa maelezo hayo ni sahihi.
Epuka mikakati isiyo salama ya kuingia kwenye lango
Jaribio la maabara lilionyesha kuwa kuanguka kwa muda mrefu kwenye lango la End kunaweza kupeleka uharibifu wa kuanguka hadi End. Njia iliyorekodiwa ilikataa mkakati huo na badala yake ikatumia hatua fupi za kuchimba kuelekea chini zilizokaguliwa. Hifadhi kizuizi hiki cha usalama unapobadilisha tabia ya njia.
Hakikisha ushindi unamaliza mchezo
Utekelezaji wa sasa huzuia kitendo kingine cha mchezo baada ya ushindi. Hifadhi tabia hii ukibadilisha mzunguko wa vitendo, kwa sababu vitendo vya baada ya ushindi vinaweza kufanya kumbukumbu na rekodi kuwa ngumu kutafsiri.
Usiweke vitu vya ndani kwenye Git
Rekodi na ushahidi uliotengenezwa hubaki kwenye kompyuta ya ndani kwa makusudi. Njia iliyoandikwa ya video ya hivi karibuni ni runs/nether-final-08/full-playthrough-banner.mp4, pamoja na uthibitishaji wake, ulinganisho wa muda, na kumbukumbu ya vitendo katika saraka hiyo hiyo ya uendeshaji. Usihifadhi kwenye commit rekodi, mazingira ya uendeshaji yaliyopakuliwa, jozi za seva, dunia, au vitambulisho vya siri.
Orodha ya ukaguzi wa utatuzi
- Wakala haanzi: Thibitisha kuwa kioo kinasikiliza kwenye porti
25578na kwamba mteja asilia umeunganishwa. Ukiwa naWAIT_NATIVE=1, kusubiri kunatarajiwa. - Maombi ya modeli yanashindwa: Thibitisha Google Application Default Credentials, ruhusa za Secret Manager, marejeo ya mradi na siri katika
model-relay.mjsnamodels.mjs, upatikanaji wa relay kwenye porti3099, na salio la OpenRouter. - Uendeshaji unaanza katika dunia ya zamani: Simamisha seva na weka
level-nameambayo kwa kweli haijawahi kutumika. Kuunda saraka mpya ya uendeshaji pekee hakutoshi. - Uchunguzi wa joka haupatikani: Jenga kichunguzi, anzisha seva ikiwa na kihisi chake, na thibitisha kuwa wakala anatumia
DRAGON_SENSOR_URL=http://127.0.0.1:3093. - Alama ya rekodi iliyokamilika haionekani: Acha mteja asilia akiendelea kufanya kazi hadi
full-playthrough.mp4.finished.jsoniandikwe. - Njia mahususi ya jukwaa inashindwa: Rekebisha njia za Java, mazingira ya uendeshaji ya Minecraft, mteja asilia, na seva kwa sababu hati zilizotolewa zilitengenezwa kwenye macOS.
Hitimisho
Mradi wa Astra na JEV unaonyesha wakala wa Minecraft uliopangwa na unaozingatia ushahidi, badala ya roboti ya mchezo isiyo na vizuizi. Astra au Sol hupanga njia, JEV huchagua vitendo vyenye mipaka, Mineflayer huvitekeleza kupitia itifaki ya kawaida, na kihisi cha kusoma tu huwezesha pambano sahihi dhidi ya joka. Uendeshaji unaotegemeka unahitaji kushughulikia kwa uangalifu vitambulisho vya siri, dunia mpya kabisa, kurekodi kwa mteja asilia kulikosawazishwa, kuhifadhi kumbukumbu, majaribio ya kiotomatiki, na ukaguzi wa mwisho wa hali ya mchezo pamoja na ushahidi wa video.
Kwa misingi inayohusiana, tazama utangulizi rasmi wa TypeSafe, hifadhi ya Mineflayer, na nyaraka rasmi za modeli ya Astra.
