Skip to main content

What is Exulu IMP?

Exulu IMP (Intelligence Management Platform) is a fully featured PaaS framework for building production-ready multi- or single-agent applications. It provides the infrastructure you need to manage agents, semantic search contexts, background job processing, and tool integrations.

Key features

Multi-provider agents

Support for 60+ providers through Vercel AI SDK, plus flexible integration with custom LLM providers via vLLM or Ollama

Semantic search

Vector-powered context system for RAG implementations with pgvector. Out-of-the-box generation of tooling for semantic search and agentic search for agents

Background workers

BullMQ-based job queue for long-running tasks and scheduled operations

Express API

Ready-to-use GraphQL and REST APIs with authentication and file uploads

Quick start

Get started by cloning the example repository or installing the package:
# Option 1: Clone the example project (recommended)
git clone https://github.com/Qventu/exulu-example

# Option 2: Install the NPM package
npm install @exulu/backend
Create your first Exulu IMP instance using the factory pattern:
import { ExuluApp, ExuluProvider } from "@exulu/backend";
import { createAnthropic } from "@ai-sdk/anthropic";

let instance: ExuluApp | null = null;

export const exulu = async (): Promise<ExuluApp> => {
  if (instance) {
    return instance;
  }

  instance = new ExuluApp();
  instance = await instance.create({
    config: {
      workers: { enabled: true },
      MCP: { enabled: false },
      telemetry: { enabled: false }
    },
    contexts: [],
    rerankers: [],
    tools: [],
    agents: [
      new ExuluProvider({
        id: "assistant",
        name: "Assistant",
        provider: "anthropic",
        description: "A helpful AI assistant",
        type: "agent",
        capabilities: {
          text: true,
          images: [".png", ".jpg", ".jpeg", ".webp"],
          files: [".pdf", ".docx"],
          audio: [],
          video: []
        },
        maxContextLength: 200000,
        config: {
          name: "Assistant",
          instructions: "You are a helpful assistant.",
          model: {
            create: ({ apiKey }) => {
              const anthropic = createAnthropic({ apiKey });
              return anthropic.languageModel("claude-sonnet-4-5");
            }
          }
        }
      })
    ]
  });

  const expressApp = await instance.express.init();
  expressApp.listen(3000);

  return instance;
};

Full quickstart guide

Follow the complete setup guide with database initialization and configuration

Core concepts

Architecture

Exulu IMP follows a modular architecture:
  1. ExuluApp - Central orchestrator that manages all components
  2. Contexts - Semantic search indices with automatic tool generation
  3. Agents - LLM-powered execution units with tool calling
  4. Workers - Background job processors for async operations
  5. Express API - GraphQL and REST endpoints for client access
The platform is designed to be deployed as an npm package in your Node.js application, giving you full control over hosting and customization.

Use cases

Build retrieval-augmented generation systems with semantic search contexts. Ingest documents, generate embeddings, and let agents query relevant information automatically.
Create complex workflows with multiple specialized agents. Each agent can have different capabilities, tools, and LLM providers.
Offload long-running tasks like embeddings generation, document processing, and scheduled data sync to BullMQ workers.
Extend agent capabilities with custom tools for API calls, database queries, file operations, and external service integrations.

What’s included

When you install @exulu/backend, you get:
  • Default agents for GPT-5, GPT-4.1, GPT-4o, Claude Opus 4, Claude Sonnet 4/4.5, Gemini 2.5, Llama 3.3, and more
  • Built-in tools for todo management and web search
  • Database utilities for PostgreSQL and vector storage
  • Authentication with NextAuth integration
  • Job queues with Redis and BullMQ
  • Logging with Winston
  • Telemetry with OpenTelemetry
  • Type definitions for TypeScript

Next steps