A2A Dua Mesin dalam Praktik: Membuat Hermes di Dua Komputer Saling Berbagi Tugas
Hermes platform pesan bagian ke-40: Langkah-langkah deployment lintas mesin A2A dan pelajaran nyata dari kesalahan yang dialami.
Hermes di satu komputer kewalahan, ingin minta bantuan Hermes di komputer lain — A2A memang diciptakan untuk ini. Tapi apa saja kendala saat deploy? Pengguna nyata sudah mencobanya untukmu.
Kapan Kamu Benar-Benar Butuh Dua Mesin
Pertama, pikirkan baik-baik: apakah kamu benar-benar butuh dua komputer, atau hanya ingin dua agen saling bekerja sama?
Kalau dua agen tinggal di mesin yang sama, pakai delegasi atau papan tugas saja sudah cukup — seperti di kantor yang sama, teriak ke meja sebelah saja sudah beres, nggak perlu telepon. A2A diciptakan untuk “lintas mesin/lintas proses/lintas framework”: komputer desktop dan server kamu masing-masing menjalankan Hermes, dengan memori, tools, dan kredensial login sendiri-sendiri — baru di sinilah kamu butuh jembatan bernama A2A.
Langkah-Langkah Memulai
Langkah 1: Aktifkan platform A2A di kedua mesin. Saat install Hermes pilih A2A, atau ubah file konfigurasi dengan set gateway.platforms.a2a.enabled menjadi true, port default 9900. Langkah ini seperti memasang pintu besar berpengaman di setiap komputer.
Langkah 2: Konfigurasi token (kunci akses pintu). Di sisi server set A2A_PEER_TOKENS atau A2A_BEARER_TOKEN. Kalau cuma tes di mesin lokal, token boleh tidak diset, tapi pintu hanya terbuka untuk 127.0.0.1 — seperti kartu akses yang hanya diberikan ke penghuni gedung itu.
Langkah 3: Ekspos alamat. Untuk lintas mesin, wajib set A2A_HOST, misalnya 0.0.0.0 atau IP LAN. Langkah ini memindahkan pintu dari “lorong internal” ke “posisi menghadap jalan”, supaya komputer lain bisa menemukanmu.
Langkah 4: Pasangkan peer. Di sisi klien konfigurasi a2a_agents, atau langsung pakai a2a_discover("http://alamat-server:9900") untuk melihat Agent Card lawan — ini seperti saling memberi kartu nama dulu, memastikan siapa dia dan punya skill apa.
Langkah 5: Verifikasi. Aktifkan toolset a2a, pakai a2a_call untuk kirim tugas sederhana sebagai uji coba. Perhatikan timeout: klien default 330 detik, jendela respons server 300 detik — untuk tugas panjang harus diperbesar, kalau tidak kerjaan setengah jalan sudah dinyatakan timeout. Setelah selesai, cek log audit di ~/.hermes/a2a_audit.jsonl.
Studi Kasus Nyata 1: Seperti Apa Deploy yang Sukses
Dokumentasi resmi menggambarkan skenario ideal: Hermes desktop kamu menyerahkan tugas ke Hermes di server — server punya daya komputasi lebih kuat, jaringan lebih stabil, database lebih lengkap. Sebaliknya, Hermes di server juga bisa menyerahkan tugas seperti “cek file lokal” ke sisi desktop. Keduanya punya memori dan tools masing-masing, kerja sendiri-sendiri, saling menemukan skill lewat Agent Card, percakapan dikunci berdasarkan contextId, dan mendukung multi-ronde.
Ini seperti dua departemen dalam satu perusahaan: departemen marketing (sisi desktop) butuh laporan analisis data, kirim email ke departemen data (sisi server), departemen data kerjakan lalu kirim kembali — dua-duanya simpan arsip sendiri-sendiri, tidak saling ganggu.
Studi Kasus Nyata 2: Deploy yang Gagal
Ada kasus nyata dari komunitas (#82910): pengguna deploy dua node di dua macOS — satu gateway yang menghadap pengguna + satu worker. Kedengarannya mirip dengan kasus sukses di atas, tapi hasilnya gagal total, dan akhirnya tim menonaktifkan deploy tersebut.
Masalahnya ada di peran “koordinator” dan “worker” yang tidak dipisahkan dengan jelas. Agen induk (koordinator) menumpuk terlalu banyak hal ke sesinya sendiri: setiap langkah worker, setiap hasil antara, setiap proses berpikir semuanya mengalir balik ke sesi induk, menyebabkan pembengkakan konteks — agen induk tenggelam dalam lautan informasi, makin lama makin lamban. Transkrip lintas-agen memperlambat performa keseluruhan, dan tugas kompleks memicu recovery loop yang makin dalam.
Pelajaran yang jelas: kolaborasi lintas mesin dengan A2A harus mendesain batas tanggung jawab dulu — siapa yang koordinasi, siapa yang kerja, memori siapa jadi milik siapa. Jangan tumpuk semuanya ke sesi induk, worker harus punya “buku catatan kecil” sendiri.
Daftar Hindari Jebakan Saat Deploy
Keruntuhan identitas di reverse proxy (#80534/#80779): Kalau kamu pakai nginx, K8s Ingress, atau CDN sebagai reverse proxy, semua peer berbagi bearer token yang sama, dan identitas semuanya runtuh menjadi alamat proxy. Solusinya adalah proxy harus meneruskan X-Forwarded-For, dan identitas asli diturunkan dari proxy tepercaya. Ini seperti resepsionis gedung yang menerima paket titipan — harus ditulis jelas penerima aslinya di paket, kalau tidak semua menumpuk di resepsionis.
Routing multi-profil ditolak (#80884/#80956): Kalau kamu pakai multiplex_profiles untuk menjalankan beberapa profil, pesan A2A masuk yang dirutekan ke profil sekunder bisa ditolak oleh lapisan otorisasi gateway. Perbaikannya adalah menangkap konteks keamanan adaptor immutable saat startup, mempertahankan kebijakan autentikasi, trust, binding, dan Agent Card setiap profil. Setiap pintu harus punya aturan akses sendiri, tidak bisa pakai satu aturan untuk semua.
Pengaturan timeout: Default 330 detik di klien vs 300 detik di server, untuk tugas panjang ingat untuk menyesuaikan. Kalau tidak, seperti telepon interlokal — belum selesai bicara sudah diputus.
Mode worker terbatas (#82503): Ini resep resmi untuk mengatasi pembengkakan konteks. Route A2A yang di-serve non-root bisa menjalankan subproses terkonfigurasi atau worker RPC berversi, dengan output terbatas, pemanenan pohon proses, pembatalan, dan terminasi exactly-once — worker selesai kerja langsung beres, tidak menuangkan seluruh proses ke sesi induk.
Artinya Buat Pengguna
Deploy A2A dua mesin bukan sekadar “menyambungkan dua komputer”. Ini seperti membuka cabang toko: etalase (Agent Card), akses pintu (token), pembagian kerja (siapa koordinasi siapa kerja), gudang (memori masing-masing) — semuanya harus dipikirkan matang. Deploy yang sukses membuat dua mesin saling menunjukkan keunggulan, deploy yang gagal membuat koordinator tenggelam dalam informasi.
Ingat tiga hal: pertama tentukan batas tanggung jawab, baru pikirkan detail teknis; reverse proxy harus menangani masalah identitas; tugas panjang atur timeout, tugas kompleks pakai bounded worker. Kalau tiga poin ini dilakukan, Hermes di dua komputer benar-benar bisa jadi rekan kerja yang baik — bukan teman yang saling menjatuhkan.
📖 Dokumentasi resmi
この記事は Hermes Agent のDokumentasi resmiに基づいています:Dokumentasi resmi › user-guide/messaging/a2a