RR

rasahq/rasa-agent-skills

Developer tools
6 stars Quality 60 Trend 22Apache-2.0

A collection of skills for AI coding agents working with Rasa CALM

Overview

A collection of skills for AI coding agents working with Rasa CALM. Skills are packaged instructions that guide agents through building, configuring, and testing Rasa conversational AI agents. Each skill has two version fields in its frontmatter: - — the version of the skill package itself (follows semver, e.g. "0.1.0"). - — the minimum Rasa Pro version required for the features the skill describes, expressed as a semver range (e.g. ">=3.14.0"). When a skill is updated with content that covers a feature introduced in a newer Rasa release, bump rasa_version to match. For example, if a skill gains a section about a feature added in Rasa 3.17.0, update rasa_version from ">=3.14.0" to ">=3.17.0". If a feature is later removed or replaced, add an upper bound (e.g. ">=3.14.0,<3.17.0"). Build conversation flows for Rasa CALM agents in YAML. Covers flow design, branching logic, collect and action steps, descriptions, and connecting flows with call and link steps.

README

Rasa Agent Skills

A collection of skills for AI coding agents working with Rasa CALM. Skills are packaged instructions that guide agents through building, configuring, and testing Rasa conversational AI agents.

Skills follow the Agent Skills format.

Versioning

Each skill has two version fields in its frontmatter:

  • version — the version of the skill package itself (follows semver, e.g. "0.1.0").
  • rasa_version — the minimum Rasa Pro version required for the features the skill describes, expressed as a semver range (e.g. ">=3.14.0").

When a skill is updated with content that covers a feature introduced in a newer Rasa release, bump rasa_version to match. For example, if a skill gains a section about a feature added in Rasa 3.17.0, update rasa_version from ">=3.14.0" to ">=3.17.0". If a feature is later removed or replaced, add an upper bound (e.g. ">=3.14.0,<3.17.0").

Available Skills

rasa-building-flows

Build conversation flows for Rasa CALM agents in YAML. Covers flow design, branching logic, collect and action steps, descriptions, and connecting flows with call and link steps.

Use when:

  • Creating or editing conversation flows
  • Designing flow architecture and scoping flows
  • Adding branching logic with conditions
  • Writing flow and collect step descriptions
  • Connecting flows with call and link steps

Topics covered:

  • Scoping a flow (one user goal per flow)
  • File organization and naming conventions
  • Writing effective descriptions for flows and collect steps
  • Slots, collect steps, and rejections
  • Branching and conditions (if/then/else)
  • call vs link for connecting flows
  • Flow guards

rasa-calling-mcp-tools-from-flows

Call MCP tools directly from Rasa flow steps. Replaces custom action code for simple API integrations by using a call step with explicit input/output mappings.

Use when:

  • Invoking an MCP tool via a call step in a flow
  • Mapping slot values to tool parameters
  • Extracting tool results (structured or unstructured) into slots

Topics covered:

  • call step with mcp_server and mapping
  • Input mapping (param + slot)
  • Output mapping (slot + value with Jinja2 expressions)
  • Structured vs unstructured tool result formats

rasa-configuring-assistant

Configure config.yml and endpoints.yml for Rasa CALM agents. Covers pipeline components, policies, action endpoint, and language settings.

Use when:

  • Setting up a new Rasa CALM project
  • Modifying pipeline components (command generators, flow retrieval)
  • Configuring policies (FlowPolicy)
  • Setting the action endpoint or language

Topics covered:

  • Minimal CALM configuration
  • Pipeline (command generators, embeddings, input limits)
  • Policies (FlowPolicy)
  • Language and multilingual setup
  • Model groups, action endpoint, NLG server

rasa-configuring-mcp-server

Configure MCP (Model Context Protocol) servers in endpoints.yml. Covers server definitions, authentication methods, and connecting to multiple external services.

Use when:

  • Defining MCP servers in endpoints.yml
  • Setting up authentication (API key, OAuth 2.0, pre-issued token)
  • Connecting to multiple external services

Topics covered:

  • Server definition (name, url, type)
  • API key authentication (default and custom headers)
  • OAuth 2.0 (client credentials)
  • Pre-issued token authentication
  • Environment variable syntax for secrets

rasa-configuring-model-groups

Configure model_groups in endpoints.yml for LLM and embedding providers. Covers single and multi-deployment setups, routing strategies, failover, self-hosted models, and caching.

Use when:

  • Adding or changing LLM providers (OpenAI, Azure, self-hosted)
  • Setting up multi-LLM routing and failover
  • Configuring embedding providers for flow retrieval or enterprise search
  • Enabling response caching

