Lewati ke konten utama

Konfigurasi Cordis

Mesin Cordis/DSH tertanam diatur melalui dua dokumen dan variabel lingkungan. Secara default, kedua dokumen berada di samping backend; LIBRE_CORDIS_CONFIG dan LIBRE_CORDIS_SETTINGS memindahkan lokasinya.

DokumenPemilikBentukTujuan
cordis.patch.ymlCordis LoaderArray YAML tingkat teratasBaris plugin yang memasang mesin
cordis.config.ymlHost Libre WebUIPemetaan YAMLPenyedia, sumber kredensial, dan kontrol fitur

Dua dokumen diperlukan karena pembawa pohon Cordis Include membaca komposisi sendiri dan menolak berkas yang bukan array tingkat teratas. Pengaturan host tidak dapat memakai berkas yang sama.

Mengaktifkan

Pilihan aktivasi Mesin Cordis dalam Pengaturan, di sebelah pilihan Agen.

Administrator mengaktifkannya di Pengaturan → Manajemen Pengguna → Akses dan kebijakan → Mesin Cordis. Perubahan langsung berlaku: aktivasi memulai mesin pada permintaan berikutnya, sedangkan penonaktifan membersihkannya. Tidak perlu restart.

Dua sumber tingkat penerapan dapat mengunci nilai. Keduanya menonaktifkan kontrol UI alih-alih ditimpa diam-diam:

SumberEfek
Variabel LIBRE_CORDIS_ENABLEDtrue/false mengunci fitur pada penerapan
features.enabled dalam cordis.config.ymlNilai eksplisit mengunci pilihan; tanpa kunci, administrator memilih

Mesin juga membutuhkan komposisi. Mulai dengan contoh bawaan:

cd backend
cp cordis.patch.example.yml cordis.patch.yml
cp cordis.config.example.yml cordis.config.yml

Host membaca cordis.patch.yml, menggabungkan default-nya ke baris jembatan, lalu menulis <DATA_DIR>/cordis-runtime/cordis.composed.yml. Berkas hasil ini dapat dibuat ulang dan tidak boleh diedit. Sumber otoritatif adalah cordis.patch.yml milik operator.

cordis.config.yml

trace: false

model:
provider: libre-webui
# Empty selects the authenticated caller's configured default/fallback route.
model: ''

features:
# Omit enabled to let the administrator use the Settings toggle.
streaming: true
tools: true
persistence: true

# Optional absolute paths; defaults live under Libre WebUI's data directory.
# workspacePath: /absolute/path/to/workspace
# sessionStorePath: /absolute/path/to/sessions

Kunci tingkat teratas

KunciTipeDefaultArti
tracebooleanfalseMencatat semua transisi aktivasi Cordis
modelpemetaanPemilihan adaptor model; lihat di bawah
featurespemetaanKontrol kemampuan; lihat di bawah

features

KunciTipeDefaultArti
enabledbooleanfalseMemasang mesin. Saat false semua rute mengembalikan 503
streamingbooleantrueMenerima giliran dengan keluaran model yang dialirkan
toolsbooleantrueMengizinkan alat mesin dan menampilkan registrinya
persistencebooleantrueMengaktifkan persistensi JSONL dan mewajibkan layanannya agar sesi bertahan setelah restart

features.enabled adalah satu-satunya kontrol yang perlu ditetapkan untuk mengaktifkan jembatan. Kunci enabled tingkat teratas tidak dibaca. Semua kontrol berada dalam features agar fitur aktif dapat diperiksa di satu tempat.

model

KunciTipeDefaultArti
providerstringlibre-webuilibre-webui, deepseek, pi-ai, atau none
apiKeyEnvstringOPENAI_API_KEYNama variabel lingkungan yang menyimpan kunci
routestringlibre-webuiRute penyedia yang disebut mesin dalam permintaan
modelstring''ID model yang diminta; tetapkan untuk rute manual
baseUrlstring''Override endpoint; kosong memakai default adaptor
providerspemetaan{}Rute penyedia manual dengan nama rute sebagai kunci

