ControlAI-Agent / README.md
atakan
deploy: Space overrides -- CUDA requirements.txt and app_space.py entry point
e901ca7
|
Raw
History Blame Contribute Delete
8.47 kB
---
title: ControlAI Agent
colorFrom: blue
colorTo: indigo
sdk: gradio
app_file: app_space.py
pinned: false
---
# ControlAI: Open-Source Safety-Critical AI Agent for Control Systems Engineering
[![Hugging Face Space](https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Space-blue)](https://huggingface.co/spaces/atakankahya/ControlAI-Agent)
[![GitHub stars](https://img.shields.io/github/stars/atakankahya/controlai-agent?style=social)](https://github.com/atakankahya/controlai-agent)
[![Hugging Face Model](https://img.shields.io/badge/Hugging%20Face-ControlAI--Agent-blue)](https://huggingface.co/atakankahya/ControlAI-Agent)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![Python 3.10+](https://img.shields.io/badge/Python-3.10%2B-blue.svg)](https://www.python.org/downloads/)
**ControlAI** is an open-source, domain-specific AI assistant engineered specifically for **Control Systems Engineering, Dynamical Systems, Robotics, and Applied Mathematics**.
---
## Quickstart
ControlAI runs entirely on your own machine. Requires **Apple Silicon** (inference is MLX) with
at least 16 GB of unified memory; the default model needs about 8 GB on disk and is downloaded on
first run.
```bash
git clone https://github.com/atakankahya/controlai-agent.git
cd controlai-agent
pip install -r requirements.txt
./run.sh # web console, opens http://127.0.0.1:8000
./run.sh --cli # interactive terminal chat
./run.sh --cli "design an LQR for A=[[0,1],[-2,-3]], B=[[0],[1]], Q=eye(2), R=1"
./run.sh --build-index # build the dense retrieval index from data/user_docs/ (~45 min)
```
| Variable | Default | Purpose |
| :-- | :-- | :-- |
| `CONTROLAI_MODEL` | `mlx-community/Qwen3-14B-4bit` | any MLX model id or local path |
| `CONTROLAI_ADAPTER` | *(none)* | optional LoRA adapter |
| `CONTROLAI_THINKING` | `auto` | `off`, `auto` (conceptual questions only), or `on` |
| `CONTROLAI_THINK_BUDGET` | `512` | ceiling on tokens spent reasoning |
---
## Motivation: Safety-Critical Verification in Control Engineering
Standard large language models (LLMs) operate probabilistically without deterministic verification. When applied to physical systems—such as autonomous aerial vehicles, industrial manipulators, or power grids—general-purpose models present severe reliability challenges:
* **Numerical Hallucinations:** Estimating eigenvalues without characteristic polynomial evaluation, inverting singular matrices, or generating unstable feedback gains.
* **Lack of Formal Proof Structure:** Omitting boundary conditions, PBH rank tests, or domain-specific stability limits.
* **Physical Safety Violations:** A sign error in a state feedback gain leads directly to closed-loop instability in hardware.
**ControlAI addresses these limitations through a hybrid architecture:**
1. **Deterministic Scientific Sandbox:** Computes continuous/discrete algebraic Riccati equations (CARE/DARE), matrix exponentials, and Bode diagrams using LAPACK, SciPy, and CVXPY.
2. **4-Stage Mathematical Proof Standard:** Formulates system class, analytical theorems, closed-form derivations, and engineering breakdown limits.
3. **Dynamic Simulation & Plotting:** Solves nonlinear differential equations and renders verified trajectories directly in the interface.
4. **Offline Retrieval:** 80,000+ chunks of classical and modern control literature, indexed locally.
The prebuilt index is not distributed -- it carries the full text of copyrighted textbooks --
so `--build-index` builds one from whatever you put in `data/user_docs/`.
Lexical and dense rankings are fused and gated on cosine similarity, so an unrelated passage is
dropped rather than cited — the retriever returning nothing is a normal outcome.
5. **Bounded latency:** the fixed system-prompt and tool-schema prefix is prefilled once at startup
and reused across turns, so answers begin streaming in well under a second.
---
## Architecture Overview
```mermaid
graph TD
User([Engineering Query]) --> Frontend[Web Console / CLI]
Frontend --> Agent[ControlAgent streaming tool loop]
subgraph Local[Runs entirely on-device]
Engine[LocalEngine - MLX, cached KV prefix]
Model[Qwen3-14B-4bit]
Retriever[Hybrid Retriever - BM25 + dense]
Tools[Deterministic Tool Registry]
end
Agent --> Engine --> Model
Agent --> Retriever
Agent --> Tools
Tools --> SciPy[SciPy / LAPACK / BLAS]
Tools --> PythonControl[python-control]
Tools --> PyExecutor[Sandboxed Python]
Tools --> Verifier[Residual Verifier]
Verifier --> Answer[Verified answer, plots, citations]
Answer --> Frontend
```
---
## Key Capabilities
### 1. Modern Interactive Web Console (`web/`)
* **Real-Time Token Streaming (SSE):** Token-by-token fluid rendering with smart scroll retention.
* **LaTeX Formula Rendering:** KaTeX integration with math delimiter protection and syntax-highlighted code blocks.
* **Engineering Toolbar:** One-click insertion of state matrices, transfer functions, and control parameters ($\zeta, \omega_n$).
### 2. Deterministic Mathematical Tool Suite (`controlai_agent/tools/`)
* **State-Space Analysis:** Exact ZOH discretization, eigenvalue decomposition, controllability and observability Gramians, and Lyapunov equation solvers.
* **Frequency Domain:** Exact Bode magnitude and phase calculation, gain/phase margins, and Routh-Hurwitz stability criterion.
* **Controller Synthesis:** Continuous LQR (CARE), Discrete LQR (DARE), pole placement, PID tuning, and constrained Model Predictive Control (CVXPY QP).
* **State Estimation:** Kalman filter prediction and Joseph-stabilized measurement updates.
* **Nonlinear & Safety Filters:** Control Barrier Functions (CBF-QP safety filter), Nonlinear Dynamic Inversion (NDI), and Feedback Linearization.
* **Robust Control:** Kharitonov stability test, Small Gain theorem, and multiplicative uncertainty bounds.
### 3. Live Python Execution Sandbox (`python_executor.py`)
* Executes scientific Python routines using `numpy`, `scipy.signal`, `scipy.linalg`, `control`, and `matplotlib`.
* Automatically isolates and captures generated simulation plots to `outputs/plots/` and renders them in chat.
---
## Benchmark Results (ControlBench-v1)
> **These figures were measured against the previous architecture** — the fine-tuned Qwen3-4B LoRA
> served through the old orchestrator. That serving path has been replaced (base Qwen3-14B, no
> adapter, rewritten agent loop and retriever), and the suite has not yet been re-run against it, so
> treat the table as historical rather than as a description of the current build.
Evaluated across **50 multi-pillar benchmark problems**:
| Benchmark Pillar | Qwen3-4B Base (Text-Only) | ControlAI Agent (Ours) | Verification Mechanism |
| :--- | :---: | :---: | :--- |
| **Numerical Synthesis** *(CARE, DARE, ZOH, Kalman)* | 0.0% | **100.0%** | Deterministic SciPy/LAPACK solver with $10^{-10}$ residual verification. |
| **Theory & Proofs** *(PBH, Doyle 1978, Waterbed)* | 83.3% | **86.7% - 95.0%** | 4-Stage CoT Proof Standard with literature grounding. |
| **Code & Simulation** *(SciPy ODE, Matplotlib)* | 29.0% | **90.0%+** | Dynamic execution sandbox with automated plot capture. |
| **Safety & Traps** *(Uncontrollable / Ill-conditioned modes)* | 60.0% | **80.0%** | Pre-computation PBH rank verification. |
| **Real-World Case Studies** *(Aerospace, Drone, Automotive)* | 80.0% | **80.0%** | CBF-QP safety filtering and nonlinear inversion. |
| **Overall Score** | 47.3% | **87.3%** | Deterministic tool execution and mathematical grounding. |
---
## Open-Source and Community Support
ControlAI is an **open-source project** developed for control engineering researchers, robotics practitioners, and applied mathematicians.
### Contributing:
Contributions from the community are welcome across several areas:
* **Analytical Derivations:** Expanding formal proof templates for multi-input multi-output (MIMO) systems.
* **Nonlinear Control:** Implementing additional Control Lyapunov Functions (CLFs) and adaptive controllers.
* **Simulation Bridges:** Connecting agent tool calls with external simulation platforms (ROS 2, MATLAB/Simulink, Gazebo).
* **Benchmark Expansion:** Adding challenging test problems to `benchmarks/controlbench_v1.jsonl`.
---
## License
This project is licensed under the **[MIT License](LICENSE)**.