NOIR
Core concepts

Architecture

Your agent logic stays yours; Noir owns the unreliable edge.

One configuration tree

The top-level object mirrors the architecture of a real agent:

KeyResponsibility
modelYour AI SDK model or model adapter
channelsSlack, Telegram, email, WhatsApp, Linq, Photon, or custom adapters
databaseYour durable Noir store
memoryYour memory provider or adapter
sandboxYour code execution environment
pluginsProduct capabilities such as Stripe
toolsAgent-callable functions

SDK-native values stay native. OpenRouter comes from OpenRouter. A Drizzle client comes from your application. Noir does not wrap a service merely to claim it.

Message flow

CHANNEL → VERIFY + PERSIST → YOUR AGENT → DURABLE DELIVERY → USER

Noir authenticates and normalizes inbound events, serializes work by conversation, persists execution progress, and settles outbound delivery. Your code chooses what the agent thinks and does.

Framework agnostic

Use the Vercel AI SDK, OpenAI Agents SDK, Mastra, LangGraph, a rules engine, or ordinary TypeScript functions. Noir provides the runtime contract around the brain rather than becoming the brain.

On this page