Topics covered:

  • Supported providers (OpenAI, Azure, self-hosted, Ollama, LiteLLM)
  • Single and multi-deployment configuration
  • Routing strategies (shuffle, least-busy, latency, cost, usage)
  • Router customization and Redis-backed strategies
  • Self-hosted models (vLLM, Llama.cpp, Ollama)

rasa-integrating-asr

Integrate a custom automatic speech recognition (ASR/STT) provider with Rasa voice channels from provider documentation. Covers protocol feasibility, audio conversion, turn detection, transcript event mapping, and custom engine configuration.

Use when:

  • Implementing a custom ASREngine
  • Adding a streaming speech-to-text provider
  • Mapping provider transcripts and turn-end events to Rasa
  • Configuring a custom ASR class in credentials.yml

Topics covered:

  • Provider documentation and feasibility checks
  • RasaAudioBytes input formats and conversion
  • UserIsSpeaking, NewTranscript, and UserSilence mapping
  • Turn detection and transcript accumulation
  • Custom module paths, environment variables, and testing

rasa-integrating-tts

Integrate a custom text-to-speech (TTS) provider with Rasa voice channels from provider documentation. Covers streaming and non-streaming synthesis, audio conversion, interruption, resource lifecycle, and custom engine configuration.

Use when:

  • Implementing a custom TTSEngine
  • Adding a text-to-speech provider
  • Choosing streaming or non-streaming text input
  • Configuring a custom TTS class in credentials.yml

Topics covered:

  • Provider protocol and capability analysis
  • Streaming text input versus streaming audio output
  • RasaAudioBytes output formats and conversion
  • In-band interruption and resource cleanup
  • Custom module paths, environment variables, and testing

rasa-managing-slots

Define and manage slots in Rasa CALM domain files. Covers slot types, mappings, validation, and how slots are filled and persist across flows.

Use when:

  • Creating or editing slot definitions
  • Choosing slot types and mappings
  • Configuring slot validation
  • Controlling how slots get filled and persist

Topics covered:

  • Slot types (text, bool, categorical, float, any, list)
  • Slot mappings (from_llm, controlled, from_entity, from_intent)
  • Initial values and persistence
  • Validation strategies (domain-level, flow-level, custom actions)
  • Naming conventions

rasa-rephrasing-responses

Enable and configure the LLM-powered Contextual Response Rephraser. Covers endpoints.yml setup, per-response metadata, and prompt customization.

Use when:

  • Setting up or tuning the Contextual Response Rephraser
  • Choosing rephrasing scope (all responses vs specific ones)
  • Customizing rephrasing prompts

Topics covered:

  • Endpoints configuration (nlg: type: rephrase)
  • Conversation history modes (summary vs transcript)
  • Rephrasing scope (specific, all, all-except)
  • Global and per-response prompt customization

rasa-searching-docs

Answer questions about Rasa Pro and CALM from the documentation that rasa tools init bundles locally in .rasa/llms.txt and .rasa/llms-full.txt, instead of from the agent’s memory.

Use when:

  • Answering any “how does X work”, “how do I Y”, or “is Z supported” question about Rasa
  • Looking up config keys, flow step fields, patterns, CLI commands, or integrations
  • No other skill covers the request

Topics covered:

  • Index-first lookup: find the page in llms.txt, then read only that page or one section of it from llms-full.txt
  • Full-text search when the index has no clear match
  • Checking features against the project’s Rasa version
  • Telling CALM, NLU-based, Studio, and Mantle documentation apart
  • Detecting a stale docs bundle, and online fallbacks when it is missing

rasa-setting-up-a2a-agents

Connect external sub agents to a Rasa CALM assistant via the A2A (Agent-to-Agent) protocol. Covers agent card configuration, authentication, flow invocation, and input/output customization.

Use when:

  • Adding an external agent connected via A2A
  • Configuring an agent card and authentication
  • Invoking an external sub agent from a flow
  • Customizing input/output processing with a Python module

Topics covered:

  • Directory structure and config.yml setup
  • Agent card (obtaining and referencing)
  • Authentication (API key, OAuth 2.0, pre-issued token)
  • Invoking from a flow with call step
  • Task vs Message response patterns
  • Custom A2AAgent class (process_input, process_output)

Add knowledge-base search to a Rasa CALM agent using EnterpriseSearchPolicy. Connect vector stores (Faiss, Milvus, Qdrant) and configure generative or extractive search.

Use when:

  • Setting up RAG / enterprise search
  • Connecting a vector store
  • Overriding pattern_search
  • Implementing a custom information retriever

