2026.07.15 (Rab)
2026.07.17 (Jum) diperbarui

✨ Ringkasan GPT-5.6 Sol

Catatan ketika saya meninggalkan rencana dasar Linux VM dengan Container per pengguna, lalu mendefinisikan ulang unit eksekusi sebagai pengguna macOS dan OpenClaw native untuk setiap karyawan.

Saya membalik struktur dasar hanya dalam sehari

Kemarin saya benar-benar menghubungkan coordinator dan beberapa worker. Saya bereksperimen membagi hasil yang dibuat beberapa AI melalui Worktree, Branch, dan commit, lalu menyatukannya kembali.

Bersamaan dengan pekerjaan itu, saya juga sedang membangun lingkungan eksekusi AI Orchestration. Hingga tanggal 14, struktur dasarnya seperti berikut.

Mac mini
→ 1 Colima Linux VM
→ OpenClaw Cell Container per karyawan

Membuat Image bersama lalu memisahkan Network dan Volume untuk setiap karyawan tampak memudahkan deployment dan reproduksi. Saya bahkan sudah memeriksa Image resmi OpenClaw Linux arm64 serta membuat kontrak untuk child Image dan Cell Network. Arah pemisahan lingkungan setiap karyawan ke dalam Container sudah berkembang cukup konkret.

Namun pada tanggal 15, saya mengeluarkan struktur ini dari pilihan dasar.

Yang ingin saya buat bukan layanan Container

Ketika tujuan AI Orchestration saya tulis ulang, saya melihat bagian yang tidak cocok.

Yang ingin saya buat adalah lingkungan tempat karyawan cukup menyampaikan tujuan lewat WebChat, lalu AI pribadi membagi pekerjaan yang diperlukan, memilih alat, dan menuntaskannya. Bukan hanya membuat kode dan dokumen, tetapi juga mengoperasikan aplikasi Mac, menjalankan Xcode dan Simulator, lalu meninggalkan hasil nyata dengan Workspace dan Git identity milik pengguna.

Begitu fungsi macOS dipanggil secara paksa dari dalam Linux Container, strukturnya menjadi aneh. Saya harus menaruh runner terpisah di luar Container, menyambungkan kembali hak akses dan state, lalu meneruskan Keychain dan GUI Session pengguna. Lapisan yang ditambahkan demi isolasi justru memaksa fungsi yang benar-benar dibutuhkan terus memakai jalur memutar.

OpenClaw juga bukan sekadar stateless worker. Ia lebih dekat dengan lingkungan pribadi yang membawa Gateway, Profile, Session, Memory, OAuth, dan state eksekusi milik satu pengguna. Jika demikian, mungkin definisi Cell sebagai satu Container memang sudah salah sejak awal.

Pada tanggal 15, saya mendefinisikan ulang arti Cell.

1 karyawan
= 1 pengguna macOS
= 1 OpenClaw Gateway independen
= 1 set UID·HOME·Keychain
= 1 set ChatGPT OAuth·CODEX_HOME
= 1 set Workspace·Git identity·Session·Memory

Strukturnya membuat pengguna macOS terpisah untuk setiap karyawan di satu Mac mini, lalu menjalankan complete OpenClaw Gateway secara native di dalam masing-masing pengguna.

Container tetap menjadi sandbox opsional

Eksperimen Container tetap menghasilkan bukti yang jelas. Image resmi, eksekusi non-root, read-only root, pemisahan Network, batas Volume dan credential, Image provenance, serta restart masih bernilai.

Linux VM dan Container diturunkan dari lingkungan Pilot dasar menjadi kandidat sandbox yang hanya dipilih untuk pekerjaan tertentu yang benar-benar membutuhkan isolasi. macOS native menjadi default, sedangkan Container menjadi alat yang digunakan setelah kebutuhannya terbukti.

Memisahkan pengguna macOS saja juga belum menyelesaikan isolasi

Struktur native terlihat sederhana, tetapi hal-hal yang harus diverifikasi justru bertambah.

  • Apakah karyawan yang login sama dengan pengguna macOS yang benar-benar menjalankan proses?
  • Apakah Gateway, OAuth, Workspace, dan identitas penulis Git pengguna itu terikat dengan tepat?
  • Ketika autentikasi satu pengguna gagal, apakah sistem tidak beralih ke autentikasi pengguna lain?
  • Apakah HOME, Keychain, Port, dan Workspace pengguna lain benar-benar tidak dapat diakses?
  • Setelah fast user switching dan reboot, apakah setiap Gateway pulih dengan state miliknya sendiri?

Karena itu saya tidak berhenti setelah mengubah topology di dokumen. Saya membuat ulang kontrak dan Acceptance untuk Cell macOS native, lalu membiarkan item yang belum memiliki bukti Runtime nyata sebagai NOT_READY.

Lolosnya test fixture juga tidak dapat disebut sebagai bukti bahwa isolasi dua pengguna nyata sudah selesai. Saya memisahkan hash file input eksternal dari bukti eksekusi probe yang sebenarnya, lalu terus menutup celah agar pemeriksaan tidak dapat dilewati dengan nilai yang menyamar sebagai pengguna lain, symlink, atau alias path macOS yang berbeda hanya karena kapitalisasi dan Unicode.

Setelah mengganti topology pada pukul 12 siang, commit sepanjang sore terus dibuat untuk menutup “celah yang memungkinkan kami berbohong bahwa pemeriksaan sudah lolos.” Menetapkan syarat lulus yang jujur untuk struktur baru membutuhkan lebih banyak kode daripada mengubah strukturnya sendiri.

Workflow bersama dan state pribadi juga dipisahkan

Walaupun setiap karyawan mendapat lingkungan yang sepenuhnya terpisah, Workflow bersama yang dikelola perusahaan harus didistribusikan dalam versi yang sama. Sebaliknya, pembaruan Workflow bersama tidak boleh ikut mengubah OAuth, Memory, atau Workspace pribadi.

Pada sore tanggal 15, saya mengunci Workflow Release dengan version dan content hash, lalu membuat kontrak admission agar hanya release yang telah diverifikasi dapat dipilih. Pilihan release baru harus berubah secara atomik. Pekerjaan yang sedang berjalan harus tetap terikat pada release yang dipilih saat mulai, dan release yang masih digunakan tidak boleh hilang saat rollback maupun proses pembersihan.

Sekali lagi, membuat Source dan pengujian tidak saya catat sebagai bukti bahwa release itu sudah dipasang di lokasi instalasi bersama pada Mac nyata. Runtime yang belum dipasang tetap berstatus NOT_READY sampai akhir.

Lingkungan eksekusi default dan verifikasi yang tersisa

  • Cell dasar: pengguna macOS native dan OpenClaw Gateway independen untuk setiap karyawan
  • Isolasi opsional: Linux Container sandbox hanya untuk pekerjaan yang terbukti membutuhkannya
  • State bersama: Workflow release yang dikunci dengan version dan content hash
  • State pribadi: OAuth, Memory, Workspace, Git identity, dan Session
  • Isolasi Runtime multi-pengguna yang nyata: NOT_READY

Yang ditetapkan pada tanggal 15 adalah topologi. Isolasi nyata antara dua pengguna dan instalasi Workflow bersama masih harus dikonfirmasi kemudian dengan bukti Runtime.

Tinggalkan komentar