Kembali ke panduan
Pengaturan·21 September 2026·Diperbarui 24 September 2026·Baca 9 menit

Loop tak terbatas dan penggunaan token Nanobot: mendiagnosis Dream yang dibatasi

Pengaturan yang ditunjuk oleh judul bug telah dihapus, pull request yang akan memulihkannya ditutup tanpa digabungkan, dan satu-satunya batas yang tersisa berlaku untuk seluruh proses.

Terakhir ditinjau pada .

Proses nanobot yang tampak seperti loop tak berujung sebenarnya dibatasi: pada source v0.3.5 yang dirilis, setiap giliran agen dibatasi oleh agents.defaults.maxToolIterations, yang nilai defaultnya 200, dan seorang maintainer menyatakan secara resmi bahwa ini bukan loop yang benar-benar tak berujung. Masalah sebenarnya adalah penggunaan token, karena proses yang mencapai batas tersebut mencatat 201 giliran asisten dan mengirim ulang prompt yang terus membesar setiap kali. Untuk menentukan mana yang Anda alami, ajukan empat pertanyaan diagnosis; perbaikan yang memiliki bukti pendukung bukanlah nilai konfigurasi.

Mulailah dengan menghapus petunjuk yang jelas. Laporan upstream adalah issue #5781, yang judulnya menunjuk pada dream.maxIterations, dan PR #5782 berjudul "fix(dream): enforce configured iteration limit". Kunci tersebut tidak ada di v0.3.5, dan PR itu ditutup tanpa digabungkan pada 16 September 2026. Tutorial yang dibangun di atasnya tidak mengonfigurasi apa pun.

Satu pembedaan, karena kueri menampilkan pelacak yang salah. Halaman ini membahas HKUDS/nanobot, berlisensi MIT, yang dipasang sebagai paket PyPI nanobot-ai — 0.3.5, Python 3.11 atau lebih baru, diunggah pada 15 September 2026. obot-platform/nanobot adalah proyek Go yang berbeda, yang README-nya menyatakan mode pemeliharaan dengan issue dinonaktifkan; nomor issue-nya bukan bukti di sini. Dan pip install nanobot, tanpa akhiran, memasang paket navigasi robot yang tidak terkait.

Apa yang dilaporkan, dan terhadap versi mana

Dream adalah job konsolidasi memori terjadwal milik nanobot, yang dijalankan gateway sebagai job cron bernama dream. Ini bukan job embedding atau indeks vektor: Kunavo tidak menyediakan model embedding, dan Dream tidak membutuhkannya, karena memori persisten nanobot berupa file biasa di dalam workspace dan proses Dream adalah lalu lintas chat biasa.

Issue #5781 dibuat pada 15 September 2026 oleh BrianMwangi21 terhadap nanobot v0.3.0, pada Python 3.12 dengan model reasoning yang diakses melalui OpenRouter. Gejalanya: job Dream bergantian menjalankan read_file pada memory/history.jsonl dengan read_file pada satu SKILL.md, puluhan kali, sementara jejak reasoning terus menimbang ulang tempat menyimpan satu fakta kecil. Tujuh proses yang dicatat selama sekitar 26 jam berlangsung dari kira-kira 25 menit hingga kira-kira 111 menit; proses yang mendekati 200 pemanggilan tool mencapai batas global, dan checkpoint sesi menunjukkan runtime_checkpoint.iteration: 164, fase tools_completed, pada pemanggilan read_file yang sama.

Tiga batasan cakupan perlu disertakan bersama angka-angka tersebut. Itu adalah log gateway yang dilaporkan sendiri oleh satu pengguna, pada satu model, di v0.3.0 — tidak ada maintainer yang mereproduksinya, dan tidak ada yang mengujinya lagi pada v0.3.5. Issue tersebut diberi label enhancement dan priority: p2, bukan bug, dan masih terbuka. Bentuk ini juga pernah muncul sebelumnya: issue #3073, loop read_file yang hampir identik pada history.jsonl dari 12 April 2026, ditutup sebagai not planned. Semua itu tidak mendukung anggapan bahwa nanobot secara umum mahal; itu mendukung pemeriksaan apakah instalasi Anda sendiri melakukan hal ini.

Kunci yang sudah tidak digunakan, dan batas yang benar-benar aktif

Seluruh kebingungan ini adalah kesenjangan versi, dan source menyelesaikannya. Baca pada dua tag rilis tersebut pada 21 September 2026:

