Masalah pertama dalam menjalankan banyak agen adalah mereka lupa. Setiap sesi dimulai dengan kosong. Konteks dari satu alat tidak mempengaruhi alat yang lain. Keputusan yang diambil kemarin tidak terlihat hari ini. Anda akhirnya menjelaskan kembali hal yang sama, atau lebih buruk lagi, agen saling bertentangan karena tidak ada satu pun yang memiliki akses terhadap apa yang ditulis satu sama lain.

Itu adalah masalah penyimpanan, dan itu harus diselesaikan terlebih dahulu. Anda memerlukan lapisan status di mana setiap agen dapat menulis pengamatan dan setiap agen dapat menanyakan konteksnya. Fakta harus tetap ada di seluruh sesi, alat, dan mesin. Pengambilan harus berfungsi terlepas dari agen mana yang menulis data atau kapan. [Neotoma](/posts/truth-layer-agent-memory) hadir untuk mengatasi masalah ini: substrat skema-agnostik yang menyimpan, menyajikan, dan memungkinkan Anda menanyakan kebenaran di seluruh tumpukan agen Anda.

Namun begitu penyimpanan berfungsi, Anda menemui hambatan kedua. Ketika salah satu agen menulis observasi baru, agen lain tidak mengetahuinya sampai mereka memeriksanya. "Periksa" berarti polling: melakukan kueri ulang pada interval, pada awal sesi, atau pada pemicu manual. Sebagian besar jajak pendapat tersebut tidak menghasilkan apa-apa. Yang penting datang terlambat beberapa menit atau jam. Kesenjangan antara "perubahan keadaan" dan "pemberitahuan agen" adalah waktu mati, dan hal ini menciptakan batas atas apa yang dapat dilakukan agen bersama-sama.

Ini bukan masalah pengambilan. Datanya ada di sana. Ini adalah masalah koordinasi pada lapisan infrastruktur, dan setiap sistem memori homebrew yang pernah saya lihat menanganinya dengan cara yang sama: ternyata tidak.

## Plafon koordinasi

Koordinasi berbasis jajak pendapat mempunyai tiga biaya yang harus ditanggung bersama dengan skala.

**Latensi.** Interval antara perubahan status dan agen menyadarinya dibatasi oleh frekuensi jajak pendapat. Jika seorang agen memeriksa setiap lima menit, observasi kritis mungkin tidak diperhatikan selama empat menit lima puluh sembilan detik. Untuk agen yang berkoordinasi dalam keadaan sensitif terhadap waktu, seperti laporan bug yang baru saja dikirimkan atau transaksi keuangan yang memerlukan rekonsiliasi, latensi tersebut adalah hambatannya.

**Komputasi yang sia-sia.** Sebagian besar jajak pendapat tidak menghasilkan perubahan apa pun. Seorang agen yang memeriksa setiap tiga puluh detik sepanjang hari kerja mengajukan hampir seribu pertanyaan, yang sebagian besar mengonfirmasi bahwa tidak terjadi apa-apa. Hal ini dapat ditoleransi untuk satu agen. Di sepuluh agen, itu adalah pajak. Pada skala seratus, overhead infrastrukturlah yang berskala linear tanpa nilai.

**Plafon koordinasi.** Kombinasi latensi dan pemborosan menciptakan batasan praktis pada perilaku agen kolaboratif. Pola yang alami dengan kesadaran yang didorong oleh peristiwa, seperti "Agen B bereaksi terhadap penulisan Agen A dalam hitungan detik", memerlukan perekat khusus: pengatur waktu, peretasan webhook, pemicu manual, atau daemon polling khusus yang memerlukan pemeliharaan. Pola koordinasi yang Anda inginkan sangatlah mudah. Pipa yang membuat mereka berfungsi dengan pemungutan suara tidak.

Jika Anda telah membangun tumpukan multi-agen, Anda telah mencapai tembok ini. Lapisan negara menyimpan kebenaran dengan andal. Mereka tetap diam mengenai perubahan pada kebenaran tersebut.

## Apa arti isyarat

Konsep perbaikannya mudah. Setelah setiap penulisan, lapisan status mengeluarkan peristiwa terstruktur yang menjelaskan apa yang berubah. Konsumen terdaftar, agen, daemon, instance rekan, menerima kejadian tersebut dan memutuskan apa yang harus dilakukan. Lapisan negara mengirimkan sinyal. Konsumen memutuskan tanggapannya.

