Skip to main content
The managed Pi runtime is the simplest way to build a Dari agent. Dari owns the agent loop: it calls the model, decides when to invoke tools, records events, saves checkpoints, and waits for the next user message. Your bundle describes the agent with configuration, prompts, tools, and optional sandbox setup. Use the managed Pi runtime when you want a standard coding agent and you do not need to bring your own model SDK or custom orchestration loop.
dari.yml
name: my-agent
harness: pi
instructions:
  system: prompts/system.md
llm:
  model: openai/gpt-5.5
built_in_tools:
  - read
  - bash
  - edit
  - write
The managed runtime available today is harness: pi. Pi is Dari’s standard coding-agent runtime. It supports model calls, built-in tools, checkpoints, and resumable sessions without requiring you to write a runtime process.

What Dari Owns

With the managed Pi runtime, Dari is responsible for the model/tool loop. The llm block is required because Dari needs to know which model to call. built_in_tools and custom_tools are exposed to the managed runtime so it can choose when to use them. Your code does not receive every turn directly. Instead, you configure the agent and provide tools or extensions that the managed runtime can call.

When To Use It

Use the managed Pi runtime for most coding-agent bundles, especially when you want to get started quickly, use Dari-managed model credentials, rely on built-in file and shell tools, or let Dari handle checkpoints and retries. If your agent must call a separate SDK, run a custom planning loop, own provider-specific memory, or emit custom events directly, use a Custom Runtime Server instead.

Complete Example

See Pi Harness Example for a minimal managed bundle you can deploy.