Plugin DeepSeek Harness Terbaik untuk VPS
Tingkatkan fungsi pelayan anda dengan lima plugin DeepSeek Harness penting. Kami senaraikan alat untuk had bajet, kawalan akses, imbasan suntikan, memori dan akses LAN.
Plugin DeepSeek Harness yang berbaloi untuk dipasang
Plugin DeepSeek Harness ialah kod pihak ketiga yang berjalan di dalam ejen anda, menggunakan keistimewaan ejen anda, pada mesin yang anda bayar. Senarai komuniti mengandungi lebih daripada dua puluh kategori dan lebih seribu entri. Pada pelayan peribadi maya (VPS) yang disewa, anda memerlukan lima plugin: dsh-budget untuk had perbelanjaan, dsh-permission-rules untuk kawalan akses alat (tool gating), dsh-defend untuk pengimbasan suntikan dan rahsia, dsh-memory untuk fakta yang bertahan melebihi sesi, dan dsh-web-lan-access hanya selepas anda memutuskan cara anda akan melakukan pengesahan.
Harness tersebut ialah dsh, harness ejen sumber terbuka DeepSeek, yang dibina supaya segala-galanya menjadi plugin. README miliknya sendiri memanggilnya sebagai pratonton pembangun dan memberi amaran THERE WILL BE COMPATIBILITY-BREAKING CHANGES. Fakta tunggal itu membentuk setiap pilihan di bawah. Tetapkan versi (pin) apa yang anda pasang, jangkakan naik taraf akan merosakkannya, dan pastikan set plugin cukup kecil supaya anda benar-benar boleh membaca kesemuanya. Jika harness belum berjalan lagi, mulakan dengan pemasangan DeepSeek Harness pada VPS dan kembali ke sini. Jika bahagian yang disambungkan oleh plugin ini, iaitu gelung ejen, alatnya, dan memorinya, masih samar, fahami asasnya terlebih dahulu, kerana setiap pilihan di bawah lebih mudah dinilai sebaik sahaja anda mengetahui fungsi setiap lapisan.
Cara dsh memasang pemalam dan lokasi fail konfigurasi
dsh memasang dirinya sendiri daripada pemalam Cordis, jadi tikaian yang sedang berjalan merupakan pepohon pemalam dan bukannya satu atur cara tunggal. Profil ialah komposisi bernama bagi pemalam tersebut. Dua templat yang digunakan ialah web dan headless. $DSH_HOME menggunakan ~/.dsh sebagai lalai, dan profil disimpan di $DSH_HOME/profiles/<name>/, yang mengandungi package.json tersendiri, manifes dsh.profile, dan cordis.patch.yml.
dsh plugin --profile web list
dsh plugin --profile web add dsh-budget
dsh plugin --profile web remove dsh-budgetEmpat bentuk sumber boleh digunakan: nama pakej npm biasa, nama berlingkup seperti @towzai/dsh-memory, rujukan GitHub seperti github:PerryLink/dsh-budget#main, dan laluan setempat dengan link: atau ./. Gunakan bentuk GitHub, kerana anda boleh menggantikan #main dengan commit untuk mendapatkan kod yang sama pada bulan hadapan.
dsh plugin --profile web add "github:PerryLink/dsh-budget#461d478"Lapisan digunakan mengikut urutan tetap: setiap bundle mengikut urutan yang disenaraikan dalam profil, kemudian cordis.patch.yml profil tersebut, seterusnya cordis.patch.yml pada peringkat home, dan akhirnya sebarang overlay --patch. Urutan adalah penting kerana lapisan yang terkemudian boleh mengkonfigurasi semula atau membuang apa yang telah ditetapkan oleh lapisan terdahulu. Jadi, apabila pemalam kelihatan telah dipasang tetapi tidak berfungsi, buka cordis.patch.yml profil tersebut dan semak dua perkara: pastikan blok sisipannya ada, dan tiada lapisan terkemudian yang menyahdayakannya.
Sehingga 17 Ogos 2026, pakej npm @deepseek-ai/dsh berada pada 0.1.0-rc.7, manakala setiap pemalam di bawah mengisytiharkan keserasian dengan 0.1.0-rc.5 hingga 0.1.0-rc.6. Jurang tersebut adalah perkara biasa dalam ekosistem ini, dan ia merupakan sebab lazim mengapa pemalam berhenti dimuatkan: harness bergerak lebih pantas daripada pemalam di sekelilingnya. Naik taraf harness secara sengaja, kemudian uji satu pemalam pada satu masa.
Baca pemalam sebelum anda mempercayainya
Pemalam dsh tidak diasingkan (sandboxed) daripada harness. Ia dimuatkan ke dalam pokok Cordis yang sama, dalam proses yang sama, sebagai pengguna sistem pengendalian yang sama, dengan akses kepada kelayakan model dan pokok kerja yang sama. Memasang satu pemalam adalah lebih hampir kepada menjalankan skrip orang lain dengan sudo berbanding menambah sambungan pelayar. Itu adalah persoalan kepercayaan yang sama yang dibangkitkan oleh pemalam Claude Code, dan jawapannya tetap sama: baca kod tersebut, atau jangan pasang.
Empat perkara untuk disemak, mengikut urutan ini:
- Titik sambungan yang digunakan.
tools/pre-executebermakna ia melihat setiap panggilan alat dan boleh menyekatnya.agent/pre-stepbermakna ia melihat mesej anda.webServer.tapIndexbermakna ia menulis semula halaman yang dihidangkan kepada pelayar anda. Pemalam yang tidak menggunakan mana-mana titik tersebut hanya boleh melakukan perkara yang sangat terhad; pemalam yang menggunakan kesemuanya adalah sempadan keselamatan anda. - Sama ada ia berhubung dengan rangkaian. Cari dalam kod sumber untuk
fetch,http, dan sebarang nama hos yang dikodkan secara keras (hard-coded). Meter kos yang menghubungi pelayan luar bermakna ia menghantar corak penggunaan anda ke suatu tempat. - Sama ada ia membaca kelayakan. Apa-apa sahaja yang menyentuh
credentials.*atau kunci pembekal memerlukan alasan yang dinyatakan dalam README. - Lesen dan tarikh komit terakhir. Pemalam tanpa lesen, yang tidak disentuh selama berbulan-bulan, dalam ekosistem yang berubah setiap minggu, merupakan satu liabiliti.
Kemudian, pasang mengikut komit dan bukannya mengikut cawangan, dan baca blok sisipan yang ditulis oleh pemasang ke dalam cordis.patch.yml. Blok tersebut menamakan ID pemalam dan konfigurasi yang didaftarkannya, yang merupakan penerangan jujur paling ringkas tentang apa yang baru anda tambah. Jauhkan kunci pembekal daripada capaian pemalam di mana harness membenarkannya, selaras dengan menjauhkan rahsia daripada ejen AI.
dsh-budget: bagaimana saya menghalang ejen daripada berbelanja sepanjang malam?
Satu ejen pada VPS berjalan tanpa pengawasan. Itulah tujuan meletakkannya di sana, dan ia juga merupakan risikonya. dsh-budget mengukur token dan anggaran kos bagi setiap model, setiap sesi dan setiap hari, serta menguatkuasakan had terhadap jumlah tersebut.
dsh plugin --profile web add "github:PerryLink/dsh-budget#461d478"Nilai lalainya adalah besar: 10 USD setiap sesi, 50 setiap hari, dan 500 setiap bulan. Nilai ini sesuai untuk pasukan yang mempunyai dana. Pada pelayan peribadi, nilai ini cukup tinggi sehingga gelung yang tidak terkawal akan selesai sebelum had tersebut dicapai, jadi rendahkan nilai tersebut 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
}
]Lajur yang dicadangkan adalah titik permulaan bagi seorang pengendali pada satu mesin, bukan angka yang ditetapkan. Tingkatkan nilainya apabila penggunaan sebenar selama sebulan memberitahu anda untuk berbuat demikian. Had bulanan sebanyak 40 USD dengan had sesi sebanyak 2 akan gagal dengan jelas dan awal, yang merupakan perkara yang anda mahukan semasa anda masih mempelajari keperluan alat tersebut.
- id: budget
config:
budgets:
session: 2
daily: 5
monthly: 40
warnRatio: 0.8
overLimit: blockTetapan yang mengubah cara mesin bertindak adalah overLimit. Nilai lalainya ialah alert, yang mencetak amaran dan terus berbelanja, jadi secara lalai pemalam ini hanyalah papan pemuka. Tetapkannya kepada block dan sistem akan menolak panggilan model seterusnya sebaik sahaja had dicapai, yang bermaksud tugasan sepanjang malam akan berhenti dan tidak terus mengenakan caj sehingga pagi. degrade adalah mod ketiga: ia menukar model kepada model yang lebih murah daripada peta degradation, yang sesuai apabila tugasan mesti diselesaikan tetapi tidak memerlukan model terbaik anda. warnRatio ditetapkan secara lalai kepada 0.8, jadi anda akan diberitahu mengenainya pada 80 peratus daripada had tersebut.
Dua had yang jujur. Kos dikira daripada harga yang anda bekalkan: prices kosong secara lalai dan defaultPrice menggunakan nilai lalai 1.0 USD bagi setiap juta token input dan 3.0 bagi setiap juta output. Masukkan angka sebenar untuk model anda atau papan pemuka tersebut hanyalah tekaan yang disamar sebagai ukuran. Kedua, pemalam ini mengagregatkan proses yang sedang berjalan daripada aliran acara sesi, jadi jumlah tersebut akan ditetapkan semula apabila sistem dimulakan semula. Gelung ranap, atau penyelia yang memulakan semula dsh, akan menetapkan semula had harian. Anggap dsh-budget sebagai penghadang terhadap tugasan anda sendiri dan kekalkan had perbelanjaan pada akaun pembekal sebagai siling sebenar, yang merupakan hujah yang lebih luas dalam mengawal kos ejen AI pada VPS.
Dari hari ke hari, anda menggunakan /budget untuk gambaran keseluruhan, /budget models untuk pecahan setiap model, dan /budget unblock <scope> untuk menarik balik sekatan sebaik sahaja anda memutuskan untuk meneruskan.
dsh-permission-rules: panggilan alat yang manakah tidak boleh dijalankan?
dsh-permission-rules meletakkan peraturan deklaratif pada waterfall tools/pre-execute, supaya sesuatu peraturan dinilai sebelum alat dijalankan. Terdapat tiga tindakan. allow membenarkan panggilan tersebut diteruskan, deny menyekatnya dan mengembalikan sebab yang boleh dibaca oleh model, dan ask menghalakannya ke saluran kelulusan rasmi.
dsh plugin --profile web add "github:PerryLink/dsh-permission-rules#b30b4fb"Peraturan disimpan dalam .dsh/rules.yaml relatif kepada direktori kerja sesi, dengan fallbackPath global dan searchUp pilihan untuk menyemak ke arah root sistem fail. Pemadanan meliputi glob nama alat, glob kunci dan nilai parameter, glob laluan relatif ruang kerja, pemilih ejen seperti main atau subagent, dan sasaran rangkaian.
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"Penilaian adalah berdasarkan padanan pertama yang ditemui, jadi allow yang luas berhampiran bahagian atas akan membatalkan setiap peraturan yang lebih khusus di bawahnya secara senyap. Tulis peraturan penafian terlebih dahulu dan peraturan kebenaran di bahagian akhir. Glob nama alat meliputi mcp__*, iaitu cara anda mengawal alat yang datang daripada pelayan model context protocol (MCP) dan bukannya daripada harness itu sendiri, dan perkara ini penting sebaik sahaja anda menjalankan pelayan MCP pada VPS.
Satu tingkah laku yang perlu dirancang: ask memerlukan penjawab. Pada profil headless, mungkin tiada sesiapa yang memantau, jadi peraturan ask boleh menahan pelaksanaan sehingga seseorang muncul. Gunakan deny untuk sebarang perkara yang anda tidak akan luluskan, kekalkan ask untuk profil yang anda gunakan, dan jika anda mahu kelulusan berfungsi tanpa pengawasan, anda memerlukan laluan penjawab sebenar, yang merupakan topik bagi mengawal tindakan ejen AI dengan kelulusan.
dsh-defend: bagaimana dengan suntikan prompt dan rahsia yang bocor?
dsh-defend melakukan imbasan pada tiga titik: mesej masuk pada agent/pre-step, argumen alat pada tools/pre-execute termasuk pengawal pemadaman destruktif, dan hasil alat pada tools/post-execute. Titik terakhir adalah yang paling penting, kerana di sinilah kandungan yang diambil dari halaman web diperiksa sebelum model bertindak ke atasnya.
dsh plugin --profile web add "github:PerryLink/dsh-defend#7ba3427"Tetapan lalai adalah berhati-hati dan bukannya ketat: detection.injectionAction, detection.jailbreakAction dan detection.secretAction semuanya adalah ask, manakala detection.secretBlockCritical adalah true, jadi rahsia kritikal akan disekat walau apa pun tetapan lain. Pada mesin tanpa pengawasan, tukar tindakan yang anda pentingkan kepada block, kerana ask tanpa sesiapa untuk ditanya bukanlah satu keputusan.
Reka bentuk audit wajar dipuji. Peristiwa defend/detection merekodkan id peraturan, keluarga, kategori, tahap keterukan, keputusan dan fakta imbasan, dan tidak sekali-kali merekodkan teks yang dipadankan; rahsia hanya direkodkan mengikut jenis sahaja. Jadi, mendayakan log audit tidak mencipta salinan kedua bagi kelayakan yang anda cuba lindungi.
Fahami dengan jelas apa yang anda perolehi daripada ini. Pengesanan adalah berasaskan peraturan, dan README menyatakan dengan jelas bahawa frasa baharu dan serangan berbilang langkah boleh melepasi sistem ini. Ia mengurangkan kadar serangan yang jelas. Ia tidak menjadikan ejen selamat untuk dihalakan kepada kandungan yang tidak dipercayai, jadi kekalkan peraturan kebenaran di bawahnya.
dsh-memory: apakah yang diingati oleh ejen pada hari esok?
Dua pemalam berbeza dipanggil dsh-memory, perkara yang perlu diketahui sebelum anda menaip arahan pemasangan. Pasang melalui sumber yang jelas supaya anda mendapat versi yang anda baca.
Versi yang saya akan pasang pada pelayan kecil ialah binaan SQLite. Ia mendaftar sebagai memory, menyimpan satu fail di $DSH_HOME/memory/memory.db yang dikongsi merentas profil, serta mendedahkan memory_write, memory_search dan memory_forget. Carian adalah berasaskan kata kunci ke atas teks dan tag yang disimpan. Tiada perkhidmatan embedding, tiada API key, dan tiada proses tambahan.
dsh plugin --profile web add "github:ben7am1n/dsh-memory#def7c6a"Konfigurasi yang akan anda ubah adalah kecil: path untuk fail pangkalan data, promptRecentCount (lalai 10) untuk bilangan memori yang tidak disemat (unpinned) yang disuntik, dan promptMaxChars (lalai 2000) untuk bajet pemaparan. Ia bergantung pada node:sqlite, yang mana Node 22 dan 24 masih menandakannya sebagai eksperimental, jadi naik taraf Node adalah sesuatu yang perlu diuji dan bukannya diandaikan berfungsi.
Berikut adalah perkara yang sebenarnya diubah oleh memori pada mesin: memori yang disuntik akan disertakan dalam system prompt pada setiap giliran. Bajet 2000 aksara bermakna beberapa ratus token input tambahan pada setiap permintaan, selama-lamanya. Itu adalah kos sebenar pada bil anda, dan itulah sebabnya dsh-budget perlu berada pada kotak sebelum dsh-memory. Pastikan promptMaxChars sentiasa terhad dan lakukan pemangkasan dengan memory_forget daripada membiarkan fail tersebut terus membesar.
Binaan alternatif menyimpan memori dalam fail YAML dan melakukan carian embedding dengan suntikan prompt automatik, dipasang dengan dsh plugin --profile web add github:towzai/dsh-memory. Ia memerlukan instans ollama tempatan dan model embedding, qwen3-embedding:0.6b secara lalai, yang boleh ditindih dengan DSH_MEMORY_EMBED_MODEL. Ingatan semantik adalah lebih baik daripada ingatan kata kunci. Ia juga bermakna perkhidmatan kedua dan set pemberat model (model weights) perlu berada pada pelayan yang sama, yang mana pada pelan kecil, ia mengambil memori daripada kerja yang anda sewa pelayan tersebut untuk lakukan. Pilih versi ini apabila anda mempunyai RAM yang mencukupi. Pertukaran umum antara kualiti ingatan dan kos sumber yang digunakan diliputi dalam memori tempatan untuk ejen.
dsh-web-lan-access: patutkah UI web mendengar di luar loopback?
npx @deepseek-ai/dsh web menyediakan antara muka pada 127.0.0.1:3080. Pelayar hanya mendedahkan crypto.randomUUID() dalam konteks selamat, jadi memuatkan halaman yang sama melalui HTTP biasa daripada mesin lain akan gagal. dsh-web-lan-access membetulkannya dengan menggunakan webServer.tapIndex untuk menyuntik polyfill kecil, dan ia menukar binding pelayan kepada 0.0.0.0.
Baca amaran tersendiri sebelum anda memasangnya. Binding 0.0.0.0 menjadikan ejen boleh dicapai tanpa pengesahan oleh sesiapa sahaja dalam rangkaian kawasan tempatan (LAN) yang sama, dan pada pelayan dengan alamat IP awam, ini bermakna seluruh internet. Senarai pendek kaedah sensitif (settings.*, credentials.*, llm.discoverModels) kekal terikat pada loopback dan mengembalikan 403 daripada asal jauh, yang mengehadkan kerosakan. Ia tidak menghalangnya, kerana permukaan panggilan alat masih terbuka kepada sesiapa sahaja yang menemui port tersebut.
Kebanyakan masa anda tidak memerlukan pemalam ini langsung. Sebaliknya, forward port melalui SSH.
ssh -N -L 3080:127.0.0.1:3080 you@your-serverKemudian buka http://127.0.0.1:3080 dalam pelayar tempatan anda. harness terus mendengar hanya pada loopback, jadi tiada apa yang terdedah, dan kerana pelayar menganggap 127.0.0.1 sebagai asal yang selamat, crypto.randomUUID() tersedia dan tiada polyfill diperlukan. Satu arahan, tiada pemalam, tiada permukaan serangan baharu.
Pasang pemalam hanya apabila forward tidak mencukupi, contohnya apabila telefon dalam rangkaian yang sama perlu mencapai UI. Jika anda berbuat demikian, bind ia di belakang antara muka rangkaian peribadi, kekalkan peraturan firewall yang membenarkan hanya antara muka tersebut, dan senaraikan nama yang akan anda gunakan di bawah trustedHosts pada entri web-runtime. Untuk akses berbilang pengguna yang sebenar, terdapat dsh-passwords, yang menambah kebenaran subpengguna, token setiap jam bagi setiap subpengguna dan kuota masa harian, sijil TLS (transport layer security) automatik melalui Let's Encrypt, dan log audit yang disulitkan. Nilai ia sebagai platform dan bukannya pemalam: ia memerlukan port 80 dan 443, ia menghantar pemasang tersendiri, dan laluan pantas yang didokumenkan menyalurkan skrip shell daripada rangkaian terus ke dalam bash. Utamakan npm install -g dsh-passwords diikuti dengan dsh-passwords install, supaya kod tersebut berada pada cakera di mana anda boleh membacanya sebelum ia dijalankan.
Cara membuang pemalam dengan bersih
Proses nyahpasang melibatkan dua langkah, namun ramai pengguna melangkau langkah kedua.
dsh plugin --profile web remove dsh-budget
dsh plugin --profile web listlist tidak sepatutnya memaparkannya lagi. Kemudian, buka $DSH_HOME/profiles/web/cordis.patch.yml dan padamkan sebarang blok sisipan (insert block) yang menamakan pemalam tersebut, kerana entri itulah yang memuatkannya ke dalam pepohon (tree). Mulakan semula harness supaya pepohon dibina semula; pemalam yang telah dimuatkan akan kekal dimuatkan sehingga anda berbuat demikian. Akhir sekali, ingat bahawa data kekal wujud walaupun kod telah dibuang. $DSH_HOME/memory/memory.db dan .dsh/rules.yaml akan terus ada selepas nyahpasang. Padamkannya secara manual jika tujuan anda adalah untuk membuang data tersebut.
Apa yang saya baca, dan bila
Setiap rujukan di sini adalah commit, bukan branch, kerana main akan menjadi kod yang berbeza apabila anda membaca ini. Saya membaca kesemuanya pada 17 Ogos 2026, dan harness itu sendiri berada pada 0.1.0-rc.7 di npm pada hari tersebut.
Commit tepat di sebalik senarai pendek ini
- Senarai pemalam komuniti pada
f2918fb, 17 Ogos 2026. Dipautkan sekali sahaja dengan sengaja. Ia adalah direktori, dan direktori bukanlah satu cadangan. - dsh-budget pada
461d478, 17 Ogos 2026. Apache 2.0. Mengisytiharkan dsh0.1.0-rc.6, Node 22.19 atau 24 ke atas. - dsh-permission-rules pada
b30b4fb, 17 Ogos 2026. Apache 2.0. Mengisytiharkan dsh0.1.0-rc.5hingga0.1.0-rc.6. - dsh-defend pada
7ba3427, 17 Ogos 2026. Apache 2.0. Mengisytiharkan dsh0.1.0-rc.6. - dsh-memory pada
def7c6a, 13 Ogos 2026. MIT. Binaan SQLite. - dsh-web-lan-access pada
e27e909, 16 Ogos 2026. MIT.
Semak semula pin tersebut sebelum anda menyalin sesuatu arahan. Dalam ekosistem pratonton pembangun, nombor versi yang disertakan dengan tarikh adalah satu-satunya jenis yang membawa makna.
FAQ
Plugin DeepSeek Harness manakah yang perlu saya pasang dahulu pada VPS?
Pasang dsh-budget dan dsh-permission-rules sebelum perkara lain. Belanjawan dengan overLimit: block menghalang proses yang tidak dipantau daripada menghabiskan dana sepanjang malam, dan fail .dsh/rules.yaml menghalang panggilan alat yang tidak akan anda luluskan. Tambahkan dsh-defend sebaik sahaja ejen membaca apa-apa daripada web awam, dan dsh-memory apabila anda mendapati diri anda menampal konteks yang sama ke dalam setiap sesi. Abaikan tema dan status chips: ia menambah kod yang berjalan dengan keistimewaan ejen anda tanpa mengubah fungsi mesin.
Adakah plugin dsh diasingkan (sandboxed) daripada harness?
Tidak. Plugin dimuatkan ke dalam Cordis tree yang sama dengan harness, dalam proses yang sama, sebagai pengguna sistem pengendalian yang sama, dengan kelayakan model yang sama dan working tree yang sama. Plugin yang menyambung ke tools/pre-execute dapat melihat dan menyekat setiap panggilan alat; plugin yang menyambung ke agent/pre-step dapat melihat mesej anda. Oleh itu, baca kod sumber, semak lesen dan tarikh commit terakhir, serta pasang mengikut commit dan bukannya mengikut branch supaya kod tersebut tidak berubah tanpa pengetahuan anda.
Adakah dsh-budget benar-benar akan menghentikan ejen, atau hanya memberi amaran kepada saya?
Itu bergantung pada overLimit. Tetapan lalai ialah alert, yang memberi amaran pada warnRatio dan terus membenarkan perbelanjaan. block menolak panggilan model selanjutnya sebaik sahaja had dicapai, dan /budget unblock <scope> menarik balik had tersebut apabila anda memilih untuk meneruskan. degrade bertukar kepada model yang lebih murah daripada peta degradation. Satu had yang penting: jumlah dikumpulkan dalam proses yang sedang berjalan daripada aliran acara sesi, jadi memulakan semula harness akan menetapkan semula jumlah tersebut, dan gelung restart akan memintas had harian. Kekalkan had perbelanjaan pada akaun penyedia sebagai siling sebenar.
Bagaimanakah cara untuk membuang plugin dsh sepenuhnya?
Jalankan dsh plugin --profile web remove <package-name>, sahkan dengan dsh plugin --profile web list, kemudian buka $DSH_HOME/profiles/web/cordis.patch.yml dan padamkan mana-mana blok sisipan yang tertinggal untuk plugin tersebut, kerana entri itulah yang memuatkannya. Mulakan semula harness supaya pokok plugin dibina semula. Data yang ditulis oleh plugin kekal pada cakera: $DSH_HOME/memory/memory.db dan .dsh/rules.yaml kedua-duanya kekal selepas penyahpasangan sehingga anda memadamkannya sendiri.
Adakah selamat untuk mendedahkan UI web dsh melalui rangkaian?
Tidak secara sendirian. dsh web mendengar pada 127.0.0.1:3080, dan dsh-web-lan-access menukar binding tersebut kepada 0.0.0.0. README-nya sendiri menyatakan bahawa ini menjadikan ejen boleh dicapai tanpa pengesahan oleh sesiapa sahaja dalam rangkaian yang sama, dan pada alamat IP awam, ini bermakna internet. Beberapa kaedah (settings.*, credentials.*, llm.discoverModels) kekal terikat pada loopback dan mengembalikan 403 daripada asal jauh, yang mengurangkan kerosakan tanpa menghentikannya sepenuhnya. Gunakan SSH port forward, ssh -N -L 3080:127.0.0.1:3080 you@your-server, atau letakkan port di sebalik antara muka rangkaian peribadi berserta peraturan firewall, dan tambahkan pengesahan sebenar sebelum apa-apa boleh dicapai dari luar.