Engine
The Engine is the runtime orchestrator for naas-abi-core.
Related pages: Configuration, EngineConfiguration-Reference, Module-System, Overview.
What it does
Engine.load() performs:
- Module dependency resolution.
- Service loading (only required services).
- Module instantiation/loading.
- Ontology loading into triple store.
- Final
on_initialized()lifecycle callback.
Basic usage
from naas_abi_core.engine.Engine import Engine
engine = Engine()
engine.load()
for name, module in engine.modules.items():
print(name, module)Load a subset:
engine = Engine()
engine.load(module_names=["my_module"])Access patterns
engine.configuration: validatedEngineConfiguration.engine.services: loaded runtime services (triple_store,vector_store,secret, etc.).engine.modules: loaded module instances keyed by module name.
Safety behavior
- Accessing
engine.modulesbeforeload()raises a runtime error. - Missing required module dependencies fail fast.
- Circular module dependencies are rejected.
Proxy behavior inside modules
Modules receive an EngineProxy, not the raw engine.
engine_proxy.modules: only declared dependencies (unless unlocked).engine_proxy.services: only declared service dependencies.
This enforces dependency contracts at runtime and avoids accidental coupling.