Blayer · Dokumentasi

Panggil dari aplikasi

SDK TypeScript, cURL, dan bentuk jawaban yang dipakai seluruh API.

Aplikasi pemanggil tidak perlu tahu model, prompt, atau versi mana yang berjalan. Semua itu diatur di Blayer dan bisa berganti tanpa mengubah kode ini.

Dua jenis kredensial

KredensialBentukBoleh apa
API key projectblr_…, dibuat di ConsoleMenjalankan agent yang sedang production di environment kuncinya
Sesi pengelolaanToken login Console, blas_…Mengelola project, agent, versi, tool, dan dokumen

Keduanya dikirim sebagai Authorization: Bearer ….

SDK TypeScript

app/laporan.ts
import { BlayerClient } from '@blayer/sdk'

const blayer = new BlayerClient({ apiKey: process.env.BLAYER_API_KEY })

const run = await blayer.agents.run({
  agentId: 'accounting-assistant',
  input: 'Berapa laba bulan lalu?',
})

run.output   // "Laba bulan lalu Rp12.480.000."
run.costUsd  // 0.0182

cURL

curl -X POST http://localhost:3002/api/v1/agents/$AGENT_ID/run \
  -H "Authorization: Bearer $BLAYER_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{ "input": "Berapa laba bulan lalu?" }'

Bentuk jawaban

Seluruh API memakai satu amplop yang sama.

berhasil
{
  "success": true,
  "data": { "output": "Laba bulan lalu Rp12.480.000.", "costUsd": 0.0182 },
  "message": "Agent berhasil dijalankan",
  "meta": { "requestId": "mu91g71g-ngih0u", "timestamp": "2026-09-20T00:00:00.000Z" }
}
gagal
{
  "success": false,
  "error": { "code": "PROVIDER_KEY_MISSING", "message": "Project ini belum punya kunci ANTHROPIC untuk environment PRODUCTION.", "details": null },
  "meta": { "requestId": "mu91g71g-ngih0u", "timestamp": "2026-09-20T00:00:00.000Z" }
}

meta.requestId muncul di jawaban dan di log server, jadi satu kode itu cukup untuk menelusuri satu permintaan.

Ingatan antar permintaan

Tanpa sesi, tiap permintaan berdiri sendiri. Buat sesi kalau agentnya perlu mengingat percakapan sebelumnya:

const session = await blayer.agents.createSession({ agentId })

await blayer.agents.run({ agentId, sessionId: session.id, input: 'Bulan sebelumnya?' })

Tool yang mengubah data

Eksekusi berhenti dengan status: "PENDING_CONFIRMATION" dan membawa pendingToolCall. Tidak ada data yang berubah sampai kamu memutuskannya:

await blayer.runs.confirm({
  runId: run.runId,
  toolCallId: run.pendingToolCall.id,
  decision: 'CONFIRM', // atau 'REJECT'
})

Kode kesalahan yang sering muncul

KodeStatusArtinya
UNAUTHORIZED401Kunci atau sesinya tidak dikenali
AGENT_NOT_PUBLISHED409Agentnya belum punya versi production
PROVIDER_KEY_MISSING409Project belum punya kunci provider di environment itu
CONFIG_MISSING503BLAYER_ENCRYPTION_KEY berbeda dengan saat kredensialnya disimpan
DATABASE_UNAVAILABLE503Basis datanya tidak bisa dihubungi

Daftar rute lengkapnya ada di docs/AGENT_API.md.