Sumber model mesin

Mesin tidak memiliki pengaturan penyedia sendiri. Ia memanggil penyedia yang sudah tersedia di Libre WebUI melalui rute libre-webui, yang didaftarkan baris libre-webui-llm-adapter. Model yang dapat dipakai chat di UI juga dapat digunakan mesin. Unduh model melalui UI, lalu mesin melihatnya dengan kredensial dan endpoint yang sudah diatur.

Tetapkan model.provider: libre-webui untuk memakainya. Ini default bawaan; kredensial dan endpoint tetap dalam pengaturan Libre WebUI yang sudah ada.

model menentukan model yang diminta. Nilai kosong berarti memakai default aplikasi. Jika tidak ada default, mesin mengambil model chat pertama yang dilaporkan lapisan penyedia, dengan prioritas model lokal yang tersedia. Model embeddings dikecualikan. Rute internal mempertahankan penyedia dan model: lwui:ollama:<encoded-model> atau lwui:plugin:<encoded-provider>:<encoded-model>. Nama sama atau gangguan Ollama tidak akan mengalihkan permintaan lokal ke penyedia jarak jauh. Pilihan eksplisit yang tidak tersedia gagal, tanpa penggantian diam-diam.

model kosong hanya aman pada rute libre-webui. Rute paket penyedia memerlukan model eksplisit. dsh-llm-pi-ai menyelesaikan katalog untuk kueri daftar, tetapi tidak beralih ke entri pertama. Rute manual tanpa model tidak dapat menjawab giliran dan gagal dengan:

provider "<route>" resolves no models; the installed catalog does not describe
this route, so its models must be listed in configuration

Isi model dengan ID dalam daftar models rute tersebut. Contoh bawaan memasangkan route: ollama dengan model: llama3.2, sesuai entri llama3.2 yang dideklarasikan.

provider memilih paket adaptor yang dipasang:

  • libre-webui melayani mesin melalui lapisan penyedia penerapan sendiri. Ini mode yang didukung dan menjadi default.
  • none memulai mesin tanpa akses model. Daftar alat dan sesi bekerja, tetapi giliran tidak dapat dijawab. Berguna untuk menguji komposisi.
  • deepseek dan pi-ai memasang paket penyedia langsung. Paket ini bukan dependensi backend: membawa semua SDK menambah 59 paket transitif, termasuk paket usang untuk fitur yang tidak dipakai mesin. Pasang paket pilihan lalu tambahkan barisnya. Host menyebutkan nama paket jika tidak tersedia.

Rute penyedia dijelaskan oleh:

KolomArti
displayNameNama yang mudah dibaca
apiProtokol komunikasi, misalnya openai-completions
baseURLDasar endpoint
apiKeyEnvVariabel lingkungan yang menyimpan kunci
modelsDaftar model; setiap entri menerima id, name, contextWindow, maxTokens

Kredensial tidak pernah ditulis ke kedua dokumen. apiKeyEnv menyebut variabel lingkungan yang dibaca adaptor per permintaan, sehingga rotasi kunci tidak membutuhkan restart.

cordis.patch.yml

Array tingkat teratas yang berisi entri Cordis Loader. Contoh bawaan memasang sembilan baris dan merupakan titik awal yang dianjurkan.

- id: llm
name: '@deepseek-ai/dsh-llm'

- id: session
name: '@deepseek-ai/dsh-session'

- id: session-projection
name: '@deepseek-ai/dsh-session-projection'

- id: session-persistence
name: '@deepseek-ai/dsh-session-persistence-jsonl'
config:
# The host supplies the resolved sessionStorePath.

- id: system-prompt
name: '@deepseek-ai/dsh-system-prompt'
config:
personaPrefix: ''

- id: tools
name: '@deepseek-ai/dsh-tools'

