Generally available · Live in production
Ingram Cloud

The European cloud for AI agents you can put on the record

Give every user a private AI agent — its own memory, tools, and approvals — and a replayable, costed trace of everything it does. Drive it over an OpenAI-compatible API, hosted in the EU.

OpenAI-compatible APIEU data residencyModel-agnosticMCP-native tools

Design once. Run one per user.

Two primitives, and the whole platform falls out of them.

Agent

The design

A reusable, versioned assistant: its instructions, model, tools and guardrails. Publish a new version and every smith that runs it moves in lockstep — or pin them.

Smith

The running clone

One per end-user, per agent. The unit of data isolation — its own memory, threads, and connections. Provisioning is idempotent: ensure a smith on every login.

Everything a production agent needs

The runtime, the memory, the guardrails and the observability — so you build behaviour, not infrastructure.

Memory that persists

Each smith carries its own memory, threads, and connections across sessions — not a context window you refill on every request.

Tools over MCP

Connect any MCP server and the smith can call it. Standard protocol, no bespoke tool format to learn or maintain.

Human-in-the-loop

Gate sensitive tool calls behind approvals. A run pauses, your app approves or rejects, and the smith resumes — over the standard tool-call channel.

Full observability

Watch every run token-by-token in the Playground, replay event streams, and trace each decision a smith made. Nothing is a black box.

Budgets & metering

Per-agent and per-smith spend limits, enforced server-side, with usage metered on every run. Give a smith money to spend without handing it a balance.

Deploy anywhere

Run a smith over the REST API, the OpenAI-compatible endpoint, or wherever your users already are — across the messaging apps they use every day.

Standards-first

If you already speak OpenAI, you already speak Ingram Cloud

Point the OpenAI SDK or the Vercel AI SDK at our base URL and stream straight from a smith — no custom transport, no bespoke SSE parser. Memory, tools, and approvals come along for the ride; only the bytes on the wire are the standard ones.

OpenAI-compatible API reference
chat.ts
import { createOpenAICompatible } from "@ai-sdk/openai-compatible";
import { streamText } from "ai";

const ingram = createOpenAICompatible({
  name: "ingram",
  baseURL: "https://api.cloud.ingram.tech/v1",
  apiKey: SMITH_TOKEN,
});

// Memory, tools and approvals all come from the smith —
// only the bytes on the wire are the standard ones.
const result = streamText({ model: ingram("gpt-5.5"), prompt });
for await (const delta of result.textStream) {
  process.stdout.write(delta);
}

TypeScript SDK

@ingram-cloud/sdk

The typed client for the API — agents, smiths, runs, streaming.

Vercel AI SDK

@ingram-cloud/ai-sdk

An OpenAI-compatible provider with smith identity, memory, and approvals wired in.

Pulumi

@ingram-cloud/pulumi

Infrastructure as code — agents, MCP, integrations, webhooks and model keys.

Flue & eve

@ingram-tech/flue · eve-ingram-cloud

Register a smith as a model provider in the Flue and eve agent frameworks.

The layer Europe can keep

Your data stays in the EU, with data residency, and we never train models on it. Pair that with the audit trail and you can prove, action by action, exactly what touched your data — so the agents your business depends on don't depend on someone else's jurisdiction.

EU data residencyNo training on your dataAudit trail on every run

Questions, answered

Ship your first smith today

Create a project, mint a token, and stream a reply in three calls. The console is open and the API is live.

Hosted in the EU · OpenAI-compatible · Model-agnostic