Reactive Agents

Getting Started with Reactive Agents

This guide will walk you through setting up Reactive Agents and connecting your first application.

Overview

The quickest way to get started is using Docker Compose, which includes Reactive Agents, PostgREST, and PostgreSQL in a containerized environment.

Prerequisites

Step 1: Clone and Setup

# Clone the repository
git clone https://github.com/idkhub-com/reactive-agents.git
cd reactive-agents
Optional Environment Configuration

If you want to customize authentication or add an OpenAI API key, create a .env file in the repository root. The following variables are optional:

  • OPENAI_API_KEY - Your OpenAI API key (can also be added via dashboard)
  • BEARER_TOKEN - Custom API token
  • ACCESS_PASSWORD - Dashboard password
  • JWT_SECRET - JWT signing secret

All database configuration (PostgreSQL and PostgREST) is handled automatically by Docker Compose.

Step 2: Start with Docker Compose

Start all services in the foreground (you'll see logs in your terminal):

docker-compose up

Start in the background (daemon mode):

docker-compose up -d
View Logs

To view logs (useful when running in daemon mode, or to check logs at any time):

docker-compose logs -f

Step 3: Access Dashboard

Once Docker Compose has started all services, open your browser and visit:

http://localhost:3000

Docker Compose Setup Complete: Reactive Agents is now running and ready to use! You can start making API calls immediately. For optimization features, see the Configuration Steps section below.

Configuration Steps

Initial Dashboard

Initial Dashboard

To enable optimization features, complete these steps:

1. Add an AI Provider

Navigate to the AI Providers & Models section and click "Add AI Provider." Configure your AI provider settings and click "Create AI Provider."

Add an AI Provider

Add New AI Provider

2. Add a Model

After adding an AI provider, you are automatically redirected to the Models setup section, were you will add your first AI model from that provider. Configure your first model and click "Add 1 Model".

Add a Model

Successful AI Provider and Model looks like: AI Provider and Model Success

3. Create an Agent

Navigate to the Agents tab.

Agents tab

Click "Create Agent" Create Agent

Configure your first agent to start handling AI interactions, and click "Create Agent"

Create an Agent

4. Create Skills

Add skills to define what your agent can do. Click "Create Skill"

Create Skill

Configure the skill details including name, description, partitions and advanced parameters.

Create Skills Add Skills Details Click Create Skill

5. Add Models and Evaluations to Skills

Associate models with your skills by selecting the appropriate model from the available options. Select from available evaluations to configure evaluation criteria for your skill to measure and optimize agent performance. Finally, Click "Complete Setup"

Select Models

Successful Skill Setup looks like: Select Models

6. Test Your Setup

Make your first API call to verify everything is working. Replace agent_name and skill_name with the names you created in the previous steps:

import OpenAI from 'openai';
import 'dotenv/config';

const client = new OpenAI({
  apiKey: process.env.BEARER_TOKEN,
  baseURL: 'http://localhost:3000/v1',
});

const idkhubConfig = {
  targets: [
    {
      optimization: 'auto'
    },
  ],
  agent_name: 'My Assistant',
  skill_name: 'General Help',
};

const response = await client
  .withOptions({
    defaultHeaders: {
      'ra-config': JSON.stringify(idkhubConfig),
    },
  })
  .chat.completions.create({
    model: 'gpt-5',
    messages: [
      { role: 'user', content: 'Hello, how are you?' }
    ],
  });

console.log(response.choices[0].message.content);
const idkhubConfig = {
  targets: [
    {
      optimization: 'auto',
    },
  ],
  agent_name: 'My Assistant',
  skill_name: 'General Help',
};

const response = await fetch('http://localhost:3000/v1/chat/completions', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${process.env.BEARER_TOKEN}`,
    'Content-Type': 'application/json',
    'ra-config': JSON.stringify(idkhubConfig),
  },
  body: JSON.stringify({
    model: 'gpt-5',
    messages: [
      { role: 'user', content: 'Hello, how are you?' }
    ],
  }),
});

const data = await response.json();
console.log(data.choices[0].message.content);
#!/bin/bash
curl -X POST http://localhost:3000/v1/chat/completions \
  -H "Authorization: Bearer ${BEARER_TOKEN}" \
  -H "Content-Type: application/json" \
  -H "ra-config: {\"targets\":[{\"optimization\":\"auto\"}],\"agent_name\":\"My Assistant\",\"skill_name\":\"General Help\"}" \
  -d '{
    "model": "gpt-5",
    "messages": [
      {"role": "user", "content": "Hello, how are you?"}
    ]
  }'

Optional: Reactive Agents works without these steps, but optimization features will be disabled.

Next Steps

  • Explore the Dashboard: Familiarize yourself with the interface
  • Configure Multiple Providers: Add support for different AI providers
  • Set Up Evaluations: Create custom evaluation criteria
  • Monitor Performance: Track your AI system's performance over time

Ready to dive deeper? Check out our Core Concepts guide.