- id: agent
name: '@deepseek-ai/dsh-agent'

- id: agent-loop
name: '@deepseek-ai/dsh-agent-loop'
config:
agents: []

- id: libre-webui-bridge
name: './dist/cordis/dsh/engine-plugin.js'

Kolom entri

KolomWajibArti
idtidakID tetap untuk menargetkan baris; diturunkan dari name jika tidak ada
nameyaPenentu modul yang diimpor Loader; harus string literal
configtidakPengaturan plugin; ekspresi !!js diizinkan
disabledtidakMelewati baris tanpa menghapusnya; !!js diizinkan
injecttidakLayanan wajib tambahan atau pengaturan intersepsi baris

name diimpor langsung oleh Loader dan tidak dievaluasi, sehingga tidak boleh berupa !!js. Nilai config boleh menggunakan !!js; ekspresi dievaluasi kemudian dalam fiber baris dengan konteks Loader. process.env dan ctx.get(...) bekerja, sedangkan import.meta tidak.

Penentu relatif diselesaikan dari direktori berkas komposisi itu sendiri. Penentu paket melewati paket backend, sehingga @deepseek-ai/dsh-tools menemukan salinan dalam backend/node_modules.

Urutan baris tidak menentukan urutan pemuatan. Cordis mengaktifkan baris saat layanan yang disebutkan tersedia; pengelompokan di atas hanya untuk pembaca.

Baris wajib

Mesin yang menjawab chat memerlukan semuanya:

BarisMenyediakanDibutuhkan oleh
dsh-llmllmloop agen
dsh-sessionsessionsloop agen, jembatan
dsh-session-projectionsessionProjectionsloop agen
dsh-system-promptsystemPromptalat, loop agen
dsh-toolstoolsloop agen, jembatan
dsh-agentagentsjembatan
dsh-agent-loopdriver agenjawaban giliran
baris jembatanlibreDshEnginesemua rute

Memasang plugin alat, misalnya @deepseek-ai/dsh-fs-sandbox dan @deepseek-ai/dsh-tool-fs, membuat GET /api/cordis/tools mengembalikan isi. Registri tanpa plugin alat memang boleh kosong.

Variabel lingkungan

Setiap pengaturan memiliki override lingkungan. Variabel mengalahkan dokumen, dan dokumen mengalahkan default bawaan.

VariabelMenggantiDefault
LIBRE_CORDIS_ENABLEDfeatures.enabledfalse
LIBRE_CORDIS_STREAMINGfeatures.streamingtrue
LIBRE_CORDIS_TOOLSfeatures.toolstrue
LIBRE_CORDIS_PERSISTENCEfeatures.persistencetrue
LIBRE_CORDIS_TRACEtracefalse
LIBRE_CORDIS_MODEL_PROVIDERmodel.providerlibre-webui
LIBRE_CORDIS_MODEL_ROUTEmodel.routelibre-webui
LIBRE_CORDIS_MODELmodel.model''
LIBRE_CORDIS_API_KEY_ENVmodel.apiKeyEnvOPENAI_API_KEY
LIBRE_CORDIS_BASE_URLmodel.baseUrl''
LIBRE_CORDIS_CONFIGJalur dokumen komposisi<cwd>/cordis.patch.yml
LIBRE_CORDIS_SETTINGSJalur dokumen pengaturandi samping dokumen komposisi
LIBRE_CORDIS_WORKSPACERuang kerja default mesin<DATA_DIR>/cordis-workspace
LIBRE_CORDIS_SESSION_STOREDirektori sesi persisten<DATA_DIR>/cordis-sessions

Variabel boolean menerima 1/true/yes/on dan 0/false/no/off. Nilai yang tidak dikenali kembali ke dokumen tanpa menebak.

LIBRE_CORDIS_SESSION_STORE dan LIBRE_CORDIS_WORKSPACE juga dibaca ekspresi !!js bawaan. Karena itu host mengekspornya sebelum pohon dipasang.

