Platform API · SDK

LLM. Кэш. Поиск. Из любого приложения.

Одна строка подключения — и в любом Node/TS/JS приложении появляется LLM, кэш, векторный поиск, телеметрия. Адаптер меняется в конфиге, код не трогаешь.

Внешние приложения

Три строки — и платформа работает.

KBPlatform из @kb-labs/sdk/platform — HTTP-клиент для Gateway. Zero внешних зависимостей, использует нативный fetch. Все вызовы идут через POST /platform/v1/[adapter]/[method].

Внутри плагинов — те же адаптеры через in-process хуки useLLM(), useCache() — без HTTP round-trip.

typescript
import { KBPlatform } from '@kb-labs/sdk/platform';

const platform = new KBPlatform({
  endpoint: process.env.KB_ENDPOINT!,  // http://localhost:4000
  apiKey:   process.env.KB_API_KEY!,
});

// LLM, cache, vector search, telemetry — ready to use
Адаптеры

LLM. Кэш. Векторы. Телеметрия.

Каждый адаптер — типизированный прокси над Unified Platform API. Провайдер выбирается в конфиге — код один и тот же и для OpenAI, и для любого кастомного адаптера.

LLM
OpenAI, KB Labs Gateway
complete() · chatWithTools() · streaming
Cache
Redis, in-memory
get/set/delete/clear · TTL · glob patterns
Vector Store
Qdrant
upsert · search · filter · count
Analytics
DuckDB, SQLite, JSONL
track · event · metric · log · batching
Embeddings
OpenAI, Voyage AI
embed() · embedBatch()
Storage
Local FS, S3
read · write · list · delete
typescript
// Text completion
const result = await platform.llm.complete(
  'Explain this function',
  {
    model:        'gpt-4o',
    systemPrompt: 'You are a code assistant.',
    temperature:  0.3,
  }
);
console.log(result.content);
// { content: '...', usage: { promptTokens: 84, completionTokens: 312 }, model: 'gpt-4o' }

// Chat with tool calling
const res = await platform.llm.chatWithTools(messages, tools);
// { content, toolCalls: [{ id, name, input }], stopReason: 'tool_use' }
Внутри плагинов

In-process хуки. Ноль HTTP overhead.

Плагины работают с теми же адаптерами через хуки из SDK — напрямую в памяти, без сетевого слоя. Тот же ILLM, ICache, IAnalytics — одинаковые интерфейсы, другая доставка.

Доступ к адаптерам декларируется в manifest.ts через withPlatform(). Платформа применяет governance, квоты и изоляцию namespace автоматически.

typescript
import { useLLM, useCache, useAnalytics, useStorage } from '@kb-labs/sdk';

// In-process — no HTTP round-trip, same interfaces as KBPlatform
const llm       = useLLM();
const cache     = useCache();
const analytics = useAnalytics();
const storage   = useStorage();

const result = await llm.complete(prompt, { temperature: 0.2 });
await cache.set('result', result, 60_000);
await analytics.track('commit.plan.generated', { tokensUsed: result.usage.completionTokens });
Конфигурация

Меняешь адаптер. Код не трогаешь.

Провайдер LLM, бэкенд кэша, векторная БД — всё в kb.config.json. Поменял одну строку — и весь стек переехал на другой провайдер. Плагины и внешние приложения используют один и тот же интерфейс.

LLMOpenAI GPT-4o / KB Labs Gateway / customCacheRedis · in-memory · customVector StoreQdrant · in-memory · customAnalyticsDuckDB · SQLite · JSONL fileEmbeddingsOpenAI · Voyage AI · customStorageLocal FS · S3 · custom
json
// kb.config.json — swap adapter here, code stays the same
{
  "platform": {
    "adapters": {
      "llm":         "@kb-labs/adapters-openai",
      "cache":       "@kb-labs/adapters-redis",
      "vectorStore": "@kb-labs/adapters-qdrant",
      "analytics":   "@kb-labs/adapters-analytics-duckdb"
    },
    "adapterOptions": {
      "llm":   { "model": "gpt-4o-mini" },
      "cache": { "url": "redis://localhost:6379" }
    }
  }
}
Platform API

Один SDK. Любое Node приложение.

LLM, кэш, поиск и телеметрия — без vendor lock-in. Адаптер меняется в конфиге.

npm install @kb-labs/sdk
Platform API — KB Labs