Kunci konfigurasiDi v0.3.0Di v0.3.5Yang harus dilakukan sekarang
dream.maxIterationsDefault 15, ditandai # Deprecated: no longer usedDihapus dari skemaJangan menuliskannya; tidak mengonfigurasi apa pun
dream.maxBatchSizeDefault 20, komentar penghentian yang samaDihapusJangan menuliskannya
dream.annotateLineAgesDefault true, komentar penghentian yang samaDihapusJangan menuliskannya
dream.enabledNilai bawaan trueNilai bawaan trueDapat diedit di pengaturan runtime WebUI
dream.intervalHNilai bawaan 2Nilai bawaan 2Edit config.json; bukan leaf WebUI
dream.cronNull; override lamaNull; override lamaSaat ditetapkan, lebih diprioritaskan daripada intervalH
dream.modelOverrideDideklarasikan, diberi komentar pending implementationDiimplementasikanHanya nama preset, tidak pernah raw model id
agents.defaults.maxToolIterations200200Satu-satunya batas, dan berlaku di seluruh proses

Dua hal membuat tabel itu mudah salah dipahami. Angka 200 benar dalam dua hal — angka tersebut adalah nilai dalam konfigurasi pelapor dan default yang dirilis pada nanobot/config/schema.py baris 129, identik pada tag v0.3.5 dan di main, sehingga pembaca yang tidak pernah menetapkannya tetap mendapatkan 200. Dan angka itu tidak terdokumentasi: pengambilan referensi konfigurasi nanobot 0.3.5 milik nanobot sendiri pada 21 September 2026 mengembalikan HTML berukuran 488.608 byte dengan nol kemunculan maxToolIterations, dan docs/configuration.md repositori pada tag tersebut juga tidak memuatnya. Angka itu dapat dibuktikan dari source dan komentar maintainer, bukan dari halaman dokumentasi — jadi perlakukan tutorial apa pun yang mengutip angka berbeda dengan curiga.

modelOverride adalah satu-satunya solusi yang memiliki batasan versi. Di v0.3.0, field tersebut ada dengan komentar pending implementation dan tanpa kode yang menyelesaikannya sama sekali; PR #5107, yang digabungkan pada 27 Juli 2026, mengimplementasikannya untuk v0.3.5. Halaman memori resmi 0.3.5 menyatakan bahwa field tersebut memilih entri bernama dari model_presets untuk Dream, hanya menerima nama preset, dan tidak mendukung pengenal model mentah. Halaman itu mendokumentasikan tiga kunci Dream dan tidak menyebut batas iterasi di mana pun. Berikut permukaan lengkap saat ini, dengan blok providers yang menjadi acuannya tercakup pada halaman penyiapan nanobot:

~/.nanobot/config.json — seluruh permukaan Dream v0.3.5
{
  "modelPresets": {
    "dream-cheap": {
      "provider": "kunavo",
      "model": "claude-haiku-4-5",
      "maxTokens": 8192
    }
  },
  "agents": {
    "defaults": {
      "maxToolIterations": 200,
      "dream": {
        "enabled": true,
        "intervalH": 2,
        "modelOverride": "dream-cheap"
      }
    }
  }
}

Perhatikan apa yang tidak ada dalam file tersebut: cara apa pun untuk membatasi Dream saja. AgentLoop dibuat sekali dengan max_iterations dari default proses, dan baik jalur cron Dream maupun jalur manual /dream memanggil process_direct(...) tanpa argumen iterasi, begitu pula subagen. Menurunkan batas tersebut akan menurunkannya untuk chat, Dream, heartbeat, dan subagen secara bersamaan.

Diagnosis dalam urutan ini

Jawab empat pertanyaan ini sebelum mengubah apa pun, karena tiga di antaranya gratis dan pertanyaan keempat menunjukkan apakah tiga pertanyaan pertama relevan. String log adalah teks literal di v0.3.5; kurung kurawal adalah nilai runtime.

