Sebagian besar workflow klasifikasi di n8n memakai chat model, Structured Output Parser, lalu node tambahan untuk menangani hasilnya. Saya juga pernah membangun workflow dengan pola itu. Polanya bekerja, tetapi model tetap diminta menulis teks untuk pekerjaan yang sebenarnya hanya membutuhkan keputusan.
Tiket dukungan tidak membutuhkan esai. Tiket itu membutuhkan tujuan antrean. Ulasan produk mungkin membutuhkan skor sentimen. Pesan masuk mungkin hanya membutuhkan jawaban ya atau tidak untuk pertanyaan, “Apakah orang ini meminta refund?”
Itulah alasan saya membuat n8n-nodes-jev-classification, community node n8n open source untuk Jev dari TypeSafe AI. Versi 0.2.0 sekarang tersedia di npm.

Jev dibuat untuk keputusan dengan pilihan terbatas
TypeSafe menyebut Jev sebagai System One model. Kita mengirimkan sebuah state, misalnya tiket, ulasan, atau record JSON, bersama pertanyaan dengan tipe yang jelas. Jev mengembalikan jawaban bertipe dan probabilitas, bukan paragraf yang masih harus diurai.
Jev menyediakan tiga bentuk pertanyaan yang berguna:
- Choice memilih satu opsi dan mengembalikan probabilitas untuk seluruh opsi.
- Score menilai teks berdasarkan level berurutan dan mengembalikan skor berbobot.
- Noul menjawab pertanyaan ya atau tidak dalam bentuk probabilitas.
TypeSafe mencantumkan harga Jev 1.13 sebesar $0,042 per satu juta input token, tanpa biaya output token, dengan latency tipikal 70 sampai 500 milidetik. Angka ini berasal dari penyedia, bukan benchmark mandiri saya. Batas layanan dan harga juga dapat berubah. Uji model dengan data milikmu sendiri sebelum memindahkan keputusan produksi ke dalam workflow.[1]
Batasan pilihan justru menjadi bagian yang menarik. Jika saya memberi empat kategori, Jev tidak dapat mengarang kategori kelima. Dalam workflow, sifat seperti ini sering lebih berguna daripada meminta model serbaguna bertingkah seperti classifier.
Cara node ini masuk ke dalam workflow n8n
Saya ingin node ini terasa familier bagi orang yang pernah memakai Text Classifier bawaan n8n. Operasi Classify membaca setiap input item, meminta Jev memilih dari kategori yang tersedia, lalu mengirim item tersebut ke output yang sesuai.
Perbedaannya ada pada data yang ikut dikembalikan. Setiap item mendapatkan field jev yang berisi kategori terpilih, distribusi probabilitas, confidence, penanda apakah item perlu diperiksa, dan versi model yang menjawab.
Paket ini memiliki empat operasi:
| Operasi | Fungsinya | Perilaku output |
|---|---|---|
| Classify | Memilih satu kategori | Satu cabang per kategori dan opsi Needs Review |
| Score | Menilai teks dengan level berurutan | Satu output berisi skor, level, probabilitas, dan confidence |
| Check | Menilai pertanyaan ya atau tidak | Cabang Yes dan No |
| Ask Questions | Mengirim campuran pertanyaan Choice, Score, dan Noul | Satu output berisi kumpulan jawaban mentah |
Field input tetap disertakan secara default. Binary data dan referensi paired item juga diteruskan, sehingga hasil masih dapat dilacak kembali ke item yang masuk.
Konfigurasinya tetap terlihat
Node reguler menerima teks, JSON, atau seluruh item n8n sebagai state. Instructions dievaluasi untuk setiap item. Pada mode kategori tetap, definisi kategori dibaca sekali per eksekusi karena kategori tersebut menentukan output node.

Setelah eksekusi, output tetap membawa pesan asli dan menambahkan hasil keputusan. Dalam contoh ini, Jev memilih kategori Sad dengan confidence 1 dan memberi probabilitas 1 pada kategori tersebut.

Jalur Needs Review lebih penting daripada label pemenang
Automasi menjadi berisiko ketika model harus selalu berpura-pura mengetahui jawaban. Untuk pertanyaan Choice dan Score, Jev mengembalikan distribusi probabilitas lengkap. TypeSafe kemudian menghitung nilai confidence dari bentuk distribusi tersebut.[2]
Node ini mengubah sinyal itu menjadi kontrol workflow:
- confidence di atas atau sama dengan threshold masuk ke kategori terpilih
- confidence di bawah threshold dapat dikirim ke Needs Review
- jika dibutuhkan, item yang meragukan tetap dapat masuk ke kategori terbaik sambil membawa
needsReview: true
Threshold default adalah 0,5, tetapi saya tidak akan memakai satu nilai untuk seluruh tindakan. Memberi tag yang salah pada email mudah diperbaiki. Mengeluarkan refund yang salah tidak semudah itu. Panduan TypeSafe juga menyampaikan hal serupa: batas confidence perlu mengikuti dampak ketika keputusan salah.[2]
Pola yang saya pilih sederhana. Otomatiskan kasus yang jelas, simpan probabilitasnya, lalu sediakan jalur manusia untuk kasus yang ambigu.
Kategori tetap dan kategori dinamis
Versi 0.2.0 menambahkan pilihan Categories Source pada operasi Classify.
Mode Fixed mempertahankan perilaku awal: kategori ditentukan saat workflow dibuat, lalu setiap kategori mendapatkan output sendiri.
Mode Dynamic dipakai ketika kategori baru diketahui saat workflow berjalan. Daftar kategori dapat berasal dari expression, node sebelumnya, database, atau AI Agent. Format yang diterima adalah string dipisahkan koma, JSON array, atau JSON object yang memetakan nama kategori ke deskripsinya.
Karena n8n perlu mengetahui daftar output sebelum eksekusi dimulai, mode Dynamic memakai satu output bernama Result. Kategori terpilih tersedia pada jev.category. Jika membutuhkan cabang lanjutan, gunakan Switch node.
Mode Dynamic tidak menampilkan output Needs Review, tetapi sinyal ketidakpastian tetap tersedia melalui jev.needsReview.
Bisa dipakai sebagai tool oleh AI Agent
Paket ini menyediakan node reguler dan varian tool. Pada instance self-hosted yang mengizinkan community package sebagai tool, pencarian Jev akan menampilkan keduanya.


