Skip to content

Agents

Read, update, and delete published agents. Agents define the persona, model settings, and alignment behavior for conversations. New agents are created by publishing a draft version.

GET /agents

List agent summaries visible to the current user.

Response 200

json
{
  "items": [
    {
      "id": "uuid",
      "agent_name": "Customer Support Bot",
      "agent_prompt": "You are a helpful support agent...",
      "tags": ["support", "tier1"],
      "color": "#4A90D9",
      "icon_name": "headset",
      "chat_model": "<chat-model-id>",
      "temperature": 0.7,
      "max_tokens": 4096,
      "user_off_topic_streak_threshold": 3,
      "enabled_tools": ["google_calendar", "brave_search"],
      "user_on_topic_streak_threshold": 3,
      "visibility": "org_level",
      "team_ids": [],
      "created_by": "uuid",
      "created_by_name": "Jane Doe",
      "created_at": "2026-01-15T10:30:00Z",
      "updated_at": "2026-01-15T10:30:00Z",
      "anchor_word_candidates": ["help", "issue", "ticket"],
      "ready": true,
      "has_chats": true,
      "can_write": true,
      "source_draft_id": "uuid"
    }
  ]
}

GET /agents/hidden

List IDs of agents the current user has hidden.

Response 200

json
{
  "ids": ["uuid", "uuid"]
}

GET /agents/

Get full agent details.

Response 200 — full agent object (same shape as list items).

PATCH /agents/

Update an agent's metadata. Inference fields (prompt, model, temperature, max_tokens, anchor words) and scope (visibility, teams) are immutable after publish — change them by creating a draft and re-publishing. All fields are optional.

Request body

FieldTypeDescription
agent_namestringDisplay name
tagsstring[]Categorization tags
colorstringHex color for UI
icon_namestringIcon identifier
enabled_toolsstring[]Tool definition IDs to enable (validated against tool registry)

Response 200 — updated agent object.

DELETE /agents/

Response 204 No content.

POST /agents/{agent_id}/hide

Hide an agent from the current user's library view.

Response 204 No content.

DELETE /agents/{agent_id}/hide

Unhide a previously hidden agent.

Response 204 No content.


GET /agents/tools

List the full tool catalog. Each entry includes connection status and per-action grants for the caller's org.

Response 200

json
{
  "items": [
    {
      "id": "google_calendar",
      "name": "Google Calendar",
      "group": "Google",
      "description": "...",
      "requires_credentials": false,
      "credential_fields": [],
      "available": true,
      "auth_kind": "oauth",
      "connected": true,
      "actions": [
        {
          "id": "google_calendar_create_event",
          "label": "Create Event",
          "description": "...",
          "crudl": "create",
          "granted": true
        }
      ]
    }
  ]
}

GET /agents/tools/connections

List org-level tool provider connections for the Connections page.

Response 200

json
{
  "items": [
    {
      "provider": "google",
      "name": "Google",
      "connected": true,
      "configured": true,
      "auth_mode": "oauth",
      "category": "integration",
      "credential_fields": [],
      "scope_options": [],
      "tools": ["Google Calendar", "Google Docs"],
      "auth_actions": ["google_calendar_create_event"],
      "actions": [{ "id": "...", "label": "...", "description": "...", "crudl": "create", "granted": true }]
    }
  ],
  "is_org_admin": true
}

GET /agents/tools/{provider}/authorize

Start OAuth consent for a tool provider (org admins only).

Query parameters

ParamTypeDescription
return_tostringFrontend path to redirect after callback
scopesstring[]OAuth scopes to request (repeat param for multiple)

Response 200

json
{ "authorize_url": "https://accounts.google.com/..." }

POST /agents/tools/{provider}/connection

Connect a platform-key provider by supplying an API key (org admins only).

Request body

FieldTypeDescription
api_keystringAPI key for the provider

Response 204 No content.

DELETE /agents/tools/{provider}/connection

Disconnect a tool provider (org admins only).

Response 204 No content.