Everstack
API ReferenceAgentsAgent CRUD

Agent CRUD

POST/v1/agents
POST/v1/agents

Your instance endpoint, shown on the instance page in the dashboard. Each instance has its own host; there is no shared API host.

Request Body

PropertyTypeRequiredDescription
tenantIdstringNo
namestringNo
descriptionstringNo
modelstringNo
systemPromptstringNo
toolsstring[]No
configobjectNo
maxTurnsintegerNo
maxToolCallsPerTurnintegerNo
mode"AGENT_MODE_UNSPECIFIED" | "AGENT_MODE_PRIMARY" | "AGENT_MODE_SUBAGENT"NoAgentMode controls whether an agent is user-facing or delegation-only.
maxStepsintegerNo
taskPermissionMode"TASK_PERMISSION_MODE_UNSPECIFIED" | "TASK_PERMISSION_MODE_ASK" | "TASK_PERMISSION_MODE_ALWAYS" | "TASK_PERMISSION_MODE_DENY"NoTaskPermissionMode controls delegation behavior for task/spawn execution.
hiddenbooleanNo
colorstringNo
workingDirectorystringNo
mentionAliasstringNo
executionPolicyobjectNoAgentExecutionPolicy is a typed policy container for runtime controls.
memoryConfigobjectNoAgentMemoryConfig configures persistent memory for an agent.

Responses

200 Create a new agent definition

PropertyTypeDescription
agentobjectAgentDefinition is the blueprint/config for an agent.

default An unexpected error response.

PropertyTypeDescription
codeinteger
messagestring
detailsobject[]

Request

curl -X POST "http://localhost:8089/v1/agents" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"tenantId":"string","name":"string","description":"string","model":"string","systemPrompt":"string","tools":["string"],"maxTurns":0,"maxToolCallsPerTurn":0,"mode":"AGENT_MODE_UNSPECIFIED","maxSteps":0,"taskPermissionMode":"TASK_PERMISSION_MODE_UNSPECIFIED","hidden":true,"color":"string","workingDirectory":"string","mentionAlias":"string","executionPolicy":{"taskPermissionMode":"TASK_PERMISSION_MODE_UNSPECIFIED","maxSteps":0,"workingDirectory":"string"},"memoryConfig":{"enabled":true,"scope":"string","autoRetrieve":true,"autoRetrieveTopK":0,"autoExtract":true}}'
const response = await fetch("http://localhost:8089/v1/agents", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
  "tenantId": "string",
  "name": "string",
  "description": "string",
  "model": "string",
  "systemPrompt": "string",
  "tools": [
    "string"
  ],
  "maxTurns": 0,
  "maxToolCallsPerTurn": 0,
  "mode": "AGENT_MODE_UNSPECIFIED",
  "maxSteps": 0,
  "taskPermissionMode": "TASK_PERMISSION_MODE_UNSPECIFIED",
  "hidden": true,
  "color": "string",
  "workingDirectory": "string",
  "mentionAlias": "string",
  "executionPolicy": {
    "taskPermissionMode": "TASK_PERMISSION_MODE_UNSPECIFIED",
    "maxSteps": 0,
    "workingDirectory": "string"
  },
  "memoryConfig": {
    "enabled": true,
    "scope": "string",
    "autoRetrieve": true,
    "autoRetrieveTopK": 0,
    "autoExtract": true
  }
}),
});
const data = await response.json();
import requests

response = requests.post(
    "http://localhost:8089/v1/agents",
    headers={
        "Authorization": "Bearer YOUR_API_KEY",
        "Content-Type": "application/json",
    },
    json={
  "tenantId": "string",
  "name": "string",
  "description": "string",
  "model": "string",
  "systemPrompt": "string",
  "tools": [
    "string"
  ],
  "maxTurns": 0,
  "maxToolCallsPerTurn": 0,
  "mode": "AGENT_MODE_UNSPECIFIED",
  "maxSteps": 0,
  "taskPermissionMode": "TASK_PERMISSION_MODE_UNSPECIFIED",
  "hidden": true,
  "color": "string",
  "workingDirectory": "string",
  "mentionAlias": "string",
  "executionPolicy": {
    "taskPermissionMode": "TASK_PERMISSION_MODE_UNSPECIFIED",
    "maxSteps": 0,
    "workingDirectory": "string"
  },
  "memoryConfig": {
    "enabled": true,
    "scope": "string",
    "autoRetrieve": true,
    "autoRetrieveTopK": 0,
    "autoExtract": true
  }
},
)
data = response.json()

Response

{
  "agent": {
    "id": "string",
    "tenantId": "string",
    "name": "string",
    "description": "string",
    "model": "string",
    "systemPrompt": "string",
    "tools": [
      "string"
    ],
    "maxTurns": 0,
    "maxToolCallsPerTurn": 0,
    "enabled": true,
    "createdAt": "2024-01-01T00:00:00Z",
    "updatedAt": "2024-01-01T00:00:00Z",
    "mode": "AGENT_MODE_UNSPECIFIED",
    "maxSteps": 0,
    "taskPermissionMode": "TASK_PERMISSION_MODE_UNSPECIFIED",
    "hidden": true,
    "color": "string",
    "workingDirectory": "string",
    "mentionAlias": "string",
    "executionPolicy": {
      "taskPermissionMode": "TASK_PERMISSION_MODE_UNSPECIFIED",
      "maxSteps": 0,
      "workingDirectory": "string"
    },
    "memoryConfig": {
      "enabled": true,
      "scope": "string",
      "autoRetrieve": true,
      "autoRetrieveTopK": 0,
      "autoExtract": true
    }
  }
}
{
  "code": 0,
  "message": "string",
  "details": [
    {
      "@type": "string"
    }
  ]
}