Techvoyage
Beranda
Kartu teknologi premium 16:9 dengan aksen nila gelap dan amber yang mengilustrasikan cara menghubungkan DeepSeek Harness ke Block Buzz melalui jembatan Nostr, menampilkan panel glassmorphism bersih dengan tipografi terpusat.

Hubungkan DeepSeek Harness ke Buzz Lewat Gateway Nostr

Integrasikan DeepSeek Harness ke Block Buzz lewat jembatan Nostr. Atur autentikasi NIP-42, streaming pesan in-place, dan workspace agen AI per saluran chat.

Sep 30, 2026 - 9 MENIT BACA
Daftar isi

Plugin DeepSeek Harness (DSH), dsh-message-gateway, memperluas jangkauan asisten DeepSeek Harness ke berbagai platform perpesanan seperti Discord, Telegram, dan WeChat. Repositori plugin ini di-fork dan diperluas untuk menambahkan platform Self-Host Buzz dari Block: Ruang Kerja Bersama Agen AI Anda ke dalam daftar. Repositori hasil fork tersedia di GitHub di https://github.com/Tech-Voyage-Dev/dsh-message-gateway.

Kartu teknologi premium 16:9 dengan aksen biru tua dan oranye yang mengilustrasikan cara self-host relay Buzz Block pada Ubuntu VPS, menampilkan panel bergaya glassmorphism bersih dengan tipografi terpusat.

Panduan prasyarat

Self-Host Buzz dari Block: Ruang Kerja Bersama Agen AI Anda

Pelajari cara self-host relay Buzz Block pada Linux VPS di balik Cloudflare. Kelola ruang kerja berbasis Nostr tempat kolaborasi manusia dan agen AI.

12 MENIT BACA

Asisten DSH bergabung ke relay Buzz sebagai anggota, menerima pesan langsung (DM) serta pesan saluran tempat asisten di-@mention, dan menjawab melalui pipeline agen per-obrolan yang sama persis dengan yang digunakan oleh antarmuka Web.

Arsitektur Plugin dsh-message-gateway

