Lewati ke konten utama
Halaman ini adalah terjemahan mesin dan belum sepenuhnya ditinjau. Teks asli berbahasa Inggris adalah acuan yang berlaku. Pernyataan tentang keamanan, privasi, penanganan data, kepatuhan, dan lisensi tetap dalam bahasa Inggris sampai peninjau teknis menyetujuinya. Baca teks asli berbahasa Inggris

Kendalikan aplikasi AI yang saya bangun dengan Node.js

Titik penerapan yang digunakan: SDK Node.js, middleware Vercel AI SDK, integrasi framework Mode yang didukung: Local Hosted Hybrid Paket: Free (dasar) Solo Teams (fitur hosted)

Yang akan Anda lakukan​

Pasang pemeriksaan guard() di depan setiap panggilan LLM dan pemanggilan alat di aplikasi Node.js Anda. Dapat digunakan mandiri atau sebagai middleware Vercel AI SDK; menerapkan kebijakan dan menulis jejak audit.

Mengapa ini jalur yang tepat untuk Anda​

  • Jika Anda menulis aplikasi Node.js atau Next.js yang memanggil LLM dan Anda memiliki kodenya, SDK memberi Anda kendali yang terperinci.
  • Jika Anda menggunakan Vercel AI SDK, kami menyediakan middleware yang membungkus generateText / streamText secara transparan.
  • Jika Anda tidak dapat mengubah kode, gunakan gateway.
  • Jika aplikasi Anda berbasis Python, lihat Kendalikan aplikasi AI dengan Python.

Kapan TIDAK menggunakan pendekatan ini​

waspada

SDK memerlukan perubahan kode di setiap titik keputusan. Jika Anda menginginkan pencegatan tanpa kode untuk setiap permintaan LLM, ganti base URL ke gateway.

Penyiapan 5 menit​

Konfigurasikan registry Control Zero sekali saja: tambahkan @controlzero:registry=https://npm.controlzero.ai ke .npmrc Anda (atau jalankan npm config set @controlzero:registry https://npm.controlzero.ai). Ini berlaku untuk npm install dan npx pada seluruh scope @controlzero.

npm install @controlzero/sdk

Guard mandiri​

import { Client } from '@controlzero/sdk';

const cz = await Client.create({ apiKey: process.env.CONTROLZERO_API_KEY });

const decision = cz.guard('shell', {
args: { command: 'rm -rf /' },
});

if (!decision.allowed) {
throw new Error(`Blocked by policy: ${decision.reason}`);
}

Output yang diharapkan pada panggilan yang diblokir:

Error: Blocked by policy: Destructive shell commands are not allowed.

Middleware Vercel AI SDK​

Teks asli berbahasa Inggris -- terjemahan menunggu tinjauan teknis

The Node SDK ships a vercelAiMiddleware factory that plugs into the AI SDK's wrapLanguageModel API, so every generateText / streamText call is policy-checked before it reaches the provider and audited after.

import { Client } from '@controlzero/sdk';
import { vercelAiMiddleware } from '@controlzero/sdk/integrations';
import { generateText, wrapLanguageModel } from 'ai';
import { anthropic } from '@ai-sdk/anthropic';

const cz = await Client.create({ apiKey: process.env.CONTROLZERO_API_KEY });

const model = wrapLanguageModel({
model: anthropic('claude-sonnet-4-6'),
middleware: vercelAiMiddleware(cz, { agentId: 'my-bot' }),
});

const { text } = await generateText({
model,
prompt: 'What is in my .env file?',
});

Pada penolakan, middleware melempar error sebelum provider dipanggil. Untuk menjaga pemanggilan alat satu per satu, bungkus setiap alat AI SDK dengan governedTool(cz, name, tool) dari entry point @controlzero/sdk/integrations yang sama. Lihat halaman lengkap integrasi Vercel AI SDK untuk detailnya.

Mode Local (tanpa akun)​

const cz = new Client({ policyFile: './policy.yaml' });

Format YAML yang sama dengan SDK Python.

Memverifikasi bahwa berfungsi​

  1. Picu permintaan yang seharusnya ditolak. Harapkan decision.allowed === false dan sebuah alasan.
  2. Picu permintaan yang seharusnya lolos. Harapkan decision.allowed === true dan peristiwa audit allow.
  3. Pada mode Hosted, buka dasbor -> Audit dan lihat peristiwa mengalir masuk.

Tindak lanjut umum​

Referensi​