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:
| Key | Responsibility |
|---|---|
model | Your AI SDK model or model adapter |
channels | Slack, Telegram, email, WhatsApp, Linq, Photon, or custom adapters |
database | Your durable Noir store |
memory | Your memory provider or adapter |
sandbox | Your code execution environment |
plugins | Product capabilities such as Stripe |
tools | Agent-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 → USERNoir 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.