Skip to main content

AI Skills

Skill nodes connect to the Chat Agent’s input-skill handle to provide domain-specific capabilities. Each skill defines instructions and allowed tools that guide the Chat Agent’s behavior.

How Skills Work

Skills are modular capabilities defined in Markdown files (SKILL.md) that follow the Agent Skills specification:
---
name: skill-name
description: Brief description for LLM visibility
allowed-tools: tool1 tool2
metadata:
  author: machina
  version: "1.0"
---

# Skill Instructions (Markdown)
Detailed instructions loaded when skill is activated.
When connected to a Chat Agent, the skill’s instructions are added to the system prompt, and its allowed tools become available.

Connecting Skills

Skills connect to the Chat Agent’s input-skill handle (diamond shape):
[WhatsApp Skill] --+
                   +--(skill handle)--> [Chat Agent] --> [Output]
[Maps Skill] ------+
Multiple skills can be connected simultaneously.

Available Skills

SkillDescriptionAllowed Tools
AssistantDefault assistant personalityNone
WhatsAppSend/receive WhatsApp messageswhatsappSend, whatsappDb
MemoryLong-term memory managementNone
MapsLocation services via Google MapscreateMap, addLocations, showNearbyPlaces
HTTPMake HTTP requests to APIshttpRequest
SchedulerTask scheduling with timers/cronNone
AndroidAndroid device controlandroidTool
CodeExecute Python/JavaScript codepythonExecutor, javascriptExecutor
Web SearchSearch the webwebSearchTool
CustomUser-created custom skillsConfigurable

Assistant Skill

Provides default assistant personality with helpful, harmless, honest responses.

Parameters

skillName
string
default:"assistant"
Skill identifier

Behavior

  • Responds helpfully to general questions
  • Maintains conversation context
  • Polite and professional tone

Example Use Case

Basic conversational assistant without specialized capabilities.

WhatsApp Skill

Enables the Chat Agent to send and receive WhatsApp messages.

Parameters

skillName
string
default:"whatsapp"
Skill identifier

Allowed Tools

  • whatsappSend - Send messages (text, media, location, contact)
  • whatsappDb - Query chat history, contacts, groups

Behavior

  • Can send messages to individuals and groups
  • Can retrieve chat history and contact information
  • Handles media attachments (images, videos, documents)

Example Use Case

User: "Send a message to John saying I'll be late"
Agent: [Uses whatsappSend to send message to John]
       "I've sent the message to John."

Memory Skill

Enables long-term memory management across conversations.

Parameters

skillName
string
default:"memory"
Skill identifier

Behavior

  • Can store important information for later retrieval
  • Semantic search of stored memories
  • User preferences and facts retention

Example Use Case

User: "Remember that my favorite color is blue"
Agent: [Stores preference in memory]
       "I'll remember that your favorite color is blue."

[Later conversation]
User: "What's my favorite color?"
Agent: [Retrieves from memory]
       "Your favorite color is blue."

Maps Skill

Provides location services via Google Maps API.

Parameters

skillName
string
default:"maps"
Skill identifier

Allowed Tools

  • createMap - Create maps with custom center and zoom
  • addLocations - Geocode addresses to coordinates
  • showNearbyPlaces - Find nearby places (restaurants, stores, etc.)

Behavior

  • Address to coordinates conversion (geocoding)
  • Find nearby places by type
  • Get directions and distance

Example Use Case

User: "Find coffee shops near Times Square"
Agent: [Uses addLocations to geocode, then showNearbyPlaces]
       "I found 5 coffee shops near Times Square:
        1. Starbucks - 0.1 miles
        2. Blue Bottle Coffee - 0.2 miles
        ..."

HTTP Skill

Enables the Chat Agent to make HTTP requests to external APIs.

Parameters

skillName
string
default:"http"
Skill identifier

Allowed Tools

  • httpRequest - Make GET, POST, PUT, DELETE, PATCH requests

Behavior

  • Call external REST APIs
  • Handle JSON request/response
  • Set custom headers and authentication

