Skip to main content

API for Agents

Best practices for AI agents using the DaoFlow API directly.

Three-Lane Safety​

Always use the appropriate API lane:

LaneWhen to UseSafe for Agents
ReadObserving state✅ Always safe
PlanningPreviewing changes✅ Always safe
CommandExecuting mutations⚠️ Requires write scopes
1. GET /trpc/viewer → Know your auth method, role, and granted scopes
2. GET /trpc/infrastructureInventory or /trpc/services → See current state
3. GET /trpc/deploymentPlan or /trpc/composeDeploymentPlan → Preview changes
4. POST /trpc/triggerDeploy → Execute a service deploy when the plan is acceptable
5. GET /trpc/recentDeployments or /trpc/deploymentLogs → Verify the queued result

Use api-contract.json as the authoritative machine-readable inventory instead of reverse-engineering route names from source.

Idempotency​

Where your client stack supports idempotency or replay protection, keep the key stable across retries for the same intended mutation.

Error Handling​

Parse structured errors from the API:

{
"error": {
"code": "FORBIDDEN",
"message": "Scope denied: deploy:start required",
"data": {
"requiredScopes": ["deploy:start"],
"grantedScopes": ["deploy:read"]
}
}
}

When you receive FORBIDDEN, report the required scope to the user rather than retrying.

Rate Limits​

Agent tokens have rate limits. If exceeded, wait for retryAfter seconds:

{
"error": {
"code": "TOO_MANY_REQUESTS",
"data": { "retryAfter": 30 }
}
}

Agent-Friendly Diagnostics​

The API provides special diagnostic endpoints for agents:

  • "Why did this deploy fail?" — use deploymentLogs plus operationsTimeline
  • "Compare deploys" — use configDiff endpoint
  • "What changed?" — use operationsTimeline or auditTrail, depending on whether you need runtime events or write-audit history