Skip to main content
Agents are the center of the Feather platform. They define who the assistant is, what it can do, and how it behaves across conversations.

Agent Model

Feather separates an agent into two layers:
  • Agent: the stable identity for a use case such as support, qualification, reminders, or scheduling
  • Agent version: the deployable snapshot that contains the prompt, tools, models, voice, and channel-specific settings
This model lets you iterate safely: build a new version, test it, then deploy it when ready.

Agent Types

Feather supports two primary agent types:
  • CALL for live voice conversations
  • TEXT for SMS and message-first use cases
Text-capable agents can also power outbound email threads and web chat flows when the related channel settings are configured.

What Lives on a Version

An agent version can include:
  • Prompt instructions and variables
  • Custom tools and pre-built tools
  • Knowledge base collections
  • Language, voice, STT, TTS, and LLM settings
  • Call behavior such as voicemail handling, interruption tuning, and silence timeouts
  • Message behavior such as SMS and email token limits or inactivity windows

Prompt Design

Keep prompts operational, not aspirational. A good production prompt usually covers:
  • The agent’s job
  • What information it must collect
  • What tools it is allowed to use
  • When to escalate, transfer, or stop
  • Tone and response length

Example Prompt Shape

{
  "system": "You are a renewal specialist for Feather Labs. Confirm who you are speaking with, explain the reason for the conversation, answer contract questions, and offer the next step.",
  "variables": [
    {
      "name": "accountName",
      "required": false,
      "defaultValue": "the account"
    },
    {
      "name": "renewalDate",
      "required": false
    }
  ],
  "tools": ["lookup_contract", "create_follow_up_task"],
  "preBuiltTools": []
}

Creating an Agent

This request creates a text-capable agent with prompt variables and message settings.
curl -X POST "https://prod.featherhq.com/api/v1/agents" \
  -H "X-API-Key: $FEATHER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Renewals Assistant",
    "description": "Handles proactive renewal outreach",
    "agentType": "TEXT",
    "useKnowledgeBase": true,
    "prompt": {
      "system": "You are a renewal specialist for Feather Labs. Be concise, confirm account context, and move the customer toward the next step.",
      "variables": [
        {
          "name": "accountName",
          "required": false
        },
        {
          "name": "renewalDate",
          "required": false
        }
      ],
      "tools": ["lookup_contract", "create_follow_up_task"],
      "preBuiltTools": []
    },
    "voicemailMessage": null,
    "overrideSTTConfig": null,
    "sms": {
      "inactivityTimeoutHours": 24,
      "smsMaxTokens": 500,
      "smsTemperature": 0.7
    }
  }'

Deployments

Creating an agent gives you an initial version, but live traffic uses the version you deploy. Common pattern:
  1. Create or update a version.
  2. Run tests or internal QA.
  3. Deploy that version.
  4. Route phone numbers, workflows, or public entry points to the deployed version.

When to Create a New Version

Create a new version when you change any of these:
  • Prompt behavior
  • Tools or tool permissions
  • Knowledge base attachments
  • Voice, model, or language settings
  • Channel configuration such as email sender identity or silence tuning