Contoh lengkap

Ollama lokal, sepenuhnya offline

features:
enabled: true
model:
provider: pi-ai
route: ollama
model: llama3.2
apiKeyEnv: OLLAMA_API_KEY
providers:
ollama:
api: openai-completions
baseURL: http://127.0.0.1:11434/v1
apiKeyEnv: OLLAMA_API_KEY
models:
- id: llama3.2
contextWindow: 131072
maxTokens: 4096

Ollama mengabaikan kunci, tetapi klien OpenAI mewajibkan sebuah nilai. Ekspor OLLAMA_API_KEY=ollama untuk memenuhi syarat tanpa membuat rahasia. Tidak ada data yang meninggalkan komputer.

Gateway yang kompatibel dengan OpenAI

features:
enabled: true
model:
provider: pi-ai
route: gateway
model: acme-large
apiKeyEnv: ACME_GATEWAY_API_KEY
providers:
gateway:
displayName: Acme Gateway
api: openai-completions
baseURL: https://gateway.acme.example/v1
apiKeyEnv: ACME_GATEWAY_API_KEY
models:
- id: acme-large
contextWindow: 65536
maxTokens: 4096

DeepSeek resmi

features:
enabled: true
model:
provider: deepseek
route: deepseek
apiKeyEnv: DEEPSEEK_API_KEY

Tetapkan DEEPSEEK_API_KEY pada lingkungan backend.

Tanpa penyedia, hanya alat

features:
enabled: true
model:
provider: none

Mesin dimulai, sesi dapat dibuat, dan GET /api/cordis/tools menampilkan plugin alat. Mengirim pesan gagal karena tidak ada adaptor yang dapat melayaninya.

Catatan migrasi

Jembatan Cordis adalah fitur tambahan. Default-nya nonaktif dan tidak mengubah perilaku yang ada selama nonaktif.

Memperbarui penerapan yang ada. Tidak perlu tindakan. Contoh dikirim sebagai cordis.patch.example.yml dan cordis.config.example.yml; keduanya baru dipakai setelah disalin dan fitur diaktifkan. Tidak ada migrasi, pembuatan tabel, atau perubahan direktori data lama.

Aktivasi pertama. Salin kedua contoh, tetapkan features.enabled: true, dan tidak perlu memasang apa pun lagi. Paket mesin sudah menjadi dependensi backend. Permintaan pertama membuat <DATA_DIR>/cordis-workspace, <DATA_DIR>/cordis-sessions, dan <DATA_DIR>/cordis-runtime. Semuanya berada di direktori data yang sama, sehingga tercakup oleh pencadangan dan pemulihan direktori itu.

Memperbarui mesin. Versi yang diselesaikan dicatat dalam package-lock.json; backend/package.json menyatakan rentang kompatibel alpha. Perbarui secara sengaja dan uji kontrak penyedia serta sesi setelah npm install. Peer dependency baru dilaporkan npm saat instalasi, bukan saat pemasangan. Format model dan sesi dimiliki DSH; perubahan format merupakan catatan rilis DSH, bukan migrasi Libre WebUI.

Rollback. Tetapkan features.enabled: false dan restart, atau hapus baris jembatan dari cordis.patch.yml. Layanan libreDshEngine ditarik, pendengarnya dilepas, dan agen yang dibuat dibersihkan. Berkas sesi tetap sebagai data; hapus direktori sessionStorePath untuk mengosongkan ruang. Menghapus paket bersifat opsional dan tidak mengganggu fitur lain.

Penerapan Chat dan Work yang ada. Chat mendapat pilihan DeepSeek Harness khusus administrator dengan sesi sementara dan percakapan yang ada. Work mendapat pilihan mesin terpisah dengan driver DSH terisolasi serta sandbox dan persetujuan Work. Pilihan model lama tetap berfungsi seperti biasa.

