- GraphQL — full reference and cURL examples in Developers → GraphQL API → DinoAI Programmable Agents API.
- Python SDK — full reference and Python examples in Developers → Python SDK → DinoAI Programmable Agents.
Prerequisites:
- An agent defined under .dinoai/agents/.yml in your repository — see YAML Configuration.
- An API key with DinoAI Agent capabilities.
GraphQL — quick example
Authenticate with an Account API Key (recommended): passAuthorization: Bearer <token> and X-Paradime-Workspace: <workspace_uid>. Legacy Workspace API Keys still work with X-API-KEY / X-API-SECRET headers instead. See Authentication.
agentSessionId and poll with dinoaiAgentRun(agentSessionId: $id) until status reaches a terminal state: COMPLETED, FAILED, or EXPIRED (the agent pod never started). The poll response also returns messages, childSessionIds, and workspaceUid.
Two other arguments are worth knowing:
baseBranchstarts the run from a specific git branch or commit.modelFamilypins the run to a model family, overriding the agent’s own choice. An unrecognized slug still starts the run on the workspace’s default family and returns awarningfield saying so.
Python SDK — quick example
trigger_run, trigger_run_and_wait, send_message, and get_run.
The Python SDK does not wrap
modelFamily yet, so use GraphQL directly to pin a run to a model family.Use the SDK methods rather than posting raw GraphQL yourself.
trigger_run accepts optional slack_channel / slack_thread (both required together) and base_branch, and raises ValueError if neither agent nor message is set. trigger_run_and_wait takes timeout (default 3600) and poll_interval (default 10) and raises DinoaiAgentRunFailedException on a failed run.Related
- Quick Start — End-to-end first-run walkthrough
- Triggering from Bolt — Alternative invocation path via a Bolt schedule
- Agent-to-Agent Delegation — Multi-agent workflows