Topics covered:

  • SearchReadyLLMCommandGenerator setup
  • EnterpriseSearchPolicy (generative and extractive modes)
  • Triggering search via pattern_search or from within flows
  • Vector stores (Faiss, Milvus, Qdrant)
  • Prompt customization
  • Custom information retrievers

rasa-setting-up-react-agents

Configure ReAct sub agents that dynamically select MCP tools based on conversation context. Covers general-purpose and task-specific agent types, prompt customization, tool filtering, and custom Python tools.

Use when:

  • Creating a ReAct sub agent that uses MCP tools
  • Choosing between general-purpose and task-specific agents
  • Filtering which MCP tools an agent can access
  • Customizing prompts, input/output processing, or adding custom tools

Topics covered:

  • Directory structure and config.yml setup
  • General-purpose vs task-specific agents (completion mechanisms)
  • Tool filtering (include_tools, exclude_tools)
  • Invoking from a flow (with and without exit_if)
  • Custom prompt templates (Jinja2)
  • Custom agent class (MCPOpenAgent, MCPTaskAgent)
  • Adding custom Python tools (get_custom_tool_definitions)

rasa-simulating-conversations

Evaluate and test a Rasa assistant using goal-driven simulation. Covers scenario authoring, assertion types, success criteria, running LLM-driven user simulators against a live bot, and analyzing results. Not for scripted E2E tests.

Use when:

  • Setting up eval/simulation infrastructure (eval/conftest.yml)
  • Writing or generating scenario YAML files for a flow
  • Choosing which scenario types to cover (happy path, deviations, edge cases)
  • Running goal-driven simulations where an LLM plays the user role
  • Analyzing simulation results, assertions, and success criteria

Topics covered:

  • Scenario YAML format (simulation_context, setup, goals)
  • Assertion types (flow_started, slot_was_set, action_executed, sequencing, etc.)
  • Success criteria vs deterministic assertions
  • eval/conftest.yml configuration (simulation and evaluation LLMs)
  • Scenario validation and execution via MCP tools
  • Result analysis and Inspector integration

rasa-writing-custom-actions

Write custom actions in Python using the Rasa SDK. Covers API calls from flows, slot validation actions, and dynamic ask actions.

Use when:

  • Creating or editing custom action files
  • Calling external APIs from flows
  • Implementing slot validation actions (validate_{slot_name})
  • Building dynamic ask actions (action_ask_{slot_name})

Topics covered:

  • Action class structure (name() and run())
  • Working with the tracker (get_slot, sender_id)
  • Error handling patterns
  • Returning events (SlotSet, FollowupAction, etc.)
  • Using the dispatcher
  • Custom ask actions and slot validation actions
  • Domain registration

rasa-writing-e2e-tests

Write and maintain end-to-end tests for Rasa CALM in YAML. Covers test cases, assertions, fixtures, stubbing custom actions, and validating flows, slots, and generative responses.

Use when:

  • Creating or editing E2E test cases
  • Adding assertions for flows, slots, and actions
  • Setting up fixtures and mocking datetime
  • Stubbing custom actions for isolated testing

Topics covered:

  • Test case structure (user, bot, utter, slot_was_set steps)
  • Assertions (flow_started, flow_completed, action_executed, bot_uttered)
  • Generative response assertions (relevance and grounding)
  • Fixtures and conftest.yml
  • Stubbing custom actions
  • Running tests and coverage reports

rasa-writing-responses

Write response templates in Rasa CALM domain files. Covers variations, buttons, images, conditional and channel-specific content, and overriding default pattern responses.

Use when:

  • Creating or editing response templates
  • Adding variations, buttons, or images
  • Writing conditional or channel-specific responses
  • Overriding default pattern responses
  • Enabling response rephrasing

Topics covered:

  • Response basics and slot variables
  • Response variations
  • Rich responses (buttons, images, custom payloads)
  • Conditional and channel-specific variations
  • Overriding default pattern responses
  • Voice-specific properties (allow_interruptions)

Installation

See: Documentation - Rasa MCP Tools

Usage

Skills are automatically available once installed. The agent will use them when relevant tasks are detected.

Examples:

Create a flow for booking an appointment
Add a custom action to fetch order status from our API
Set up enterprise search with Qdrant
Write E2E tests for the transfer money flow

Skill Structure

Each skill contains:

  • SKILL.md - Instructions for the agent
  • references/ - Supporting documentation (optional)

License

Apache-2.0

View the full README on GitHub

Recommended Tools

Try a different keyword or remove a filter.

Install

npx skillfish add rasahq/rasa-agent-skills
New to MCP? Start with the mcpskill.org guide →