Skip to main content
POST
/
v1
/
agents
Create an agent
curl --request POST \
  --url https://api-sandbox.featherhq.com/v1/agents \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "name": "<string>",
  "description": "<string>",
  "persona": "<string>",
  "system_prompt": "<string>",
  "global_skill_ids": [
    "3c90c3cc-0d44-4b50-8888-8dd25736052a"
  ],
  "context_variables": [
    {
      "name": "<string>",
      "source": "derived",
      "enum_values": [
        "<string>"
      ],
      "reask_cap": 123,
      "description": "<string>"
    }
  ],
  "variable_defaults": {},
  "channel_specific_config": {},
  "router_config_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "model_settings": {
    "model": "<string>",
    "config": {
      "temperature": 123,
      "max_tokens": 123,
      "top_p": 123,
      "stop_sequences": [
        "<string>"
      ],
      "request_timeout_ms": 123,
      "thinking_budget": 2
    }
  },
  "metadata": {},
  "kb_clearance_level": 123,
  "kb_audience_tags": [
    "<string>"
  ],
  "knowledge_gap_analysis_enabled": true
}
'
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "name": "<string>",
  "created_at": "2023-11-07T05:31:56Z",
  "updated_at": "2023-11-07T05:31:56Z",
  "description": "<string>",
  "active_revision_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "active_revision": {
    "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "name": "<string>",
    "created_at": "2023-11-07T05:31:56Z",
    "updated_at": "2023-11-07T05:31:56Z",
    "description": "<string>",
    "persona": "<string>",
    "system_prompt": "<string>",
    "global_skill_ids": [
      "3c90c3cc-0d44-4b50-8888-8dd25736052a"
    ],
    "context_variables": [
      {
        "name": "<string>",
        "source": "derived",
        "enum_values": [
          "<string>"
        ],
        "reask_cap": 123,
        "description": "<string>"
      }
    ],
    "variable_defaults": {},
    "tool_refs": [
      {}
    ],
    "knowledge_base_refs": [
      {}
    ],
    "policies_enabled": true,
    "policy_refs": [
      {}
    ],
    "channel_specific_config": {},
    "router_config_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "model_settings": {
      "model": "<string>",
      "config": {
        "temperature": 123,
        "max_tokens": 123,
        "top_p": 123,
        "stop_sequences": [
          "<string>"
        ],
        "request_timeout_ms": 123,
        "thinking_budget": 2
      }
    },
    "kb_clearance_level": 123,
    "kb_audience_tags": [
      "<string>"
    ],
    "created_by": "<string>"
  },
  "metadata": {},
  "platform_tools": {},
  "knowledge_gap_analysis_enabled": true,
  "release_suite_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "release_gate_mode": "off",
  "release_gate_max_failures": 0
}

Authorizations

x-api-key
string
header
required

Body

application/json
name
string
required
description
string | null
persona
string | null
system_prompt
string | null
global_skill_ids
string<uuid>[] | null
context_variables
ContextVarSpec · object[] | null
variable_defaults
Variable Defaults · object
channel_specific_config
Channel Specific Config · object
router_config_id
string<uuid> | null
model_settings
ModelChainEntry · object
metadata
Metadata · object
kb_clearance_level
integer | null
kb_audience_tags
string[] | null
knowledge_gap_analysis_enabled
boolean
default:true

Response

Successful Response

id
string<uuid>
required
organization_id
string<uuid>
required
name
string
required
created_at
string<date-time>
required
updated_at
string<date-time>
required
description
string | null
active_revision_id
string<uuid> | null
active_revision
AgentRevisionResponse · object
metadata
Metadata · object
platform_tools
Platform Tools · object
knowledge_gap_analysis_enabled
boolean
default:true
release_suite_id
string<uuid> | null
release_gate_mode
enum<string>
default:off

Per-agent release-gate mode (ENG-727). off = no release checks; advisory = compute + display a verdict but never block activation; blocking = (Phase 2) refuse activation without a fresh passing verdict. Dormant in Phase 1 — only the Phase-2 activation gate reads it.

Available options:
off,
advisory,
blocking
release_gate_max_failures
integer
default:0