PertanyaanTempat melihatArti jawaban
1. Apakah proses berhenti sendiri, atau mencapai batas?Log gateway: Max iterations (200) reached, dari agent/loop.pyAda berarti proses dibatasi, dengan kira-kira 201 giliran asisten. Tidak ada berarti proses berakhir sebelum mencapai batas — model berkonvergensi, atau proses gagal sepenuhnya dan mencatat Dream cron job failed
2. Apakah kursor Dream maju?Tiga baris berbeda di cli/gateway_runtime.py: Dream cron job completed, cursor advanced to …; … completed with no memory changes; cursor advanced to …; Dream cron job did not complete (…); cursor remains at …Baris ketiga adalah fail-safe v0.3.5 yang bekerja: proses yang tidak selesai membiarkan batch untuk dicoba lagi. Ini juga berarti batch yang sama kembali pada tick berikutnya
3. Apakah tool yang sama dengan argumen yang sama berulang?Baris Tool call: di antara kedua penanda tersebutTool dan argumen yang identik berulang-ulang berarti model tidak berkonvergensi, yang disimpulkan upstream. Satu-satunya penjaga pengulangan di v0.3.5 mencocokkan web_fetch dan web_search; read_file yang berulang tidak tertangkap
4. Berapa biayanya?llm_usage.sqlite3 di direktori konfigurasi, diagregasikan berdasarkan tanggal dan sumber; di sisi gateway, per kunci dan per hari dalam usageDream diberi tag dream. Heartbeat diberi tag cron, jadi pemfilteran untuk "heartbeat" tidak menemukan apa pun

Anda tidak perlu menunggu dua jam hingga tick cron untuk mereproduksinya. Perintah /dream menjalankan job yang sama sesuai permintaan dan melaporkan pembedaan yang sama di chat: Dream completed in Ns. atau Dream completed in Ns; no memory changes. saat berhasil, terhadap Dream did not complete after Ns (reason); memory cursor was not advanced. ketika tidak selesai. Satu perubahan v0.3.5 lain penting saat Anda mencari bukti: file JSONL sesi dipindahkan ke dalam pohon sessions/<workspace-id>/ milik direktori konfigurasi, jadi path v0.3.0 yang dikutip di utas issue bukan tempat checkpoint Anda berada.

Lima tuas, dan apa yang sebenarnya didukung masing-masing

TuasBukti pendukungUnggul ketikaKonsekuensinya bagi Anda
Upgrade v0.3.0 ke v0.3.5Commit 4e2640f, pada v0.3.5 dan bukan v0.3.0, membuat kursor maju hanya ketika alasan penghentian adalah completedGejala Anda adalah memori yang terlewati, bukan pengeluaranIni tidak memperpendek loop yang tidak berkonvergensi, dan belum ada yang menguji ulang #5781 pada 0.3.5
Ubah model untuk DreamSatu-satunya solusi dengan perbandingan sebelum dan sesudah: dalam audit pelapor, batch yang dihabiskan satu model selama 91 menit tanpa selesai diselesaikan oleh proses berikutnya pada model berbeda dalam sekitar satu menit dengan 6 pemanggilan tool, prompt sama, riwayat sama, tool samaKualitas chat harus tetap menggunakan model mahal AndaMemerlukan v0.3.5 dan preset yang ditentukan; pada v0.3.0 field tersebut tidak menghasilkan apa pun
Turunkan maxToolIterationsDapat diedit di pengaturan runtime WebUI, minimum 1, per webui/settings_runtime.pyAnda menginginkan batas terburuk saat mendiagnosisSatu kenop untuk chat, Dream, heartbeat, dan subagen; dan proses yang dibatasi tidak memajukan kursor, sehingga batch yang sama dicoba lagi pada tick berikutnya
Perlambat atau nonaktifkan DreamintervalH, atau dream.enabled di WebUI; PR #5407 yang digabungkan menghentikan job persisten saat dinonaktifkanKonsolidasi tidak sebanding dengan biayanya untuk beban kerja AndaAnda kehilangan konsolidasi memori, yaitu fitur tersebut
Alihkan agar pengiriman ulang lebih murahDi v0.3.5 tepat dua spesifikasi provider menetapkan supports_prompt_caching: anthropic dan openrouter; field tersebut default-nya falseAnda menerima bahwa proses panjang akan terjadi dan ingin biayanya lebih rendahBergantung pada jalur protokol yang Anda konfigurasi, dan pada verifikasi penggunaan yang dikembalikan oleh Anda sendiri

Dua model id pelapor adalah deepseek/deepseek-v4-flash-0731 dan openai/gpt-5.6-luna sebagaimana ia menuliskannya melalui OpenRouter; id dan harganya tidak diperiksa di sini, jadi baca perbandingan ini sebagai bukti bahwa model menentukan konvergensi, bukan sebagai rekomendasi salah satunya. Upstream mencapai kesimpulan yang sama: saat mengumumkan penutupan PR #5782 pada issue #5781, chengyongru menulis bahwa batas iterasi Dream yang tetap tidak mengatasi masalah konvergensi yang bergantung pada model dan dapat menyebabkan proses yang sebenarnya layak dicoba ulang berulang kali.