Ini adalah standar primitif dalam sistem yang menangani keadaan dalam skala besar. PostgreSQL mengeluarkan entri WAL dan mendukung LISTEN/NOTIFY. Tidak ada yang mengklaim PostgreSQL "bertindak" ketika melakukan hal ini. Ini memberikan kemampuan observasi ke dalam transisi keadaannya sendiri. Broker pesan seperti Kafka melakukan hal yang sama pada skala yang berbeda. Sistem negara melaporkan apa yang terjadi. Konsumen hilir memfilter, memprioritaskan, dan bertindak. Lapisan pelaporan tidak mempertimbangkan kejadian tersebut. Itu menyala dan lupa.

Analogi biologis berguna di sini. Sistem saraf menyimpan dan memberi sinyal. Otak menyimpan memori. Neuron sensorik mengirimkan kesadaran tentang apa yang berubah. Tidak ada yang memutuskan untuk bergerak sedikit pun. Sistem motorik bertindak. Lapisan keadaan yang menyimpan kebenaran dan sinyal perubahan adalah otak dan saraf sensorik. Agen yang memutuskan apa yang harus dilakukan terhadap sinyal tersebut adalah sistem motorik.

## Garis yang harus tetap ada

Lapisan status yang sinyalnya dapat dengan mudah berubah menjadi orkestrator, mesin alur kerja, atau agen tersendiri. Godaan itu nyata. Setelah Anda dapat memancarkan peristiwa, Anda ingin memfilternya, memprioritaskannya, merutekannya, menambahkan logika percobaan ulang, membangun pengiriman bersyarat. Setiap langkah terdengar masuk akal jika dipisahkan. Bersama-sama, mereka mengubah substrat menjadi sesuatu yang membuat keputusan mengenai apa yang penting dan apa yang tidak.

Garis itu harus tetap ada.

Apa sinyalnya:

- **Pengamatan tentang perubahan status, bukan tindakan terhadap status.** Media melaporkan apa yang berubah. Itu tidak mengevaluasi apakah perubahan itu penting.
- **Pengiriman api-dan-lupakan.** Jika konsumen tidak tersedia, media akan mencatat kegagalannya. Ia tidak mencoba lagi dengan eskalasi, kembali ke tindakan alternatif, atau mengubah perilakunya sendiri.
- **Output turunan dari alur tulis.** Alur yang ada adalah penulisan, perhitungan ulang snapshot, dan penyisihan garis waktu. Emisi peristiwa adalah satu lagi entri dalam urutan tersebut, sama seperti snapshot memperoleh data dari observasi. Ini berjalan setelah transaksi tulis dilakukan, bukan selama. Jika penulisan gagal, tidak ada peristiwa yang dipicu. Jika pengiriman gagal, tulisan tetap berlaku. Sinyalnya mengikuti kebenaran; itu tidak pernah menutupnya.

Sinyal apa yang bukan:

- **Bukan pengambilan keputusan.** Media tidak memfilter peristiwa mana yang layak dikirim. Itu memancarkan semuanya. Filter konsumen.
- **Bukan perilaku agen.** Media tidak berlangganan peristiwanya sendiri. Itu tidak menjalankan loop. Itu tidak masuk akal.
- **Bukan orkestrasi.** Tanpa prioritas, tanpa penjadwalan, tanpa perutean bersyarat. Daemon yang memproses kejadian dan mengambil tindakan adalah konsumen lapisan operasional, bukan bagian dari substrat.

Tesnya bersih. Jika menghilangkan emisi peristiwa berarti substrat memiliki lebih sedikit kemampuan untuk diamati dalam transisi keadaannya sendiri, maka substrat tersebut primitif. Jika menghapusnya berarti pengguna melewatkan pengingat atau agen melewatkan tenggat waktu, itu adalah strateginya.

## Batas yang diperhalus

Batasan lama: substrat menyimpan dan menyajikan kebenaran.

Batasan baru: media menyimpan, menyajikan, dan memberi sinyal kebenaran. Ketika kebenaran berubah, media melaporkan perubahan tersebut. Yang terjadi selanjutnya adalah tanggung jawab konsumen.

