Nagi keeps data in its desired state.
State evaluation, routine ELT, and data incident response are often carried out as separate activities — different tools, different runbooks, different moments. When a scheduled job succeeds but the data is stale, the gap between "the pipeline ran" and "the data is correct" surfaces as an incident that lives outside the pipeline itself.
These activities are points on the same continuum: observe state, decide it needs correction, and correct it. Nagi places them in a single reconciliation loop so you can move between monitoring, manual recovery, and automated convergence without changing tools or vocabulary.
graph LR
subgraph Nagi
Eval["Evaluate data state"]
Drift{"Diverged from<br>desired state?"}
Conv["Run convergence<br>operation"]
end
subgraph User
Define["Define desired state<br>of data"]
end
subgraph UserAI["User / AI Agent"]
Check["Check state"]
end
Define --> Eval
Eval --> Drift
Drift -->|No| Eval
Drift -->|Yes| Conv
Conv --> Eval
Nagi -->|"Alert"| UserAI
UserAI -->|"Manual operation"| Nagi
- Declarative — Define the desired state; let Nagi handle convergence.
- Composable — Use with your existing tools, or let Nagi take the wheel.
- AI-collaborative — Designed for humans and AI agents to work as one.
pip install nagi-cliSee the Quickstart for a full walkthrough, or browse the Documentation.
Apache License 2.0. See LICENSE for details.