Biaya proses yang dibatasi: perhitungan ilustratif

Ini adalah perhitungan token ilustratif, bukan biaya tugas terukur dan bukan batas tagihan. nanobot tidak menerbitkan angka token per proses untuk Dream, jadi semua input di sini adalah asumsi yang harus Anda ganti dengan pengukuran sendiri. Asumsikan satu proses yang mencapai batas pada 201 giliran asisten — jumlah dalam audit pelapor — yang masing-masing mengirim ulang prompt dengan ukuran tetap 25.000 token, yaitu karakterisasi workspace miliknya sendiri, bukan angka yang diterbitkan. Itu berarti 5,03 juta token input. Token output dikecualikan, dan prompt nyata membesar setiap kali ada hasil tool, sehingga ini meremehkan proses nyata dalam dua arah sekaligus. Tarifnya adalah harga katalog Kunavo yang berlaku.

ModelInput per 1 jutaPembacaan cache per 1 jutaSatu proses dibatasi, tanpa cacheProses yang sama, pengiriman ulang dibaca dari cache
Claude Haiku 4.5$0,70$0,07$3,52$0,37
GPT-5.6 Terra$0,70$0,07$3,52$0,37
Claude Sonnet 5$1,40$0,14$7,04$0,74

Kolom terakhir mengasumsikan kondisi terbaik yang tidak diuji di sini: pengiriman pertama pada tarif input biasa dan seluruh 200 pengiriman ulang dilayani sebagai pembacaan cache. Penulisan cache ditagih dengan tarifnya sendiri, yang pada beberapa model lebih tinggi daripada tarif input biasa; entri cache kedaluwarsa; dan prompt yang membesar menulis ulang, bukan membaca ulang — jadi perlakukan selisih antara dua kolom terakhir sebagai ukuran potensi penghematan, bukan kutipan harga. Intinya hanya bahwa pada proses panjang yang berulang, pengiriman ulang, bukan modelnya, adalah sumber pengeluaran.

Apakah penanda cache benar-benar mencapai kabel ditentukan oleh konfigurasi nanobot Anda, dan hal itu terlihat pada source yang dirilis. Kunci provider buatan di bawah providers diperlakukan sebagai provider yang kompatibel dengan OpenAI dan membiarkan supports_prompt_caching pada default false, sehingga client nanobot tidak mengirim penanda cache_control pada jalur tersebut, bahkan untuk model id berbentuk Claude. Mempertahankan preset pada provider bawaan anthropic dan melakukan override pada providers.anthropic.apiBase membuatnya tetap aktif. Ini adalah pernyataan tentang apa yang dikirim client nanobot, bukan tentang tindakan endpoint di sisinya sendiri, dan Kunavo belum menguji nanobot saat runtime. Baca usage yang dikembalikan dari satu pemanggilan nyata sebelum menganggarkan job berulang sebagai job bercache — dokumen caching menunjukkan bentuk cache yang berfungsi dan referensi base URL memberikan kedua konvensi endpoint.

Nominal katalog Kunavo adalah batas minimum penagihan, bukan batas maksimum: ketika upstream melaporkan biayanya, tagihan adalah nilai yang lebih besar antara biaya katalog dan biaya upstream dikalikan markup yang berlaku. Top-up minimum adalah $10 dalam kredit prabayar — minimum pendanaan, bukan biaya tugas atau langganan. Lihat detail penagihan, dan optimisasi biaya untuk metode pengukuran yang menggantikan asumsi di atas.

Verifikasi perbaikan pada satu proses

Ubah satu hal, lalu jalankan /dream sekali alih-alih menunggu jadwal, dan periksa tiga penanda secara berurutan: tidak ada peringatan Max iterations (200) reached, baris cursor advanced to … alih-alih cursor remains at …, dan jumlah pemanggilan tool yang masuk akal di antaranya. Kemudian baca biaya yang dicatat akun Anda sendiri untuk rentang waktu tersebut, per kunci dan per hari, dalam usage; penyimpanan nanobot menghitung token, bukan uang. Jika Anda baru pertama kali mengonfigurasi endpoint, quickstart dan halaman penyiapan nanobot mencakup kedua jalur protokol, dan membuat akun Kunavo adalah langkah sebelum mengisi dana pada kunci. Membandingkan durasi? nanobot vs OpenClaw menempatkan kedua cadence latar belakang berdampingan, dan direktori API agen mengindeks client berdasarkan protokol wire.