Dengan adaptor standar libre-webui, pemilih Agen Chat berisi pilihan penyedia-model DSH eksplisit dan profil dasar. Pilihan eksplisit mempertahankan identitas penyedia lengkap; profil dasar memakai default komposisi berjalan. Judul dan ringkasan penalaran memanggil penyedia langsung tanpa alat agen. Rute adaptor khusus hanya mempertahankan entri dasar Chat dan memerlukan model tugas Ollama atau plugin terpisah untuk permintaan tambahan tersebut.

DSH menghormati sakelar Ollama administrator. Jika dinonaktifkan, modelnya tidak didaftarkan maupun diperiksa; pilihan Ollama eksplisit gagal tanpa berganti penyedia. Nama model tanpa kualifikasi penyedia yang ditetapkan operator juga memerlukan katalog Ollama untuk diselesaikan dengan aman. Gunakan lwui:plugin:<plugin>:<model> untuk penerapan khusus plugin.

Batas operasional

  • Mesin host dan Chat hanya untuk administrator dan solo. Halaman mesin adalah konsol bersama dengan JSONL lokal dan tidak dapat dipasang dalam team. Work dalam sandbox memakai repositori SQL yang sudah ada.
  • Panggilan model memakai pemanggil terautentikasi. Giliran interaktif memakai kredensial dan model default administrator tersebut. Komposisi noninteraktif tepercaya dapat menetapkan LIBRE_CORDIS_USER ke ID administrator aktif. Tidak ada pemilihan administrator tertua secara diam-diam.
  • Alat berkas host dibatasi ruang kerja. Baca dan tulis memeriksa target kanonik; sesi tidak dapat memilih direktori di luar akar. Pembatasan perubahan DSH tetap berlaku. Plugin tambahan operator adalah kode server tepercaya.
  • Alat host mengikuti kebijakan DSH. Halaman mesin menyediakan mode baca/tulis per sesi dan kartu persetujuan sekali. Kontrol itu tidak melewati batas ruang. Chat tanpa UI menolak persetujuan yang tidak dapat ditampilkan. Driver Work memakai persetujuan dan isolasi kontainernya tanpa alat berkas host.
  • Stream berisi teks langsung dan penalaran terbuka. Pesan persisten menjaga percakapan selesai tanpa mengirim teks langsung dua kali.
  • Restart dan penghapusan memakai sesi tersimpan. Sesi kosong maupun selesai bertahan. Menghapus sesi JSONL buatan jembatan menghentikan penulisnya dan menghapus artefak. Persistensi lain memerlukan adaptor penghapusan yang sesuai.
  • Log lama yang rusak perlu perbaikan eksplisit. Versi lama menulis pesan tanpa ID wajib. Pembaca ketat menolak log, bukan membuangnya. Ikuti Pemecahan masalah.
  • Judul diturunkan secara lokal. Ringkasan menggunakan pesan manusia pertama sebagai judul singkat; sesi kosong tidak memiliki judul turunan.

Menghubungkan model dari instans DSH yang berjalan

Plugin opsional dsh-native-provider menyediakan model dan koneksi yang sudah dikonfigurasi di instans DSH lain, misalnya aplikasi web lokal pada port 3080. Pasang dalam profil yang sudah digunakan. Ia hanya memanggil ctx.llm: kunci tetap di DSH, dan koneksi tidak dapat membuat sesi, menjalankan agen, membaca lampiran native, atau menjalankan alat native.

Kedua proses harus berjalan pada host Unix dan akun OS yang sama. Soket Unix dikonfigurasi secara eksplisit; direktori fisiknya dimiliki akun itu dengan mode 0700, sedangkan soket menggunakan 0600. Tidak ada listener TCP tambahan, dan autentikasi browser DSH tidak digunakan ulang atau dilemahkan. Windows dan host DSH jarak jauh tidak didukung.

