The Lenso mental model
Understand Apps, Plugins, Capabilities, Hosts, Plans, and the Kernel through one small example.
You only need six ideas to make sense of the rest of the framework. Imagine an
App whose Agent can call an uppercase Tool.
| Idea | In the example | Responsibility |
|---|---|---|
| App | The complete Agent product | The behavior the owner intends to run. |
| Plugin | company.uppercase |
One removable unit of product behavior. |
| Capability | lenso.agent.tool-provider@1 |
The typed role through which Plugins collaborate. |
| Plugin Instance | company.uppercase/default |
One configured selection of a Plugin. |
| Host | The Agent executable | Supplies the allowed Plugin inventory and host mechanisms. |
| Resolved App Plan | The exact accepted graph | Immutable execution input consumed by the Kernel. |
From an authoring choice to running behavior
The App owner changes visible Plugin selections and configuration. Composition resolves those choices against the Host Catalog and fails before boot if a required Capability is missing or ambiguous. The Kernel receives only the accepted Plan; it does not discover Plugins or repair the graph while running.
A Capability is a role, not an implementation
The Agent Loop requires a Tool Provider Capability. The uppercase Plugin is
one implementation of that role. Another Plugin can provide the same contract,
and App Composition selects the exact binding before startup.
This separation is what makes behavior replaceable: consumers depend on the Capability, while the App owns the implementation choice.