Skip to main content
Active development — APIs and configuration may change between releases as AURA evolves. Issues and feature requests are welcome — we’d love your feedback.
Part of the AURA Project - A production-ready framework for building AI agents with declarative TOML configuration.
OpenAI-compatible web API server that exposes AURA agents through a standard chat completions endpoint.

When to run the server

The CLI starts an agent per terminal session, which suits interactive work. Running aura webserver instead keeps agents resident behind an HTTP API, so a caller that isn’t a person at a keyboard can start a run: an alert pipeline reacting to a firing monitor, a scheduled job, a CI step, or a chat client such as LibreChat or OpenWebUI. Requests arrive as OpenAI chat completions, so any system that already speaks that format can call AURA directly. The server exposes no alert-specific receiver, so a monitoring tool that posts its own schema (Alertmanager and PagerDuty webhooks, for example) needs a small adapter to translate its payload into a chat completion request. Long-running investigations can stream progress back over SSE; see the Streaming API Guide.

Features

  • OpenAI Compatible: Implements /v1/chat/completions endpoint following OpenAI’s API schema
  • Multi-Turn Conversations: Maintains conversation context across requests
  • Full Tool Integration: Supports all MCP transports (HTTP, SSE, STDIO) and client-side tool passthrough
  • Health Monitoring: /health endpoint for container health checks
  • Production Ready: Stateless processing with pre-built agent, Docker-ready

Quick Start

API Endpoints

Health Check

Response:

List Models (Agents)

Returns all loaded agents. Each agent’s alias (or name if no alias is set) is its model id. The owned_by field defaults to the underlying LLM provider (e.g. "openai", "anthropic") and can be overridden with model_owner in the agent config. Clients like LibreChat and OpenWebUI use this endpoint to populate their model picker. Each entry can also carry a description, a human-readable summary sourced from the agent’s [agent].description config (see the configuration reference). This extends the OpenAI model object. The key is omitted when [agent].description is unset, so strict OpenAI clients can ignore it. The /aura/info endpoint reports this same per-agent description; both read the agent’s [agent].description config value rather than computing it independently. /v1/models alone is enough to populate a model picker in an OpenAI-compatible client. Response:

Chat Completions

The model field selects which agent handles the request by matching against agent alias or name. Agent selection follows this order:
  1. If only one config is loaded, it is always used (the model field is ignored)
  2. Otherwise, model is matched first, then DEFAULT_AGENT if model is absent
  3. Returns a 400 error if multiple configs are loaded and neither model nor DEFAULT_AGENT is supplied at all
  4. Returns a 404 error if a model or DEFAULT_AGENT value is supplied but matches no loaded config
Request body:
Response:

Testing with curl

Configuration

The server uses the AURA TOML configuration system. See the configuration reference for:
  • LLM provider configuration (OpenAI, Anthropic, Bedrock, Gemini, Ollama, OpenRouter)
  • MCP server setup (HTTP, SSE, STDIO)
  • Vector store and RAG integration
  • Agent settings and prompts
Example configurations are in the examples/ directory — see Example Configs.

Architecture

  • Multi-Agent Serving: Load multiple agents from a config directory, selectable via the model field
  • Stateless Requests: Each HTTP request is processed independently
  • Multi-Turn Support: Conversation history passed via messages array
  • OpenAI Compatible: Request/response schemas match OpenAI’s format
  • Error Handling: Proper HTTP status codes and error responses

Deployment

Environment Variables:

See Also