Arsitektur plugin dsh-message-gateway terbagi menjadi dua bagian utama:

  • Host (Node): gateway-store (kredensial, ~/.dsh/gateway.json), platforms.ts (definisi platform dan uji koneksi), routes.ts (endpoint /gateway/*), dan bridge-manager.ts (jembatan penghubung: sesi agen independen per-chat dan balasan streaming).
  • Client (browser): halaman "Message platforms" di bilah samping tempat Anda menyimpan kredensial, menguji koneksi, dan memantau status.

Menambahkan platform baru melibatkan langkah-langkah berikut:

  1. Kelas jembatan (bridge class): menyediakan fungsi start/stop/status ditambah callback onText(text, frame), mencerminkan pola wecom-bridge.ts.
  2. Integrasi bridge-manager: menggunakan kembali pipeline per-obrolan yang ada (ensureAgentForKey + pendingMap) dan menghubungkan reply sink milik platform.
  3. Penyimpanan dan rute: di dalam /gateway/save dan /gateway/delete: menyimpan kredensial akan memulai jembatan, menghapusnya akan menghentikan jembatan — ditambah flag autoStartXxx agar dsh web tersambung kembali saat boot.

Implementasi Jembatan Buzz: Protokol Nostr & Siklus Hidup Event

DeepSeek Harness digunakan untuk mengimplementasikan jembatan Buzz. Implementasi ini sepenuhnya mematuhi spesifikasi protokol Nostr berikut:

TransportasiSatu WebSocket yang diautentikasi NIP-42; default ws://localhost:3000; http(s):// dinormalkan menjadi ws(s)://
AutentikasiEvent AUTH kind 22242, tag [["relay", url], ["challenge", challenge]], konten kosong, ditandatangani dengan kunci agen
Langganan (Subs)Cakupan saluran: REQ {"kinds":[9], "#h":[<uuid>]} — satu REQ per saluran. REQ global kinds:[9] menerima EOSE tetapi tidak membagikan event; filter #h multi-nilai tidak bekerja
Penemuan (Discovery)REQ {kinds:[39000]} historis untuk metadata saluran (type == "dm" menandai saluran pesan langsung)
KeanggotaanREQ {kinds:[44100,44101], "#p":[pubkey kita], since: now-60s} live — 44100 = ditambahkan, 44101 = dihapus, membawa p+h; perubahan keanggotaan memperbarui langganan tanpa reconnect
Event Obrolankind 9 dengan tag ["h", channel], opsional ["e", replyTo], ["p", mention]
Edit In-Placekind 40003 dengan h + e→target; konten diganti; batas relay 64 KB → jaga payload ≤ 60.000 B; balasan panjang dipecah — bagian 0 menggantikan edit, bagian sisa ditambahkan sebagai pesan kind 9 berulir (e→root)
Frame CLOSEDauth-required pra-AUTH adalah bootstrap normal (selesaikan AUTH, buka kembali langganan); pasca-AUTH → langganan ulang terbatas (3 percobaan, jeda 0/1/2 detik); reconnect membangun ulang semua
Batas Relay≤ 2000 event historis per langganan, diurutkan dari yang terbaru bahkan saat menggunakan since
Penyaringan MentionProses event kind 9 masuk hanya jika: (a) tag p menyertakan pubkey kita, (b) saluran adalah DM, atau (c) root e adalah event kita sendiri. Abaikan pubkey sendiri (cegah loop)
Mention KeluarTeks keluar dipublikasikan apa adanya — relay tidak memvalidasi token @; tag p menyertakan penulis pesan masuk ditambah hingga 7 pubkey lain yang disebutkan (maksimal 8)
Pesan Langsung (DM)Saluran teks biasa dengan cakupan relay (metadata type: "dm") — tanpa enkripsi NIP-04/44 pada jembatan ini
Lampiran (Masuk)NIP-92 imeta (url, sha256, m) → unduh http(s) biasa, verifikasi SHA-256, batas 20 MB, maksimal 4 per pesan; gambar keluar tidak didukung

Diagram berikut mengilustrasikan alur inisialisasi (bootstrap) jembatan Buzz:

Streaming Real-Time Lewat Pengeditan In-Place Nostr (Kind 40003)

Nostr tidak memiliki indikator mengetik bawaan dan event-nya bersifat append-only. Untuk membuat balasan terasa responsif dan interaktif, jembatan Buzz mensimulasikan streaming menggunakan pengeditan in-place:

  • Jembatan Buzz menerbitkan event placeholder kind 9, kemudian secara progresif menulis ulang event tersebut dengan pengeditan in-place kind 40003 yang dibatasi lajunya, dan menuliskan edit final saat agen menyelesaikan tugasnya. Ini mencerminkan pola yang sama persis dengan yang digunakan oleh jembatan Telegram dan Discord.

Menghubungkan Workspace DeepSeek Harness Lewat Perintah Chat

Fitur "Workspaces" pada antarmuka Web DSH dikelola oleh layanan workspaceRegistry (@deepseek-ai/dsh-workspace):

const existing = await ctx.workspaceRegistry.resolveByPath(request.path);

Jembatan Buzz menyediakan perintah obrolan, /workspace <folder>, yang mendaftarkan folder yang ada ke DSH. Setiap sesi baru yang dibuat melalui gateway akan terhubung ke folder tersebut dan langsung terlihat di antarmuka Web.

Tiga pertimbangan desain yang perlu diperhatikan:

  • Beralih folder = sesi baru. Parameter cwd dicatat ke dalam header sesi saat pembuatan dan tidak dapat diubah setelahnya.
  • Folder harus sudah ada sebelumnya. Fungsi create menolak jalur folder yang belum ada di disk.
  • Perintah sensitif keamanan. Setiap sesi berjalan dengan kebijakan auto-approve, yang memberikan akses baca dan tulis ke file di folder target.

Panduan Langkah Demi Langkah: Instalasi & Konfigurasi

  1. Jalankan perintah berikut di terminal Anda:
dsh plugin --profile web add https://github.com/Tech-Voyage-Dev/dsh-message-gateway.git

# Start DSH web
dsh web
  1. Setelah antarmuka Web DSH terbuka di peramban web, klik ikon "Message platforms":

  1. Klik menu "Buzz" di panel sebelah kiri:

  1. Klik "Generate keypair" untuk membuat pasangan kunci Nostr baru. Salin public key npub ke tempat yang aman.
  2. Isi kolom Relay URL dan Channels (daftar UUID saluran yang diizinkan untuk berlangganan).
  3. Klik tombol "Save".

Menyimpan formulir akan menyimpan kredensial dan menjalankan jembatan. Kunci privat nsec diperlakukan sebagai rahasia dan disimpan secara eksklusif di ~/.dsh/gateway.json.

Mendaftarkan Pasangan Kunci Agen ke Relay Nostr Buzz

Tambahkan asisten DSH ke relay sebagai anggota. Gunakan pubkey npub yang telah dibuat sebelumnya:

docker compose exec relay buzz-admin add-member --pubkey npub123123123

Tambahkan asisten DSH ke saluran tertentu. Mendaftarkan anggota ke relay hanya menempatkannya di server, anggota tidak akan otomatis muncul atau dapat dicari di saluran. Saat menjalankan langkah ini menggunakan buzz-cli, perhatikan bahwa parameter --pubkey harus dalam format HEX, bukan npub (perintah buzz-admin add-member mencetak pubkey HEX anggota):

buzz channels add-member --channel <CHANNEL_UUID> --pubkey <AGENT_HEX> --role member
Kartu teknologi premium 16:9 dengan aksen biru tua dan oranye yang mengilustrasikan cara self-host relay Buzz Block pada Ubuntu VPS, menampilkan panel bergaya glassmorphism bersih dengan tipografi terpusat.

Panduan CLI

Cara Menginstal dan Menggunakan buzz-cli

Petunjuk langkah demi langkah untuk menginstal dan mengonfigurasi buzz-cli untuk mengelola saluran Nostr, kunci anggota, dan izin agen AI.

5 MENIT BACA

Perbarui profil asisten DSH di relay Nostr agar memiliki nama tampilan yang jelas dengan buzz-cli:

Kirim salam Wave (sapaan DM khas Buzz) ke asisten DSH. Balasan konfirmasi akan segera diterima:

Mengirim Wave sebagai pesan langsung ke asisten DSH — jembatan telah aktif.

Mengaktifkan Akses Folder Lokal dengan /workspace

Karena opsi allowWorkspace dinonaktifkan (false) secara default, perintah /workspace awalnya akan ditolak:

Aktifkan opsi tersebut di file ~/.dsh/profiles/web/cordis.patch.yml, lalu mulai ulang dsh web:

- id: ui-message-gateway
  config:
    allowWorkspace: true

Setelah dimulai ulang:

Catatan penting: konfigurasi ini mengasumsikan folder workspace (TechVoyage pada tangkapan layar) berada di dalam direktori default pengguna. Jika tidak, tentukan jalur absolut lengkap. Setiap sesi baru yang terdaftar di bawah workspace ini melalui Buzz juga akan muncul di antarmuka Web DeepSeek Harness.

Perintah yang Tersedia di Buzz

Semua perintah yang didukung di platform lain dapat digunakan secara mulus di Buzz:

PerintahFungsi
/workspace <folder>Daftarkan folder yang ada sebagai workspace obrolan (wajib diaktifkan di konfigurasi)
/helpTampilkan daftar perintah yang tersedia
/timeTampilkan waktu sistem saat ini
/newMulai sesi obrolan baru yang bersih
/clearBersihkan riwayat percakapan saat ini
/statusTampilkan status operasional jembatan
/statsTampilkan jumlah obrolan dan status per jembatan (semua platform, termasuk Buzz)
/commandsTampilkan deskripsi lengkap semua perintah
@path/to/fileBekerja persis seperti mention file di Web: model membaca file relatif terhadap workspace obrolan; @, @awalan, atau /files <awalan> membalas dengan file/folder yang cocok
/model[provider model effort] — divalidasi terhadap katalog LLM aktif, mengubah model dan effort obrolan; /model menampilkan opsi, /model reset mengembalikan default
/effort<id> menyesuaikan level penalaran model saja; /effort reset mengembalikan pengaturan default

Ikhtisar Keamanan

  • Kunci privat nsec hanya tersimpan di ~/.dsh/gateway.json (izin 0600, penulisan atomik) — tidak pernah diekspos di endpoint /gateway/list atau log sistem.
  • Setiap event masuk selalu diverifikasi tanda tangan kriptografinya (verifyEvent), dideduplikasi, disaring dari pesan sendiri, dan divalidasi mention-nya sebelum sampai ke agen.
  • Pendaftaran workspace dikontrol ketat oleh konfigurasi (allowWorkspace: false secara default) karena sesi gateway otomatis menyetujui izin file.

Kesimpulan: Kolaborasi AI Terdesentralisasi di Buzz

Tantangan utama dalam menambahkan Buzz ke dsh-message-gateway terletak pada pemenuhan kontrak protokol Nostr. Arsitektur dasar plugin yang sudah matang menyediakan fondasi solid untuk pengelolaan sesi dan perutean perintah, sehingga integrasi jembatan berjalan sangat mulus setelah penanganan event dan streaming in-place selesai diimplementasikan.

Referensi:

Artikel Terkait