Ini merupakan perpanjangan, bukan kontradiksi. Alur tulis yang ada sudah melakukan pekerjaan turunan setelah setiap penulisan: penghitungan ulang snapshot, pembuatan peristiwa garis waktu, pembuatan penyematan, penautan otomatis. Emisi peristiwa adalah satu lagi entri dalam daftar. Itu tidak memerlukan model data baru. Itu tidak mengubah apa yang disimpan atau bagaimana kueri diselesaikan. Hal ini menambah saluran keluar untuk kesadaran perubahan negara.

Terminologi itu penting. "Sinyal" dan "memancarkan" daripada "memberi tahu" atau "waspada". Beritahu menyiratkan penilaian tentang pentingnya. Peringatan menyiratkan penilaian urgensi. Sinyal netral. Sinyal substrat. Konsumen menafsirkan.

Sebaiknya jelaskan secara eksplisit di mana letak strategi dalam gambaran ini. Rencana, peraturan yang berlaku, preferensi, dan keputusan sebelumnya adalah milik negara. Mereka adalah entitas yang disimpan di substrat seperti yang lainnya, ditanyakan dan dikurangi serta diberi sinyal dengan cara yang sama. Mereka tidak berjalan di lapisan terpisah. Batasannya bukan antara “kehidupan strategi dalam sistem lain” dan “kehidupan negara dalam substrat.” Itu berada di antara "penyimpanan media dan sinyal" dan "konsumen memutuskan dan bertindak berdasarkan apa yang mereka baca." Hal ini membuat artefak strategi dapat diperiksa, diputar ulang, dan dibagikan kepada setiap konsumen yang membacanya, tanpa menyeret substrat ke dalam pengambilan keputusan.

## Dari memori ke sistem saraf

Kebanyakan orang yang membangun sistem multi-agen masih menggambarkan substrat bersama sebagai "memori". Pembingkaian itu akurat sejauh ini. Memori adalah penyimpanan dan pengambilan: sistem mencatat apa yang terjadi, dan agen menanyakannya saat mereka membutuhkan konteks. Itulah fondasinya, dan hal itu harus berhasil sebelum hal lain menjadi penting.

Tapi ingatan itu pasif. Itu mengandung kebenaran. Hal ini tidak menularkan kesadaran akan perubahan kebenaran ke bagian sistem yang perlu bereaksi. Lapisan memori yang menyimpan transaksi keuangan baru tidak memberi tahu agen rekonsiliasi bahwa transaksi tersebut telah tiba. Lapisan memori yang mencatat laporan bug baru tidak memberi tahu daemon triase bahwa ada sesuatu yang memerlukan perhatian. Datanya ada di sana. Kesadarannya tidak.

Sistem saraf menambahkan lapisan transmisi. Ini mencakup semua hal yang dilakukan memori, penyimpanan dan pengambilan, namun memperluas tanggung jawab media untuk memasukkan sinyal. Lapisan negara tidak hanya menyimpan kebenaran. Ini menyebarkan perubahan kebenaran kepada konsumen terdaftar secara real time.

Batasan yang tepat untuk menilai hal ini adalah integritas negara, bukan kualitas pengambilan. Memori dinilai berdasarkan apakah Anda dapat menanyakannya kembali. Suatu sistem saraf dinilai berdasarkan apakah seluruh sistem dapat bertindak atas suatu perubahan pada saat perubahan tersebut berlangsung lama, dibandingkan beberapa menit kemudian ketika sesuatu terjadi. Itu adalah masalah berbeda dengan mode kegagalan berbeda.

Kerangka biologisnya tepat, bukan dekoratif. Otak tanpa saraf sensorik dapat menyimpan ingatan dengan sempurna namun tetap tidak mampu bereaksi terhadap lingkungan. Bagian yang hilang bukanlah penyimpanan. Ini adalah jalur sinyal antara apa yang berubah dan apa yang perlu diketahui mengenai perubahan tersebut. Itu adalah bagian yang akhirnya Anda buat dengan tangan, satu per satu, hingga menjadi jelas bahwa itu termasuk dalam media.

## Apa yang terbuka

Jika Anda menjalankan tumpukan multi-agen terhadap status bersama, pertimbangkan apa yang mungkin terjadi ketika lapisan status memberi sinyal saat menulis.