Pertanyaan umum

Apakah nanobot benar-benar terjebak dalam loop tak berhingga?

Tidak, dan seorang pemelihara menyatakannya secara terbuka. Saat mengomentari issue #5324 pada 10 Agustus 2026, chengyongru menulis bahwa runner agen nanobot dibatasi oleh agents.defaults.maxToolIterations, dengan nilai default 200, jadi ini bukan loop yang benar-benar tak berhingga — sambil menambahkan bahwa loop panjang yang dibatasi tetap dapat menyebabkan penggunaan token kumulatif yang sangat tinggi, sehingga dampak praktisnya nyata. Sumber v0.3.5 yang dikirimkan juga mengonfirmasinya: max_tool_iterations default-nya 200 dalam nanobot/config/schema.py, dan agent/loop.py mencatat peringatan "Max iterations (200) reached" saat suatu proses mencapainya. Yang disebut orang sebagai loop tak berhingga adalah proses yang mencapai batas tersebut, yang dalam log salah satu pelapor berarti 201 giliran asisten membaca ulang dua file yang sama.

Mengapa menetapkan dream.maxIterations tidak menghasilkan apa-apa?

Karena bidang tersebut sudah tidak ada. Dalam nanobot v0.3.0, konfigurasi Dream memuat max_iterations, max_batch_size, dan annotate_line_ages, masing-masing ditandai dalam sumber dengan komentar "Deprecated: no longer used"; pada tag v0.3.5 ketiganya telah dihapus, dan kelas tersebut hanya mendefinisikan enabled, intervalH, cron, dan modelOverride. Pemelihara chengyongru menyatakan pada 15 September 2026 bahwa dream.maxIterations sengaja ditandai deprecated dan tidak digunakan ketika Dream dipindahkan ke loop agen normal, dan sejak itu telah dihapus dari main. Pull request yang akan memulihkannya, #5782, ditutup tanpa merge pada hari berikutnya. Menulis kunci tersebut ke konfigurasi v0.3.5 berarti menulis kunci yang tidak didefinisikan oleh skema.

Bagaimana cara membatasi token hanya untuk tugas Dream nanobot?

Tidak sebagai anggaran kumulatif, dalam nanobot v0.3.5. Tidak ada bagian dalam kode yang dikirimkan yang menjumlahkan token suatu proses dan menghentikannya saat angka tertentu tercapai, dan agents.defaults.maxToolIterations adalah satu-satunya batas iterasi — batas ini berlaku di seluruh proses, untuk giliran chat biasa, Dream, heartbeat, dan subagen secara bersamaan. Dua hal yang dapat Anda cakup hanya untuk Dream melalui agents.defaults.dream.modelOverride: model dan batas per panggilan milik preset tersebut, karena ModelPresetConfig membawa maxTokens dan contextWindowTokens, dan dream_runtime() menyelesaikan preset bernama tersebut menjadi runtime tempat proses Dream dijalankan. Batas-batas itu berlaku untuk setiap panggilan individual, bukan total proses, jadi 200 panggilan dengan maxTokens rendah tetap berarti 200 panggilan. Jadwal juga dapat dicakup melalui intervalH. Anggaran kumulatif adalah sesuatu yang untuk saat ini belum ditambahkan oleh upstream: pada issue #5781 tanggal 16 September 2026, pada hari ia menutup PR #5782, chengyongru menulis bahwa anggaran token atau sumber daya untuk tugas latar belakang memerlukan rancangan yang lebih terperinci mengenai unit dan cakupan anggaran, semantik penghentian, perilaku percobaan ulang dan kursor, observabilitas, serta interaksi dengan model yang berbeda, dan bahwa untuk saat ini mereka tidak berencana melanjutkannya.

Bagaimana cara menghentikan proses Dream nanobot yang sudah berjalan?