Example Use Case

User: "Get the current Bitcoin price from CoinGecko"
Agent: [Uses httpRequest to call CoinGecko API]
       "The current Bitcoin price is $45,230."

Scheduler Skill

Enables task scheduling with timers and cron expressions.

Parameters

skillName
string
default:"scheduler"
Skill identifier

Behavior

  • Schedule one-time tasks
  • Set up recurring tasks with cron expressions
  • Manage scheduled task list

Example Use Case

User: "Remind me to check email every morning at 9am"
Agent: [Creates cron schedule]
       "I've scheduled a reminder to check email at 9am daily."

Android Skill

Enables Android device control and monitoring.

Parameters

skillName
string
default:"android"
Skill identifier

Allowed Tools

  • androidTool - Gateway to Android service nodes

Behavior

  • Check device status (battery, network, location)
  • Control device settings (WiFi, Bluetooth, screen)
  • Launch apps and manage applications
  • Read sensor data (motion, environment)

Example Use Case

User: "Turn on WiFi and check the battery level"
Agent: [Uses androidTool to enable WiFi and check battery]
       "WiFi is now enabled. Battery is at 67% and charging."

Code Skill

Enables Python and JavaScript code execution for calculations and data processing.

Parameters

skillName
string
default:"code"
Skill identifier

Allowed Tools

  • pythonExecutor - Execute Python code
  • javascriptExecutor - Execute JavaScript code

Behavior

  • Perform complex calculations
  • Process and transform data
  • Generate formatted output

Example Use Case

User: "Calculate the compound interest on $10,000 at 5% for 10 years"
Agent: [Uses pythonExecutor to calculate]
       "The compound interest on $10,000 at 5% for 10 years is $6,288.95,
        giving a total of $16,288.95."

Web Search Skill

Enables web search capabilities via DuckDuckGo or Serper API.

Parameters

skillName
string
default:"webSearch"
Skill identifier

Allowed Tools

  • webSearchTool - Search the web

Behavior

  • Search for current information
  • Find relevant web pages
  • Get real-time data not in training

Example Use Case

User: "What are the latest news about SpaceX?"
Agent: [Uses webSearchTool]
       "Here are the latest SpaceX news:
        1. SpaceX launches 23 Starlink satellites...
        2. Starship test flight scheduled for..."

Custom Skill

User-created skills with configurable capabilities.

Parameters

skillName
select
required
Select from skills stored in the database

Creating Custom Skills

  1. Create a SKILL.md file with the required format
  2. Store in the database via the Skills API
  3. Select in the Custom Skill node

SKILL.md Format

---
name: my-custom-skill
description: Description visible to the LLM
allowed-tools: httpRequest calculatorTool
metadata:
  author: your-name
  version: "1.0"
---

# Custom Skill Instructions

You are a specialized assistant that...

## Available Actions
- Action 1: Description
- Action 2: Description

## Guidelines
- Guideline 1
- Guideline 2

Skill Content Editor

Skill nodes include a built-in code editor for viewing and editing SKILL.md content:
  1. Select a skill node
  2. View the skill instructions in the markdown editor
  3. Make changes as needed
  4. Click Save to update the SKILL.md file

Combining Multiple Skills

Multiple skills can be connected to a single Chat Agent:
[WhatsApp Skill] --+
[Maps Skill] ------+---> [Chat Agent] --> [Output]
[HTTP Skill] ------+
When multiple skills are connected:
  • All skill instructions are combined in the system prompt
  • All allowed tools from all skills become available
  • The agent can use capabilities from any connected skill

Example Multi-Skill Workflow

User: "Send John my current location on WhatsApp"
Agent: [Uses Maps skill to get location]
       [Uses WhatsApp skill to send location message]
       "I've sent your current location to John on WhatsApp."

Tips

Connect only the skills you need. Too many skills can confuse the agent.
Use Custom Skills to create domain-specific assistants for your use case.
Skill instructions should be clear and specific about when to use each capability.
Skills require corresponding Tool nodes to be connected for their allowed-tools to work.