Choose A Runtime Mode
Managed Pi Runtime
Use this when you want Dari to call the model, run tools, save checkpoints, and manage the standard coding-agent loop. Today this is
harness: pi.Custom Runtime Server
Use this when your runtime code calls the model or SDK and decides what happens on each turn. Today this is
kind: customRuntimeServer.The Difference
| Question | Managed Pi Runtime | Custom Runtime Server |
|---|---|---|
| Who calls the model? | Dari | Your runtime code |
Is llm required? | Yes | No, unless your runtime wants to use it as configuration |
| Who decides when to use tools? | Dari’s managed runtime | Your runtime code or SDK |
| Who emits assistant output? | Dari’s managed runtime | Your runtime response |
| Best for | Standard coding agents | Existing SDKs, custom planners, provider-specific loops |
| Current manifest kind | pi | customRuntimeServer |
Managed Pi Runtime Example
dari.yml
Custom Runtime Server Example
dari.yml
state to keep the previous state unchanged; return "state": null to clear it.