**Daemon yang memproses pekerjaan masuk dalam hitungan detik setelah penyerahan.** Pengguna atau agen eksternal mengirimkan laporan bug, permintaan fitur, atau masukan terstruktur. Lapisan negara menyimpan entitas dan memancarkan suatu peristiwa. Daemon yang sudah berjalan lama menerima webhook, membuat pohon kerja, menjalankan sesi agen terhadap basis kode yang relevan, membuka PR, dan memperbarui status entitas. Tidak ada putaran pemungutan suara. Tidak ada pengatur waktu cron yang memeriksa setiap lima menit. Daemon berlangganan satu kali dan bereaksi ketika pekerjaan tiba.

**Koordinasi lintas alat tanpa kode perekat.** Agen rekonsiliasi keuangan berlangganan observasi transaksi. Agen saluran konten berlangganan rancangan perubahan status. Agen triase masalah berlangganan peristiwa pembuatan entitas yang difilter berdasarkan jenisnya. Setiap konsumen mendaftarkan minat dalam cakupan, semua peristiwa, peristiwa untuk jenis entitas tertentu, peristiwa untuk entitas tertentu, dan menyediakan titik akhir pengiriman. Substrat memberikan. Konsumen mempertahankan logikanya. Tidak ada integrasi khusus per pasangan agen.

**Agen yang dapat berbicara satu sama lain melalui media.** Komunikasi agen-ke-agen sudah berfungsi melalui lapisan status: rangkaian percakapan, identitas pengirim, semantik rangkaian multi-pihak. Yang hilang adalah dorongannya. Saat Agen A menulis pesan yang ditujukan untuk Agen B, Agen B tidak perlu melakukan jajak pendapat untuk menemukannya. Media harus memberi sinyal saat menulis sehingga percakapan berlangsung pada kecepatan pemrosesan, bukan kecepatan polling.

**Pengajuan tamu terstruktur dengan kontrol akses.** Jenis entitas apa pun, bukan hanya jenis kasus khusus, dapat dibuka untuk pengiriman eksternal dengan kebijakan akses yang dapat dikonfigurasi. Agen klien mengirimkan umpan balik terstruktur. Otomatisasi mitra mengirimkan data untuk rekonsiliasi. Substrat menetapkan siapa yang dapat menulis apa, melacak asal aktor eksternal, dan merangkai percakapan lanjutan. Penyampaiannya adalah keadaan yang tahan lama, bukan pesan yang hilang.

## Di luar agen Anda sendiri

Sejauh ini seolah-olah semua agen itu milik Anda. Mereka ada di editor Anda, pekerjaan cron Anda, laptop Anda. Itu adalah kasus yang mudah. Ini bukanlah gambaran keseluruhan.

Perkembangan alami adalah instans sentral di mesin Anda ditambah instans satelit di infrastruktur lain: server klien, tetesan VPS tim, agen jarak jauh yang Anda operasikan tetapi tidak Anda miliki. Begitu Anda sampai di sana, pemungutan suara tidak hanya sia-sia. Secara struktural ia buta. Anda masuk SSH, jalankan ringkasan, tanyakan "apa yang terjadi antara tanggal-tanggal ini" karena penyimpanan jarak jauh tidak pernah mendorong kesadaran kembali ke tempat agen koordinator Anda berjalan.

Ini adalah koordinasi lintas batas kepercayaan, bukan hanya lintas proses. Jika penulis adalah agen orang lain, "memori bersama" tidaklah cukup. Anda memerlukan tulisan yang dapat Anda atribusikan, periksa, dan verifikasi setelah kejadiannya. Itu berarti identitas penulis terverifikasi di setiap permukaan (MCP, HTTP, permintaan yang ditandatangani), tingkat atribusi yang membedakan agen yang diverifikasi secara kriptografis dari penelepon anonim, dan bentuk percakapan yang mencakup rangkaian agen-ke-agen dan multi-pihak sehingga komunikasi lintas batas bersifat terstruktur, bukan pesan ad hoc.

