dari.yml.
Example
TypeScript repo:Required fields
| Field | Description |
|---|---|
name | Human-readable agent name |
sdk | SDK selection. Supported values are openai-agents, claude-agent-sdk, and opencode |
entrypoint | Entrypoint to invoke, such as agent.py:agent or src/agent.ts:agent |
Optional sections
| Section | Description |
|---|---|
runtime | Execution settings such as language, version, and per-message execution timeout |
retries | Default retry policy for message execution |
secrets | Platform-managed secret names to inject at runtime |
env | Non-secret environment variables |
Field behavior
sdk
sdk selects the SDK integration for the agent. The public API remains the same across supported SDKs.
entrypoint
entrypoint identifies the entrypoint the runtime should invoke. Keep it stable across publishes unless you are intentionally changing agent behavior.
runtime
Use runtime for execution settings. Representative values include:
languageversiontimeout_seconds
timeout_seconds is the maximum runtime for a single message execution. It does not limit the lifetime of the session itself.
If a message reaches timeout_seconds, that turn stops and returns a terminal message status. The session remains addressable and can accept later messages unless it has been explicitly completed or expired.
After a timeout or a long idle period, the next message may run on a freshly started runtime, so that turn can include cold-start latency.
retries
Retry policy is platform-managed. Message attempts follow the manifest policy instead of requiring client-side retry orchestration.
secrets
List secret names only. Secret values never belong in the manifest.
env
Use env for non-secret runtime configuration that should be available to the running agent.
Recommendations
- Keep the manifest minimal and explicit
- Put only stable, repo-owned runtime configuration in the manifest
- Treat
secretsas references to platform-managed values - Publish a new version for source changes instead of mutating a running session