MechaMental
Guides

Configuring Step Types

A deep dive into each pipeline step type, its configuration tabs, and how to set it up.

Overview

When you click + Add Step inside a stage, the step detail dialog opens. Each step has a General tab (name, type, description, timeout, retries), and depending on the step type, additional tabs become available.

This guide covers every step type, its icon/color in the pipeline editor, and the configuration fields you will see in the dialog.

Step Type Reference

brain

Inference

Brain icon, purple. Calls a language model with a system prompt and optional tools.

wrench

Tool Call

Wrench icon, amber. Directly invokes a tool without going through an LLM.

database

Source Query

Database icon, blue. Searches indexed sources using semantic similarity.

database

Source Ingest

Database icon, blue. Loads new data into the source index.

download

Source Get

Download icon, blue. Fetches specific sources by ID.

database

Memory Update

Database icon, green. Stores a memory entry for later retrieval.

search

Memory Query

Search icon, pink. Semantic search over stored memories.

package

Artifact Create

Package icon, orange. Creates and stores an artifact.

package

Artifact Query

Package icon, orange. Searches and retrieves artifacts.

download

Artifact Get

Download icon, orange. Fetches artifacts by ID (pinned/referenced).

message-square

Thread Update

MessageSquare icon, sky blue. Appends a message to a conversation thread.

message-square

Thread Query

MessageSquare icon, sky blue. Retrieves message history from a thread.

shield-check

Approval

ShieldCheck icon, rose. Pauses execution and waits for human approval.


Inference

The inference step is the most commonly used step type. It calls a language model with your system prompt and any attached tools.

Dialog Tabs

TabPurpose
GeneralName, Step Type (locked after creation), Description, Timeout, Max Retries, Dependencies
ConfigLogical model selection, Temperature, Max Tokens
PromptFull-screen Jinja2 editor with character count and variable count
ToolsSelect MCP tool instances; set Tool Execution Mode and Max Tool Rounds
ConditionsOptional condition to control whether this step executes
AdvancedExecution Mode (Single / For Each), Event Streaming SSE config

Prompt Tab

The Prompt tab presents a prompt.jinja2 editor with:

  • A character count in the top-right corner
  • A variable count badge showing how many {{ }} variables are used
  • Syntax hints in the footer: {{ }} for variable interpolation, {% %} for control flow
  • Context-aware variable autocomplete from the pipeline execution context
You are an assistant that answers questions about {{ endpoint_payload.topic }}.

Context from sources:
{{ stages.retrieval.steps.search.output }}

User question: {{ endpoint_payload.message }}

Tools Tab

The Tools tab is labeled Tools & Skills and lets you attach MCP-compatible tool instances to the inference step.

  1. Search tool instances by name, slug, or description
  2. Click a row to toggle selection (checkbox + amber highlight)
  3. Selected tools appear as amber chips at the top
  4. When tools are selected, Execution Settings appears:
    • Tool Execution Mode: Single Turn (one tool call, then respond) or Multi Turn (Agentic) (loop until done)
    • Max Tool Rounds: 1--10 (only shown in multi-turn mode)

Advanced Tab -- For Each Mode

Under Execution Mode, you can switch from Single to For Each:

  • Collection Path -- path to the array in context (e.g., stages.query.steps.search.chunks)
  • Item Alias -- variable name for the current item (e.g., chunk), accessible as {{ chunk }} in the prompt
  • Max Concurrency -- parallel executions (1--20)
  • Item ID Path -- optional path to an ID field on each item
  • Continue on Failure -- toggle to keep processing remaining items when one fails

Advanced Tab -- Event Streaming (SSE)

  • Enable Event Publishing -- toggle on to publish step outputs as Server-Sent Events
  • Stream Tokens -- (inference only) stream LLM tokens in real time
  • Event Mode: Domain Event (standardized name like inference.completed) or Custom Event
  • Event Action: Default, Primary (user-facing response), or Secondary (thinking/cognitive chain)
  • Event Message -- Jinja2 template for the event payload, with a variable picker

Tool Call

Directly invoke a tool without going through an LLM. Useful for deterministic operations.

Config Tab

  • Tool Instance -- select which tool instance to call
  • Input Mapping -- Jinja template to build the tool's input from execution context

Source Query

Searches your indexed sources using semantic similarity.

Config Tab

  • Query -- Jinja template for the search query (e.g., {{ endpoint_payload.message }})
  • Search Scope -- source-level, namespace, or workspace
  • Source Selection -- optionally pin specific sources to search
  • Top K -- number of chunks to retrieve
  • Score Threshold -- minimum similarity score
  • Reranking Model -- optional model for reranking results
  • Logical Model -- embedding model to use for the query

Source Query vs Source Get

Use Source Query when you want semantic search across your knowledge base. Use Source Get when you already know the exact source IDs you need.


Source Ingest

Loads new content into the source index during pipeline execution.

Config Tab

  • Content -- the document content to ingest (Jinja template)
  • Metadata -- tags and metadata for the new source

Source Get

Fetches specific sources by their IDs.

Config Tab

  • Source IDs -- list of source IDs or a Jinja template resolving to IDs (e.g., {{ endpoint_payload.source_ids }})
  • Include Extracted Text -- toggle to include the full extracted text
  • Include Metadata -- toggle to include source metadata
  • Build Combined Context -- toggle to merge multiple sources into a single text block
  • Context Separator -- string used between combined sources

Thread Update

Appends a message to a conversation thread.

Config Tab

  • Content Template -- Jinja template for the message content
  • Role -- message role (user, assistant, system)
  • Source -- where the content originates (e.g., user_input)

Thread Query

Retrieves message history from a conversation thread.

Config Tab

  • Max Messages -- number of recent messages to retrieve (default 20)
  • Include System -- toggle to include system messages
  • Include Tool -- toggle to include tool call messages
  • Ascending -- toggle to reverse chronological order

Memory Update

Stores a memory entry scoped to a namespace.

Config Tab

  • Type -- memory type: fact, preference, summary, entity, instruction, or custom
  • Content -- Jinja template for the memory content
  • Namespace -- where to store the memory

Memory Query

Searches stored memories using semantic similarity.

Config Tab

  • Query -- Jinja template for the search query
  • Types -- filter by memory type
  • Top K -- number of entries to retrieve

Artifact Create

Creates and stores generated content (code, markdown, HTML, etc.).

Config Tab

  • Name -- artifact name
  • Type -- content type (code, markdown, html, image, etc.)
  • Content -- Jinja template for the artifact body
  • Scope -- execution, thread, or namespace

Artifact Query / Artifact Get

  • Artifact Query -- search artifacts by query string within a scope
  • Artifact Get -- fetch specific artifacts by ID, with toggles for content, file content, and metadata

Approval

Pauses pipeline execution and waits for a human to approve or reject before continuing.

Config Tab

  • Approval Message -- what the approver sees (Jinja template)
  • Timeout -- how long to wait before auto-rejecting
  • Approvers -- who can approve (roles or specific users)

Step Conditions

Every step type supports a Conditions tab. Conditions control whether the step executes based on values in the execution context.

{
  "field": "endpoint_payload.include_sources",
  "operator": "equals",
  "value": true
}

Compound Conditions

You can combine multiple conditions with AND/OR logic for complex evaluation rules.

On this page