Bukan dengan /stop, berdasarkan pembacaan source v0.3.5. /stop didokumentasikan untuk membatalkan giliran agen aktif pada chat ini dan diimplementasikan sebagai pembatalan atas tugas yang terdaftar pada kunci sesi chat tersebut, sedangkan proses Dream dibuat dengan kunci ephemeral tersendiri dalam format dream:YYYYMMDD-HHMMSS. Ini adalah pembacaan jalur kode, bukan hasil pengujian — /stop tidak dijalankan terhadap proses Dream aktif di sini. Tuas yang didokumentasikan adalah /restart, menonaktifkan agents.defaults.dream.enabled, atau menghentikan proses gateway. PR #5407 yang digabungkan pada v0.3.5 membuat penonaktifan benar-benar menghentikan job sistem yang dipersistenkan, bukan membiarkannya tetap terjadwal.

Bagaimana cara melihat jumlah token yang digunakan job latar belakang nanobot?

Baca penyimpanan penggunaan lokal, bukan perintah garis miring. nanobot v0.3.5 mencatat setiap pemanggilan model dengan field source bertipe user, api, cron, dream, atau system, menuliskannya ke llm_usage.sqlite3 di direktori konfigurasi — ~/.nanobot secara default — dengan kolom token input, output, cache-read, dan cache-write, lalu mengagregasikannya berdasarkan tanggal dan sumber. Dua jebakan. Tidak ada perintah /insights atau /cost: kedua pull request yang mengusulkan salah satunya, #3735 dan #3921, ditutup tanpa digabungkan, dan daftar bawaan v0.3.5 adalah /new, /compact, /stop, /restart, /status, /model, /history, /goal, /trigger, /dream, /dream-log, /dream-restore, /dream-prompt, /evaluator-prompt, /skill, /help, dan /pairing. Labelnya juga asimetris: penggunaan Dream diberi tag dream, tetapi penggunaan heartbeat diberi tag cron karena kunci sesi heartbeat secara harfiah adalah "heartbeat". Itu adalah jumlah token, bukan uang, jadi cocokkan dengan ledger milik provider Anda.

Apakah upgrade ke nanobot v0.3.5 memperbaiki loop tersebut?

Tidak ada yang mengatakan demikian, dan halaman ini juga tidak akan mengatakannya. Issue #5781 dibuat terhadap v0.3.0 dan masih terbuka, diberi label enhancement dan priority p2; pelapor tidak pernah mengujinya lagi setelah upgrade dan tidak ada maintainer yang mereproduksinya. Yang diperbaiki v0.3.5 lebih sempit namun tetap layak dimiliki: commit 4e2640f mencegah proses yang tidak selesai memajukan kursor Dream dan melewati riwayat secara diam-diam, PR #5442 yang digabungkan membuat proses yang tidak selesai melaporkan alasan kegagalannya, dan PR #5325 yang digabungkan membuat edit_file mengembalikan "Error: new_text must be different from old_text." alih-alih melaporkan keberhasilan pada pengeditan tanpa perubahan. Perbaikan terakhir menangani loop baca-lalu-edit pada issue #5324, bukan loop hanya-baca pada #5781. Tidak ada pula penjaga umum untuk pemanggilan tool identik berulang yang disertakan dalam v0.3.5. Satu-satunya penjaga pengulangan pada source yang dirilis, repeated_external_lookup_error di nanobot/utils/runtime.py, memblokir web_fetch atau web_search identik setelah dua percobaan dan tidak mencocokkan nama tool lain, sehingga read_file yang berulang terus berjalan hingga batas iterasi. Lima pull request yang mengusulkan penjaga umum — #3077, #4522, #5344, #3701, dan #4154 — semuanya belum digabungkan.

Diperiksa pada 21 September 2026: API GitHub untuk HKUDS/nanobot, issue #5781, #5324, dan #3073, serta pull request #5782, #5107, #5325, #5442, #5407, #3077, #4522, #5344, #3701, #4154, #3735, #3921, dan #4622; catatan PyPI untuk nanobot-ai 0.3.5; dokumentasi memori dan konfigurasi nanobot 0.3.5; serta source yang dirilis pada tag v0.3.5 untuk setiap default, string log, dan jalur kode yang dikutip di atas, dibandingkan dengan v0.3.0 jika keduanya berbeda. Kunavo belum memasang atau menjalankan nanobot, tidak ada perilaku di sini yang diuji oleh Kunavo, dan loop pada issue #5781 belum diuji ulang pada v0.3.5 oleh siapa pun. Tarif token berasal dari katalog aktif dan setiap angka dolar adalah perhitungan ilustratif berdasarkan asumsi yang dinyatakan.