5 Plugin DeepSeek Harness yang Layak Dipasang
Temukan 5 plugin DeepSeek Harness untuk VPS: batas anggaran, izin tool, pemindaian injeksi dan secret, memori persisten, serta akses LAN.
Plugin DeepSeek Harness mana yang layak dipasang
Plugin DeepSeek Harness adalah kode pihak ketiga yang berjalan di dalam agent Anda, dengan hak akses agent tersebut, pada mesin yang Anda biayai. Daftar komunitas mencakup lebih dari dua puluh kategori dan lebih dari seribu entri. Pada virtual private server (VPS) sewaan, Anda memerlukan lima hal: dsh-budget untuk membatasi pengeluaran, dsh-permission-rules untuk mengatur akses tool, dsh-defend untuk memindai injeksi dan secret, dsh-memory untuk menyimpan fakta yang tetap tersedia setelah sesi berakhir, dan dsh-web-lan-access hanya setelah Anda menentukan cara melakukan autentikasi.
Harness tersebut adalah dsh, yaitu agent harness open source milik DeepSeek yang dirancang agar semuanya menjadi plugin. README-nya sendiri menyebutnya sebagai pratinjau untuk developer dan memperingatkan THERE WILL BE COMPATIBILITY-BREAKING CHANGES. Fakta ini menentukan setiap pilihan di bawah. Tetapkan versi plugin yang dipasang, bersiaplah jika upgrade membuatnya tidak kompatibel, dan pertahankan jumlahnya tetap sedikit agar seluruh kodenya dapat Anda baca. Jika harness belum berjalan, mulai dengan instalasi DeepSeek Harness pada VPS lalu kembali ke sini. Jika komponen yang menjadi tempat plugin ini bekerja—agent loop, tool, dan memorinya—masih belum jelas, pelajari dasar-dasarnya terlebih dahulu, karena setiap pilihan di bawah lebih mudah dinilai setelah Anda memahami fungsi setiap lapisan.
Cara dsh menginstal plugin dan lokasi konfigurasi
dsh tersusun dari plugin Cordis, sehingga instance yang berjalan merupakan pohon plugin, bukan satu program. Profile adalah komposisi plugin tersebut yang memiliki nama. Dua template tersebut adalah web dan headless. $DSH_HOME secara default mengarah ke ~/.dsh, dan sebuah profile berada di $DSH_HOME/profiles/<name>/. Profile tersebut menyimpan package.json miliknya sendiri, manifest dsh.profile, dan cordis.patch.yml.
dsh plugin --profile web list
dsh plugin --profile web add dsh-budget
dsh plugin --profile web remove dsh-budgetAda empat bentuk sumber: nama paket npm tanpa scope, nama berscope seperti @towzai/dsh-memory, referensi GitHub seperti github:PerryLink/dsh-budget#main, dan path lokal dengan link: atau ./. Gunakan bentuk GitHub karena #main dapat diganti dengan commit sehingga kode yang sama dapat diperoleh kembali bulan depan.
dsh plugin --profile web add "github:PerryLink/dsh-budget#461d478"Layer diterapkan dalam urutan tetap: setiap bundle sesuai urutan yang tercantum dalam profile, lalu cordis.patch.yml milik profile, kemudian cordis.patch.yml tingkat home, lalu overlay --patch jika ada. Urutan penting karena layer berikutnya dapat mengonfigurasi ulang atau menghapus konfigurasi yang dibuat layer sebelumnya. Jadi, jika plugin tampak telah terinstal tetapi tidak melakukan apa pun, buka cordis.patch.yml milik profile dan periksa dua hal: blok insert-nya ada, dan tidak ada layer berikutnya yang menonaktifkannya.
Per 17 August 2026, paket npm @deepseek-ai/dsh berada pada versi 0.1.0-rc.7, sedangkan setiap plugin di bawah ini menyatakan kompatibilitas dengan 0.1.0-rc.5 hingga 0.1.0-rc.6. Perbedaan tersebut normal dalam ekosistem ini dan biasanya menyebabkan plugin berhenti dimuat: harness berkembang lebih cepat daripada plugin di sekitarnya. Tingkatkan versi harness secara sengaja, lalu uji satu plugin pada satu waktu.
Baca plugin sebelum mempercayainya
Plugin dsh tidak di-sandbox dari harness. Plugin tersebut dimuat ke dalam tree Cordis yang sama, dalam proses yang sama, sebagai pengguna sistem operasi yang sama, dengan akses ke kredensial model dan working tree yang sama. Memasangnya lebih mirip menjalankan skrip milik orang lain dengan sudo daripada menambahkan ekstensi browser. Ini adalah pertanyaan kepercayaan yang sama seperti yang dibahas dalam plugin Claude Code menimbulkan, dan jawabannya juga sama: baca kodenya, atau jangan instal plugin tersebut.
Periksa empat hal berikut, dalam urutan ini:
- Extension point yang digunakan.
tools/pre-executeberarti plugin tersebut dapat melihat setiap pemanggilan tool dan memblokirnya.agent/pre-stepberarti plugin tersebut dapat melihat pesan Anda.webServer.tapIndexberarti plugin tersebut dapat menulis ulang halaman yang disajikan ke browser Anda. Plugin yang tidak menggunakan satu pun dari extension point tersebut hanya dapat melakukan sedikit hal; plugin yang menggunakan semuanya adalah batas keamanan Anda. - Apakah plugin berkomunikasi melalui jaringan. Cari
fetch,http, dan hostname yang ditulis secara langsung di source code. Cost meter yang mengirim data ke server pembuatnya akan mengirimkan pola penggunaan Anda ke suatu tempat. - Apakah plugin membaca kredensial. Apa pun yang mengakses
credentials.*atau provider key harus memiliki alasan yang dinyatakan dalam README. - Lisensi dan tanggal commit terakhir. Plugin tanpa lisensi, yang tidak diperbarui selama berbulan-bulan, dalam ekosistem yang berubah setiap minggu, merupakan risiko.
Selanjutnya, instal berdasarkan commit, bukan branch, lalu baca insert block yang ditulis installer ke dalam cordis.patch.yml. Block tersebut mencantumkan id plugin dan konfigurasi yang didaftarkannya. Ini adalah deskripsi paling singkat dan jujur tentang hal yang baru saja Anda tambahkan. Jika harness memungkinkan, jauhkan provider key dari jangkauan plugin, seperti dijelaskan dalam menjauhkan secret dari AI agent.
dsh-budget: bagaimana cara menghentikan agent yang menghabiskan biaya sepanjang malam?
Agent pada VPS berjalan tanpa pengawasan. Itulah alasan Anda menempatkannya di sana, sekaligus risikonya. dsh-budget menghitung token dan perkiraan biaya berdasarkan model, sesi, dan hari, lalu menerapkan batas terhadap total tersebut.
dsh plugin --profile web add "github:PerryLink/dsh-budget#461d478"Nilai bawaannya cukup longgar: 10 USD per sesi, 50 per hari, dan 500 per bulan. Nilai ini sesuai untuk tim yang memiliki anggaran. Pada server pribadi, nilainya cukup tinggi sehingga loop yang tidak terkendali dapat selesai sebelum batas diterapkan. Karena itu, turunkan nilainya pada hari pertama.
The data behind this chart
[
{
"label": "Per session",
"plugin_default_usd": 10,
"suggested_start_usd": 2
},
{
"label": "Per day",
"plugin_default_usd": 50,
"suggested_start_usd": 5
},
{
"label": "Per month",
"plugin_default_usd": 500,
"suggested_start_usd": 40
}
]Kolom yang disarankan adalah titik awal untuk satu operator pada satu server, bukan angka resmi yang dipublikasikan. Naikkan nilainya setelah penggunaan selama satu bulan menunjukkan bahwa hal tersebut diperlukan. Batas bulanan sebesar 40 USD dengan batas sesi sebesar 2 akan gagal dengan jelas dan lebih awal. Itulah perilaku yang Anda inginkan saat masih mempelajari tingkat penggunaan tool tersebut.
- id: budget
config:
budgets:
session: 2
daily: 5
monthly: 40
warnRatio: 0.8
overLimit: blockPengaturan yang mengubah perilaku mesin adalah overLimit. Nilai bawaannya adalah alert, yang menampilkan peringatan tetapi tetap membelanjakan biaya. Artinya, secara bawaan plugin ini hanya berfungsi sebagai dashboard. Atur ke block agar harness menolak panggilan model berikutnya setelah suatu batas tercapai. Dengan demikian, job yang berjalan semalaman berhenti, bukan terus menimbulkan biaya sampai pagi. degrade adalah mode ketiga. Mode ini mengganti model dengan model yang lebih murah dari map degradation. Mode tersebut sesuai jika job harus selesai tetapi tidak memerlukan model terbaik Anda. warnRatio secara bawaan bernilai 0.8, sehingga Anda menerima pemberitahuan saat penggunaan mencapai 80 persen dari batas.
Ada dua batasan yang perlu dipahami. Biaya dihitung berdasarkan harga yang Anda masukkan: prices secara bawaan kosong, dan defaultPrice menggunakan nilai cadangan 1.0 USD per satu juta token input serta 3.0 USD per satu juta token output. Isi angka yang benar untuk model Anda. Jika tidak, dashboard hanya merupakan perkiraan yang tampak seperti hasil pengukuran. Kedua, plugin menggabungkan data dalam proses yang sedang berjalan dari aliran event sesi. Karena itu, total akan direset saat harness dimulai ulang. Loop crash, atau supervisor yang memulai ulang dsh, akan mereset batas harian. Perlakukan dsh-budget sebagai pagar pengaman terhadap job Anda sendiri, dan tetap tetapkan batas pengeluaran pada akun provider sebagai batas maksimum yang sebenarnya. Ini merupakan bagian dari pembahasan yang lebih luas dalam mengendalikan biaya agent AI pada VPS.
Dalam penggunaan sehari-hari, gunakan /budget untuk ringkasan, /budget models untuk perincian berdasarkan model, dan /budget unblock <scope> untuk menghapus pemblokiran setelah Anda memutuskan untuk melanjutkan.
dsh-permission-rules: panggilan tool apa yang tidak boleh dijalankan?
dsh-permission-rules menempatkan aturan deklaratif pada waterfall tools/pre-execute, sehingga aturan dievaluasi sebelum tool dijalankan. Tersedia tiga tindakan. allow meneruskan panggilan, deny memblokirnya dan mengembalikan alasan yang dapat dibaca model, sedangkan ask mengarahkannya ke jalur persetujuan resmi.
dsh plugin --profile web add "github:PerryLink/dsh-permission-rules#b30b4fb"Aturan disimpan di .dsh/rules.yaml relatif terhadap direktori kerja sesi, dengan fallbackPath global dan searchUp opsional untuk berjalan ke atas menuju root sistem berkas. Pencocokan mencakup glob nama tool, glob kunci dan nilai parameter, glob path relatif terhadap workspace, selector agent seperti main atau subagent, serta target jaringan.
rules:
- match: { tools: [bash], params: { command: "rm -rf*" } }
action: deny
reason: "No recursive deletes"
- match: { tools: [edit, write], paths: ["**/.env*", "**/secrets/**"] }
action: ask
reason: "Secret files need confirmation"
- match: { tools: ["mcp__*"] }
action: ask
reason: "MCP tools need confirmation"Evaluasi menggunakan aturan yang cocok pertama, sehingga allow yang luas di bagian atas dapat secara diam-diam membatalkan semua aturan yang lebih spesifik di bawahnya. Tulis aturan penolakan terlebih dahulu dan aturan permisif di bagian akhir. Glob nama tool mencakup mcp__*. Dengan demikian, Anda dapat membatasi tool yang berasal dari server model context protocol (MCP), bukan dari harness itu sendiri. Hal ini penting segera setelah Anda menjalankan MCP server pada VPS.
Rencanakan satu perilaku berikut: ask memerlukan pihak yang memberikan jawaban. Pada profile headless, mungkin tidak ada orang yang memantau, sehingga aturan ask dapat menahan eksekusi sampai seseorang hadir. Gunakan deny untuk apa pun yang tidak akan pernah Anda setujui. Simpan ask untuk profile yang Anda pantau langsung. Jika Anda ingin persetujuan berfungsi tanpa pengawasan, Anda memerlukan jalur pemberi jawaban yang benar-benar tersedia. Hal ini dibahas dalam membatasi tindakan AI agent dengan persetujuan.
dsh-defend: bagaimana dengan prompt injection dan secret yang bocor?
dsh-defend melakukan pemindaian pada tiga titik: pesan masuk di agent/pre-step, argumen tool di tools/pre-execute termasuk perlindungan terhadap penghapusan destruktif, serta hasil tool di tools/post-execute. Bagian terakhir paling menarik karena pada titik inilah konten yang diambil dari halaman web diperiksa sebelum model bertindak berdasarkan konten tersebut.
dsh plugin --profile web add "github:PerryLink/dsh-defend#7ba3427"Default-nya berhati-hati, bukan ketat: detection.injectionAction, detection.jailbreakAction, dan detection.secretAction semuanya bernilai ask, sedangkan detection.secretBlockCritical bernilai true. Dengan demikian, secret kritis diblokir terlepas dari pengaturan lainnya. Pada server tanpa pengawasan, ubah tindakan yang Anda perlukan menjadi block, karena ask tanpa siapa pun yang dapat dimintai konfirmasi bukanlah pengambilan keputusan.
Desain audit ini patut diapresiasi. Peristiwa defend/detection mencatat ID aturan, family, kategori, tingkat keparahan, keputusan, dan fakta pemindaian, tetapi tidak pernah mencatat teks yang cocok. Secret hanya dicatat berdasarkan jenisnya. Jadi, mengaktifkan audit log tidak membuat salinan kedua dari kredensial yang sedang Anda lindungi.
Pahami manfaatnya dengan jelas. Deteksi ini berbasis aturan, dan README menyatakan dengan jelas bahwa frasa baru serta serangan multi-langkah dapat lolos. Fitur ini mengurangi frekuensi serangan yang jelas. Fitur ini tidak membuat agent aman untuk diarahkan ke konten yang tidak tepercaya, jadi tetap pertahankan aturan permission di bawahnya.
dsh-memory: apa yang diingat agent besok?
Ada dua plugin berbeda yang bernama dsh-memory. Hal ini perlu diketahui sebelum Anda mengetikkan perintah instalasi. Instal berdasarkan sumber yang disebutkan secara eksplisit agar Anda mendapatkan plugin yang sedang Anda baca.
Untuk server kecil, saya akan memilih build SQLite. Plugin ini terdaftar sebagai memory, menyimpan satu file di $DSH_HOME/memory/memory.db yang digunakan bersama oleh semua profil, serta menyediakan memory_write, memory_search, dan memory_forget. Pencarian berbasis kata kunci pada teks dan tag yang tersimpan. Tidak ada layanan embedding, API key, atau proses tambahan.
dsh plugin --profile web add "github:ben7am1n/dsh-memory#def7c6a"Konfigurasi yang perlu Anda ubah cukup kecil: path untuk file database, promptRecentCount (default 10) untuk menentukan jumlah memori yang tidak dipin yang disisipkan, dan promptMaxChars (default 2000) untuk menentukan anggaran rendering. Plugin ini mengandalkan node:sqlite, yang masih ditandai eksperimental oleh Node 22 dan 24. Karena itu, upgrade Node harus diuji, bukan diasumsikan aman.
Berikut perubahan yang benar-benar ditimbulkan oleh memory terhadap mesin: memory yang disisipkan ikut masuk ke system prompt pada setiap giliran. Anggaran 2000 karakter menambahkan beberapa ratus token input pada setiap request, tanpa batas waktu. Biaya ini benar-benar muncul pada tagihan Anda. Karena itu, dsh-budget harus tersedia di server sebelum dsh-memory. Jaga agar promptMaxChars tetap kecil dan lakukan pembersihan menggunakan memory_forget, bukan membiarkan file terus membesar.
Build alternatif menyimpan memory dalam file YAML dan melakukan pencarian embedding dengan penyisipan prompt otomatis. Instal build ini menggunakan dsh plugin --profile web add github:towzai/dsh-memory. Build ini memerlukan instance ollama lokal dan model embedding, yaitu qwen3-embedding:0.6b secara default, yang dapat diganti dengan DSH_MEMORY_EMBED_MODEL. Recall semantik lebih baik daripada recall berbasis kata kunci. Namun, build ini juga menambahkan service kedua dan sekumpulan bobot model yang tetap berada di server yang sama. Pada paket kecil, hal tersebut mengurangi memory yang tersedia untuk pekerjaan utama server. Pilih build ini jika RAM Anda masih mencukupi. Tradeoff umum antara kualitas recall dan biaya resource yang tetap digunakan dibahas dalam memory lokal untuk agent.
dsh-web-lan-access: apakah UI web harus menerima koneksi selain dari loopback?
npx @deepseek-ai/dsh web menyajikan antarmuka pada 127.0.0.1:3080. Browser hanya mengekspos crypto.randomUUID() dalam konteks aman, sehingga memuat halaman yang sama melalui HTTP biasa dari mesin lain akan gagal. dsh-web-lan-access memperbaikinya dengan menggunakan webServer.tapIndex untuk menyisipkan polyfill kecil, lalu mengubah binding server ke 0.0.0.0.
Baca peringatannya sendiri sebelum menginstalnya. Binding 0.0.0.0 membuat agent dapat dijangkau tanpa autentikasi oleh siapa pun di jaringan area lokal (LAN) yang sama. Pada server dengan alamat IP publik, ini berarti seluruh Internet. Daftar singkat metode sensitif (settings.*, credentials.*, llm.discoverModels) tetap terikat ke loopback dan mengembalikan 403 dari origin jarak jauh, sehingga membatasi dampaknya. Namun, cara ini tidak mencegah serangan karena permukaan pemanggilan tool tetap terbuka bagi siapa pun yang menemukan port tersebut.
Sebagian besar waktu, Anda sama sekali tidak memerlukan plugin ini. Teruskan port melalui SSH.
ssh -N -L 3080:127.0.0.1:3080 you@your-serverKemudian buka http://127.0.0.1:3080 di browser lokal Anda. Harness tetap hanya menerima koneksi pada loopback, sehingga tidak ada yang terekspos. Karena browser memperlakukan 127.0.0.1 sebagai origin aman, crypto.randomUUID() tersedia dan polyfill tidak diperlukan. Satu perintah, tanpa plugin, dan tanpa permukaan serangan baru.
Instal plugin hanya jika port forwarding tidak dapat digunakan, misalnya ketika ponsel pada jaringan yang sama harus mengakses UI. Jika Anda menginstalnya, tempatkan binding di balik antarmuka jaringan privat, pertahankan aturan firewall yang hanya mengizinkan antarmuka tersebut, dan cantumkan nama yang akan digunakan di bawah trustedHosts pada entri web-runtime. Untuk akses multipengguna yang sebenarnya, tersedia dsh-passwords. Komponen ini menambahkan izin subuser, kuota token per jam dan kuota waktu harian untuk setiap subuser, sertifikat TLS (transport layer security) otomatis melalui Let's Encrypt, serta log audit terenkripsi. Perlakukan ini sebagai platform, bukan plugin: komponen ini memerlukan port 80 dan 443, menyediakan installer sendiri, dan jalur cepat yang didokumentasikan meneruskan skrip shell dari jaringan langsung ke bash. Sebaiknya gunakan npm install -g dsh-passwords lalu dsh-passwords install agar kode tersimpan di disk dan dapat Anda baca sebelum dijalankan.
Cara menghapus plugin dengan bersih
Proses penghapusan terdiri dari dua langkah, tetapi banyak orang melewatkan langkah kedua.
dsh plugin --profile web remove dsh-budget
dsh plugin --profile web listlist seharusnya tidak lagi menampilkannya. Kemudian buka $DSH_HOME/profiles/web/cordis.patch.yml dan hapus blok insert yang tersisa dan mencantumkan nama plugin tersebut, karena entri itu yang memuatnya ke dalam tree. Restart harness agar tree dibangun ulang. Plugin yang sudah dimuat akan tetap aktif sampai Anda melakukannya. Terakhir, ingat bahwa data tetap ada setelah kode dihapus. $DSH_HOME/memory/memory.db dan .dsh/rules.yaml tetap ada setelah proses uninstall. Hapus sendiri keduanya jika tujuan Anda adalah menghapus datanya.
Apa yang saya baca, dan kapan
Setiap referensi di sini adalah commit, bukan branch, karena main akan berisi kode yang berbeda saat Anda membaca ini. Saya membaca semuanya pada 17 Agustus 2026, dan harness itu sendiri berada pada 0.1.0-rc.7 di npm pada hari tersebut.
Commit persis yang mendasari daftar singkat ini
- Daftar plugin komunitas pada
f2918fb, 17 Agustus 2026. Ditautkan sekali dengan sengaja. Ini adalah direktori, dan direktori bukan rekomendasi. - dsh-budget pada
461d478, 17 Agustus 2026. Apache 2.0. Mendeklarasikan dsh0.1.0-rc.6, Node 22.19 atau 24 dan yang lebih baru. - dsh-permission-rules pada
b30b4fb, 17 Agustus 2026. Apache 2.0. Mendeklarasikan dsh0.1.0-rc.5hingga0.1.0-rc.6. - dsh-defend pada
7ba3427, 17 Agustus 2026. Apache 2.0. Mendeklarasikan dsh0.1.0-rc.6. - dsh-memory pada
def7c6a, 13 Agustus 2026. MIT. Build SQLite. - dsh-web-lan-access pada
e27e909, 16 Agustus 2026. MIT.
Periksa ulang pin tersebut sebelum menyalin command. Dalam ekosistem pratinjau pengembang, nomor versi yang disertai tanggal adalah satu-satunya jenis informasi versi yang bermakna.
FAQ
Plugin DeepSeek Harness mana yang harus saya instal terlebih dahulu di VPS?
Instal dsh-budget dan dsh-permission-rules terlebih dahulu. Anggaran dengan overLimit: block mencegah proses tanpa pengawasan menghabiskan biaya sepanjang malam, sedangkan file .dsh/rules.yaml mencegah pemanggilan tool yang tidak akan pernah Anda setujui. Tambahkan dsh-defend setelah agent membaca sesuatu dari web publik, dan dsh-memory ketika Anda menyadari bahwa Anda terus menempelkan konteks yang sama ke setiap sesi. Lewati tema dan chip status: keduanya menambahkan kode yang berjalan dengan hak akses agent tanpa mengubah perilaku mesin.
Apakah plugin dsh di-sandbox secara terpisah dari harness?
Tidak. Plugin dimuat ke dalam tree Cordis yang sama dengan harness, dalam proses yang sama, sebagai user sistem operasi yang sama, dengan kredensial model dan working tree yang sama. Plugin yang memantau tools/pre-execute dapat melihat dan memblokir setiap pemanggilan tool; plugin yang memantau agent/pre-step dapat melihat pesan Anda. Karena itu, baca source code, periksa lisensi dan tanggal commit terakhir, lalu instal berdasarkan commit, bukan branch, agar kode tidak berubah tanpa sepengetahuan Anda.
Apakah dsh-budget benar-benar akan menghentikan agent, atau hanya memberi peringatan?
Hal itu bergantung pada overLimit. Default-nya adalah alert, yang memberi peringatan pada warnRatio dan tetap melanjutkan pengeluaran. block menolak pemanggilan model berikutnya setelah batas tercapai, sedangkan /budget unblock <scope> menghapus batas tersebut saat Anda memilih untuk melanjutkan. degrade beralih ke model yang lebih murah berdasarkan peta degradation. Ada satu batasan: total dihitung secara agregat dalam proses yang sedang berjalan dari event stream sesi. Karena itu, me-restart harness akan mereset total, dan loop restart dapat melewati batas harian. Tetapkan batas pengeluaran pada akun provider sebagai batas maksimum yang sebenarnya.
Bagaimana cara menghapus plugin dsh sepenuhnya?
Jalankan dsh plugin --profile web remove <package-name>, konfirmasikan dengan dsh plugin --profile web list, lalu buka $DSH_HOME/profiles/web/cordis.patch.yml dan hapus setiap blok insert yang tersisa untuk plugin tersebut, karena entri itulah yang memuatnya. Restart harness agar tree plugin dibuat ulang. Data yang ditulis plugin tetap berada di disk: $DSH_HOME/memory/memory.db dan .dsh/rules.yaml tetap ada setelah uninstall sampai Anda menghapusnya sendiri.
Apakah aman mengekspos web UI dsh melalui jaringan?
Tidak jika digunakan tanpa perlindungan tambahan. dsh web mendengarkan pada 127.0.0.1:3080, sedangkan dsh-web-lan-access mengubah binding tersebut menjadi 0.0.0.0. README-nya sendiri menyatakan bahwa konfigurasi ini membuat agent dapat diakses tanpa autentikasi oleh siapa pun di jaringan yang sama, dan pada alamat IP publik, itu berarti dapat diakses dari internet. Beberapa method (settings.*, credentials.*, llm.discoverModels) tetap terikat ke loopback dan mengembalikan 403 dari origin jarak jauh, sehingga mengurangi dampaknya tanpa menghentikan agent. Gunakan SSH port forward, ssh -N -L 3080:127.0.0.1:3080 you@your-server, atau tempatkan port di belakang interface jaringan privat yang dilengkapi aturan firewall, lalu tambahkan autentikasi yang sebenarnya sebelum apa pun dapat diakses dari luar.