Vertical-integration toolkit for running and managing GPU fleets with vLLM and Transformer backends.
Project description
oumigo
Oumigo is a vertical-integration toolkit for running and managing GPU fleets. A GPU fleet is a group of computer instances, running locally or on a cloud environment, made up of a manager node and one or more GPU worker nodes coordinated by the manager.
GPU worker nodes work independently as a whole to provide LLM based generation capability, and the manager node exposes a unified data plane interface to calling applications.
Key functions provided by an Oumigo fleet (as of v0.2.0):
- Multiple GPU instance dynamic lifecycle management, supporting vLLM and Transformer backends
- Data and control interfaces unification, runtime request routing
- Performance monitoring
- Vertical integration of administration and programming interfaces:
- Command line interface (CLI) administration
- Python API function with built-in Agent loop, supporting Agent chat, tool call usage
- Python API interface for guardrail extension development
Architecture
Two roles:
-
Manager (
oumigo.service.manager): coordinates the fleet, split into sub-layers:- control plane (
manager.control): tracks worker registrations and state, drives worker lifecycle, reconciles desired vs. actual. Low-frequency, correctness-critical. - data plane / router (
manager.router): forwards client inference calls to healthy workers — on the hot path of every request. Exposes an OpenAI-compatible HTTP surface (/v1/chat/completions,/v1/completions,/v1/models, including SSE streaming), so any OpenAI-API client can talk to the fleet through a single endpoint. - provisioning (
oumigo.providers): how workers come into existence — a minimal, lifecycle-shapedProviderprotocol used by the control plane. Ships withStaticProvider(LAN: workers are hand-started and self-register, no provisioning); cloud backends (e.g. ConoHa, OpenStack-based) are future implementations of the same protocol. - dashboard (
manager.dashboard): performance & diagnostics — later.
- control plane (
-
Worker (
oumigo.service.worker): a long-lived coordinator supervises a LLM server as a child process, monitors health, executes start/stop/restart from the manager, and owns the node state machine + restart-with-give-up policy. Workers self-register with the manager and heartbeat.
Programming interfaces layered on top of the two roles:
- Python API (
oumigo.api): the client-side inference layer.Agent(tools)→Chat→requestdrives a built-in agent loop with callback tools, response parity across streaming/non-streaming, and reasoning-content surfacing. Talks to the manager's data plane so applications never address workers directly. - Guardrails (
oumigo.guard): an agent-layer interceptor chain with a narrow-waistGuardprotocol and tiered rule→model add-ins, for developing guardrail extensions around the API without touching fleet internals.
Shared foundations: oumigo.config (typed settings + precedence resolution) and
oumigo.protocol (the wire contract both roles import so it can't drift).
Using the fleet as an OpenAI-compatible endpoint
Because the data plane speaks the OpenAI API, the manager can drop in wherever an OpenAI-compatible base URL is accepted — no oumigo client required. Point the tool at the manager's router and it addresses the whole fleet through one endpoint:
Base URL: http://<manager-host>:<router-port>/v1
Model: <a model id from GET /v1/models>
API key: any non-empty string (the data plane does not check it; clients still require one)
This has been verified with other editing or coding assistant agents, and works the same
for any OpenAI-API SDK or tool (e.g. the openai Python client).
Installation
Oumigo is published on PyPI. Install the extra that matches the node's role:
pip install "oumigo[worker]" # on a GPU worker box (pulls vLLM + Transformers)
pip install "oumigo[manager]" # on the manager box
oumigo version
On a GPU worker box, do not install
torchseparately — vLLM hard-pins it and pulls the matching CUDA wheel transitively.
To use oumigo from another project, add it as a dependency (pip install oumigo, or the
[worker] / [manager] extra as needed).
Development
Working on oumigo itself uses an editable install from a source checkout:
# from oumigo/
python -m venv .venv
source .venv/bin/activate
pip install -e ".[worker,dev]" # on a GPU worker box
pip install -e ".[manager,dev]" # on the manager box
oumigo version
Documentation
- docs/api.md — Python API: Agent loop, chat, tool calls, streaming.
- docs/metrics.md — performance monitoring and metrics.
- docs/worker-node-states.md — worker node state machine.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file oumigo-0.2.0.tar.gz.
File metadata
- Download URL: oumigo-0.2.0.tar.gz
- Upload date:
- Size: 180.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32267f5631f49d95b6e4542b27735814ef9d923f28d01ff3189a01aae4f533fc
|
|
| MD5 |
cf9018192f94b3d679cff071ede22135
|
|
| BLAKE2b-256 |
cfd286bc57335d20df4d8744173ac9ebc53c7ed8efc1ef02b7fc4544e93b797b
|
File details
Details for the file oumigo-0.2.0-py3-none-any.whl.
File metadata
- Download URL: oumigo-0.2.0-py3-none-any.whl
- Upload date:
- Size: 128.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dcb4e2227335356da303690e4d045dba01082b2af4b00cfb09067383fc003514
|
|
| MD5 |
1daa9ef0c2a47d8153e88bc1af6f99d9
|
|
| BLAKE2b-256 |
c1152c4dba6708ae8f9fff3026994c65d2010ff6e50091985451bbf45bc29c68
|