Pembagian tanggung jawab ini masuk akal bagi saya. Chat model dapat menulis respons yang membantu. Jev menangani pertanyaan terbatas seperti emosi, intent, kecocokan kebijakan, atau keberadaan kondisi tertentu.

Memasang community node
Pada n8n self-hosted, buka Settings, pilih Community Nodes, lalu instal:
n8n-nodes-jev-classification
Setelah itu, buat credential Jev (TypeSafe) API memakai API key dari konsol TypeSafe. Pengujian credential memanggil endpoint daftar model milik TypeSafe. API key dikirim sebagai bearer token hanya ke https://api.typesafe.ai.

Untuk pemasangan manual:
cd ~/.n8n/nodes
npm install [email protected]
Restart n8n setelah instalasi manual. Varian tool juga membutuhkan:
N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
Node ini saat ini hanya tersedia untuk n8n self-hosted.
Cara membaca klaim batching dengan benar
Node memiliki dua pengaturan throughput:
- Parallel Requests menentukan ukuran worker pool.
- Items Per Request menggabungkan beberapa item pendek ke dalam satu request, maksimal 50 item.
TypeSafe menerbitkan eksperimen batching yang berguna. Tiga belas pertanyaan independen terhadap dokumen yang sama dengan panjang 53.777 karakter membutuhkan biaya 12,2 kali lebih rendah dan berjalan 10 kali lebih cepat ketika dikirim dalam satu request dibandingkan 13 request terpisah. Jawaban pada strategi yang dibandingkan tetap sama.[3]
Eksperimen tersebut membuktikan manfaat memakai satu state bersama untuk banyak pertanyaan. Eksperimen itu bukan benchmark langsung untuk fitur multi-item pada node ini.
Ketika node menggabungkan beberapa item, teks setiap item tetap dikirim. Tagihan token kurang lebih tetap serupa. Keuntungan utamanya berasal dari jumlah round trip dan overhead request yang lebih sedikit. Teks panjang atau state yang penuh informasi tidak relevan sebaiknya memakai batch yang lebih kecil karena state yang berisik dapat menurunkan akurasi.[4]
Repositori menyediakan workflow contoh untuk routing tiket, penilaian ulasan dan deteksi cacat, kategori dinamis, serta pertanyaan campuran dalam batch. Contoh tersebut lebih berguna sebagai titik awal daripada menebak seluruh konfigurasi dari nol.
Bug yang sangat spesifik terhadap n8n
Rilis pertama dapat dijalankan, tetapi node regulernya tidak muncul di panel node normal. Hanya varian untuk AI Agent yang mudah ditemukan.
Penyebabnya adalah metadata codex. Node yang diberi kategori AI tanpa subkategori Chains dan Root Nodes akan disaring dari daftar reguler n8n. Versi 0.1.1 menyalin bentuk kategori milik Text Classifier bawaan dan menambahkan alias pencarian seperti jev, classify, router, dan sentiment.
Paket ini sekarang memiliki nol runtime dependency, lisensi MIT, test, workflow contoh, dan alur GitHub Actions untuk menerbitkan paket ke npm dengan provenance. Source code dan paket npm tersedia untuk diperiksa sebelum dipasang.
Kapan saya tidak akan memakai Jev
Jev bukan pengganti umum untuk chat model. TypeSafe mendokumentasikan keterbatasannya secara terbuka.[4]
Saya akan tetap mengerjakan hal berikut dengan kode:
- aritmetika dan penghitungan
- pengurutan tanggal dan perhitungan durasi
- aturan deterministik yang tidak membutuhkan model
Saya akan tetap memakai LLM generatif untuk:
- ringkasan
- draft email
- penjelasan
- ekstraksi bebas ketika daftar kemungkinan jawaban belum diketahui
Jev juga membaca instruksi secara literal, kehilangan akurasi ketika state memuat banyak detail tidak relevan, dan tidak menganggap input sebagai konten berbahaya secara default. Batas antar kategori perlu diuji dengan contoh nyata, input adversarial, dan monitoring. Kategori other sering lebih aman daripada memaksa setiap input masuk ke antrean bisnis yang salah.
Coba sendiri
Paket tersedia di npm. Repositori GitHub memuat source code, petunjuk instalasi, diagram, test, dan workflow contoh yang dapat diimpor ke n8n.
Lihat juga rilis 0.2.0 untuk fitur kategori dinamis.
Ini adalah community node yang saya pelihara sendiri. Proyek ini tidak terafiliasi, didukung, atau disahkan oleh TypeSafe AI maupun n8n.
Sumber
[1] Models, dokumentasi TypeSafe AI
[2] Confidence, dokumentasi TypeSafe AI