Akun OS adalah batas akses lokal. Proses lain dengan akun yang sama juga dapat memakai soket. Koneksi tidak memberikan kredensial native terpisah atau isolasi antar-aplikasi yang berbagi akun.

Memasang plugin mandiri

Di DSH → Plugins → Add plugin, tempel URL repositori publik ini dalam Package name or address, lalu klik Install:

https://github.com/libre-webui/dsh-native-provider

Aktifkan komponen saat DSH meminta. Paket publik versi 0.1.1, berlisensi Apache-2.0, menyertakan runtime siap pakai dan patch bundle. Tidak perlu build lokal, skrip instalasi, atau dependensi npm runtime. Nama @libre-webui/dsh-native-provider tidak dipublikasikan di npm; gunakan URL GitHub dalam dialog.

Bundle memilih <DSH home>/lwui-provider/llm.sock, biasanya $HOME/.dsh/lwui-provider/llm.sock. DSH_HOME yang diatur memiliki prioritas. Direktori privat dibuat jika belum ada. Gunakan satu jembatan aktif per home DSH, atau ganti jalur soket dalam cordis.patch.yml pengguna untuk profil tambahan. Jalur lengkap harus paling panjang 100 byte UTF-8 dan tidak memiliki komponen symlink. Panduan paket mandiri menjelaskan override.

Padanan CLI opsional:

dsh plugin --profile web add https://github.com/libre-webui/dsh-native-provider

Ganti web jika instans Anda memakai profil lain. Restart profil setelah instalasi CLI. Instalasi melalui UI aktif dapat langsung mengaktifkan plugin, tetapi ikuti pemberitahuan restart dari DSH. Tidak perlu mengubah sumber native atau menyalin kunci penyedia.

Menyiapkan bundle dari Libre WebUI

Libre WebUI juga menyediakan skrip persiapan. Dari checkout sumber, build backend dan siapkan direktori keluaran baru:

npm run build:backend
node scripts/prepare-dsh-provider.mjs /absolute/dsh-provider-bundle /absolute/private-directory/provider.sock
dsh plugin --profile web add /absolute/dsh-provider-bundle

Distribusi npm sudah menyertakan backend terkompilasi dan skrip. Jalankan dua perintah terakhir dari direktori instalasi tanpa langkah build, lalu restart profil DSH terpilih. Kedua cara menolak direktori keluaran yang sudah ada dan menyertakan metadata, lisensi, serta catatan instalasi.

Menghubungkan Libre WebUI

Arahkan cordis.config.yml Libre WebUI ke jalur soket absolut yang sama. Untuk default bundle publik, ganti /absolute/home dengan home sebenarnya:

nativeProvider:
socketPath: /absolute/home/.dsh/lwui-provider/llm.sock

Atau tetapkan LIBRE_DSH_PROVIDER_SOCKET ke jalur absolut itu. Nilai kosong menonaktifkan koneksi meskipun dokumen menyebut jalur. Aktifkan Mesin Cordis di LWUI. Administrator aktif dapat memilih model native pada mesin DeepSeek Harness Work, halaman mesin, dan grup Agen Chat. Chat juga membutuhkan Model agen CLI. Work menyimpan model serta ID penyedia asli dengan providerType: dsh; tugas DSH lama berbasis LWUI mempertahankan identitas dan penanda mesinnya.

Daftar model native dibaca langsung. Perubahan penyedia atau kredensial membatalkan generasi koneksi dan panggilan yang sedang berjalan. Soket, model, atau penyedia tidak tersedia menghentikan permintaan, tanpa beralih ke Ollama atau penyedia lain. Judul dan ringkasan langsung memanggil LLM terpilih tanpa alat. Koneksi awal menerima teks, penalaran, dan pesan alat, tetapi menolak referensi native ke gambar atau berkas.

