back to manuals

Skillset Abilities

Abilities are the building blocks of skillsets, representing individual actions that your AI agents can perform. Each ability combines a natural language description with detailed executable instructions, allowing the AI to understand when to trigger the ability and how to execute it correctly. Think of abilities as the specific tools in your agent's toolbox - each one designed for a particular task.

When a user makes a request during a conversation, the AI examines the abilities in the attached skillset to determine which one matches the user's intent. The ability's description helps the AI understand what the ability does, while the instruction field contains the detailed implementation that gets executed when the ability is triggered. This separation between intent detection and execution allows for flexible and powerful agent behaviors.

Creating Abilities

Creating an ability involves defining three key components: a name that identifies the ability, a description that helps the AI understand when to use it, and detailed instructions that specify how to execute the action. The name should be concise and descriptive, while the description should focus on what the ability does and when it should be triggered. The instruction field is where you define the actual implementation using action code blocks and additional guidance.

Abilities can reference secrets for authentication, connect to files for context, or even delegate to other bots for complex workflows. These connections make abilities extremely flexible, allowing you to build sophisticated agent behaviors without hardcoding sensitive information or duplicating logic across multiple abilities.

The instruction field uses a special syntax that combines markdown code blocks with action types (like fetch, search, email) and parameter placeholders. Parameters starting with $[...] are extracted by the AI from user messages, while parameters starting with ${...} reference secrets or conversation metadata. This parameterization system makes abilities dynamic and reusable across different contexts.

Key Components:

  • Name: Short, memorable identifier for the ability (e.g., "Fetch Weather", "Search Knowledge Base")
  • Description: Explains what the ability does and when to use it - this is crucial for intent detection
  • Instruction: Contains the executable action definition with parameters and implementation details
  • Secret: Optional reference to stored credentials for authenticated actions
  • File: Optional reference to documents or context that the ability should consider
  • Bot: Optional reference to another bot that this ability can delegate tasks to

Instruction Syntax Examples:

Fetch external data:

```fetch POST https://api.example.com/data Content-Type: application/json Authorization: Bearer ${SECRET_API_KEY} { "query": "$[query js|the search query]", "limit": 10 } ```

Search a dataset:

```search/datasetId=dataset_id_here $[query|what the user wants to search for] ```

Send an email:

```email/to=support@example.com/replyTo=$[email|user's email address] Please help this user: $[issue|description of their problem] ```

Best Practices:

  • Keep descriptions focused on user intent rather than technical implementation
  • Use clear parameter names that help the AI extract the right information
  • Include default values or constraints in parameter definitions when appropriate
  • Test abilities with various user inputs to ensure robust intent detection
  • Group related abilities into logical skillsets for better organization
  • Use secrets for API keys and sensitive data rather than hardcoding them
  • Consider using ability templates from the platform as starting points

Common Ability Patterns:

  • Data Retrieval: Fetching information from external APIs or databases
  • Search Operations: Querying datasets or knowledge bases for relevant information
  • Communication: Sending emails, notifications, or messages
  • Content Generation: Creating text, images, or other media using AI models
  • Workflow Triggers: Initiating processes in external systems
  • Delegation: Routing complex requests to specialized bots