Pemberian sinyal melengkapi gambarannya. Mesin virtual satelit yang memancarkan peristiwa secara tertulis memberikan konsumen pusat Anda hal primitif yang sama yang sudah mereka andalkan secara lokal. Pada akhirnya, dua instance dapat disinkronkan secara dua arah: ketika suatu entitas berubah pada instance A, instance B akan diberitahu dan dapat melakukan pembaruan tanpa intervensi manual. Tidak diperlukan hub pusat. Contoh apa pun bisa menjadi rekan.

Bagian "terbuka" adalah interoperabilitas berdasarkan aturan, bukan gratis untuk semua. Permukaan terbuka ditambah identitas eksplisit dan semantik thread adalah cara Anda membiarkan agen orang lain berpartisipasi dalam satu sistem saraf tanpa berpura-pura bahwa setiap penelepon sama-sama dipercaya atau dapat dibaca. Pembingkaian memori meremehkan persyaratan itu. Pembingkaian sistem saraf tidak.

## Apa yang saya bangun

Saya menambahkan kemampuan ini ke [Neotoma](/posts/truth-layer-agent-memory) secara berurutan, masing-masing mengembangkan kemampuan sebelumnya.

**Emisi peristiwa jalur tulis.** Setelah setiap penulisan, koreksi, atau pembuatan hubungan berhasil, pancarkan peristiwa terstruktur: jenis entitas, ID entitas, jenis observasi, stempel waktu, dan kolom yang diubah. Konsumen mendapatkan informasi yang cukup untuk memutuskan apakah akan bertindak tanpa perlu menanyakan ulang lapisan negara bagian. Ini adalah lapisan penginderaan. Tanpa hal tersebut, setiap kemampuan hilir memerlukan jajak pendapat. Dengan itu, substrat menjadi reaktif.

**Langganan dan pengiriman webhook.** Agen mendaftarkan minat pada suatu cakupan dan menyediakan titik akhir pengiriman. Substrat memelihara registri dan mengirimkan peristiwa melalui panggilan balik webhook dan SSE. Konsumen mempertahankan logikanya. Webhook menjadi prioritas utama karena berfungsi untuk agen jarak jauh pada infrastruktur VPS, daemon lokal di laptop Anda, dan sinkronisasi lintas-instance antar rekan. Pemberitahuan push SSE dan MCP bersifat tambahan.

**Pengajuan entitas yang digeneralisasi.** Saat ini, pengiriman eksternal terstruktur (akses tamu, kebijakan akses, rangkaian percakapan, asal aktor eksternal) sudah ada, tetapi dihubungkan ke satu jenis entitas. Langkah selanjutnya adalah menjadikan tipe entitas ini agnostik: tipe entitas apa pun dapat dibuka untuk kiriman tamu dengan kebijakan akses yang dapat dikonfigurasi, mirror eksternal opsional, dan rangkaian percakapan. Agen klien mengirimkan data terstruktur. Otomatisasi mitra mengirimkan masukan. Substrat menangani kontrol akses dan asal. Operator mengonfigurasi apa yang terbuka dan apa yang tidak.

**Sinkronisasi lintas-instance dua arah.** Infrastruktur yang ada mendukung pengiriman jarak jauh searah: satu instance dikirim ke instance lainnya. Perpanjangannya dua arah. Ketika suatu entitas berubah pada instans A, instans B menerima webhook dan dapat menarik pembaruan. Tidak ada hub pusat. Setiap instance dapat di-peer dengan instance lainnya. Ini adalah bagaimana armada instance satelit pada infrastruktur klien tetap terkoordinasi dengan instance pusat tanpa SSH dan cron.

Semua ini bukanlah versi paling ambisius dari apa yang dimaksud dengan "sistem saraf". Perutean, pemfilteran, transformasi, jaminan pengiriman, antrian surat mati: perantara pesan menyediakan semua itu. Saya sengaja tidak membangunnya. Tugas media adalah memberi sinyal, bukan mengatur. Setiap fitur yang melewati batas tersebut membuat media menjadi kurang dapat dipercaya sebagai pelapor netral transisi keadaan.

Kendalanya adalah fiturnya. Lapisan keadaan yang memberi sinyal tetapi tidak memutuskan adalah lapisan keadaan yang masih dapat Anda pikirkan. Tambahkan logika lapisan operasional ke jalur pensinyalan, dan Anda akan kehilangan properti yang menjadikan media berguna: perilaku media sepenuhnya ditentukan oleh penulisan, bukan oleh kebijakan.