Kredensial native milik operator DSH, sehingga koneksi hanya untuk administrator meskipun Work biasa tersedia bagi pengguna lain. Permintaan dapat meninggalkan host sesuai penyedia DSH; Work menampilkan keterangan penyedia jarak jauh. Setiap worker team yang menangani tugas tersebut harus dapat mengakses koneksi lokal, dan menolak eksekusi jika tidak ada. Menonaktifkan Cordis atau menghapus soket menarik akses native sambil menjaga tugas tersimpan. Jika DSH crash dan meninggalkan soket, hentikan instans pemilik, hapus hanya soket usang itu, lalu restart. Plugin menolak mengganti entri sistem berkas yang sudah ada.

Memperbarui atau menghapus plugin

Selesaikan atau batalkan permintaan aktif sebelum perubahan. Untuk mengganti bundle lokal lama 0.0.0/0.1.0 melalui UI, pilih Uninstall, kembali ke Add plugin, lalu pasang URL publik di atas. Pertahankan jalur soket khusus melalui override profil pengguna yang didukung. Sesi serta kredensial native tetap ada.

Instalasi yang sudah berasal dari GitHub dapat diperbarui lewat CLI:

dsh plugin --profile web update @libre-webui/dsh-native-provider

Restart setelah pembaruan CLI dan periksa versi. Plugin yang semula dinonaktifkan tetap nonaktif; periksa sebelum menguji koneksi. Untuk mengunci atau mengembalikan revisi, gunakan github:libre-webui/dsh-native-provider#<commit>. Bundle lokal khusus harus dibangun ke direktori baru lalu ditambahkan lagi. Pembaruan dependensi lokal tidak mengambil GitHub.

Untuk menghapus koneksi, hapus nativeProvider.socketPath di LWUI atau kosongkan LIBRE_DSH_PROVIDER_SOCKET, lalu jalankan:

dsh plugin --profile web remove @libre-webui/dsh-native-provider

Restart profil DSH setelah menghapus. Tugas LWUI tetap tersimpan, tetapi permintaan native gagal sampai koneksi eksplisit yang sama dipulihkan. Penghapusan plugin tidak menghapus penyedia atau kredensial DSH. Hapus direktori bundle lama hanya setelah tidak lagi digunakan sebagai instalasi.

Penggunaan penyedia native

Permintaan native tampil dalam Penggunaan Penyedia, di bawah DeepSeek Harness · penyedia, dengan model asli terpilih. Setiap permintaan nyata dihitung sekali, termasuk putaran alat, judul, dan ringkasan penalaran. Dashboard mencakup hasil berhasil, gagal, dibatalkan, latensi, dan token yang dilaporkan DSH. Input cache dihitung sekali dalam total; data yang tidak ada tidak diperkirakan. ID penyedia berbentuk dsh-native:<percent-encoded-native-provider-id> untuk aturan tarif dan biaya yang ada. Tarif tidak dikenal tetap tanpa harga.

Permintaan DSH melalui penyedia LWUI tetap menggunakan catatan penyedia tersebut. Pembacaan katalog dan penolakan sebelum inferensi tidak menambah catatan panggilan model. Pengukuran dimulai saat versi koneksi ini dipasang, tanpa membuat riwayat fiktif. Data tersimpan hanya identitas, status, waktu, dan penghitung; tidak ada prompt, jawaban, kredensial, endpoint, atau teks kesalahan penyedia.

Memverifikasi konfigurasi

curl -s http://127.0.0.1:3001/api/cordis/health | jq
{
"success": true,
"enabled": true,
"ready": true,
"services": [
{ "name": "llm", "state": "ready" },
{ "name": "systemPrompt", "state": "ready" },
{ "name": "sessions", "state": "ready" },
{ "name": "tools", "state": "ready" },
{ "name": "agents", "state": "ready" }
]
}

503 dengan code: CORDIS_UNAVAILABLE berarti komposisi tidak terpasang. Kolom error memuat alasannya; LIBRE_CORDIS_TRACE=true menambah log aktivasi Cordis. Lihat penyebab umum dalam Pemecahan masalah.