Skip to main content
Skills are reusable packages of specialized knowledge that extend the Dema Agent’s capabilities. Unlike instructions which are always injected into every conversation, skills are loaded on-demand — the agent only loads a skill’s full content when it’s relevant to the current task. This makes skills ideal for domain-specific workflows, procedural knowledge, and analysis templates that would be too large or too specialized to include in every conversation.

Skills vs. instructions

InstructionsSkills
When loadedAlways (every message)On-demand (when relevant)
Context costFull content always in contextOnly name + description in context; full content loaded when needed
Best forGlobal preferences, formatting rules, company guidelinesSpecialized workflows, analysis templates, domain expertise
Python helpersNot supportedSupported — auto-injected functions
TriggeringAlways active when enabledAgent decides based on description match
Use instructions for things that should apply to every conversation. Use skills for things that apply to specific types of tasks.

How skills work

1. Discovery

When you enable a skill, the agent sees its name and description in its context. This is lightweight — only metadata, not the full content.

2. Activation

When the agent determines a skill is relevant to your request (based on the description), it calls the Use Skill tool to load the full content.

3. Guidance

The agent follows the skill’s instructions — step-by-step workflows, analysis frameworks, formatting guidelines, or whatever the skill provides.

4. Python helpers (optional)

If the skill includes Python code, helper functions are automatically injected into the execution environment. The agent can call these functions directly without writing any setup code.

Managing skills

Go to Agents → Settings → Skills to view and manage your skills.

Skill tabs

TabContents
My skillsSkills you’ve created
Organization skillsSkills shared with your organization
Dema skillsBuilt-in skills provided by Dema (cannot be edited or deleted)

Actions

  • Toggle on/off — Enable or disable a skill for your account
  • Create — Write a new skill (name, description, content)
  • Edit — Modify skills you own
  • Delete — Remove skills you own
  • Change visibility — Share a private skill with your organization or specific teams

Visibility

VisibilityWho can see itWho can toggle it
PrivateOnly the creatorOnly the creator
OrganizationEveryone in the organizationEveryone
DemaEveryoneEveryone (toggle only — cannot edit or delete)

Creating skills

There are two ways to create a skill:

1. From the settings UI

Go to Agents → Settings → Skills and click New skill. Fill in:
  • Name — Clear, descriptive name
  • Description — What the skill does and when to use it
  • Content — Markdown instructions and guidance

2. From a conversation (using the Skill Creator)

The Dema Agent comes with a built-in skill called Skill Creator (found in the Dema skills tab). When enabled, you can ask the agent to create skills for you directly in a conversation. Simply tell the agent what kind of skill you want:
“Create a skill for analyzing campaign profitability that compares ROAS across channels and identifies which campaigns to pause or scale.”
The agent will use the Skill Creator guidance to craft an effective skill with a proper name, description, and content, then save it to your account using the Create Skill tool.
The Skill Creator is itself a skill — enable it from Agents → Settings → Skills → Dema skills to use it.

Anatomy of a good skill

Every skill has three parts:

Name

A clear, descriptive name that tells you what the skill does at a glance. Good: “Campaign Profitability Analyzer” Avoid: “My skill” or “Analysis”

Description

The description is the primary triggering mechanism. The agent reads it to decide when to activate the skill. Include both what the skill does and specific triggers for when to use it. Good: “Analyzes campaign profitability by comparing ROAS, CPA, and contribution margin across channels. Use when the user asks to evaluate campaign performance, identify underperforming campaigns, or optimize marketing spend allocation.” Avoid: “A skill about campaigns.”

Content

The full instructions, loaded only when the skill activates. Structure it clearly with:
  • Step-by-step workflows — What data to fetch, how to analyze it, how to present results
  • Decision trees — Conditional logic for different scenarios
  • Examples — What good outputs look like
  • Pitfalls — Common mistakes to avoid

Writing effective skills

Core principles

Concise is key. The context window is a shared resource. Skills share it with the system prompt, conversation history, and the user’s request. Only include information the agent doesn’t already know.
Default assumption: the agent is already very smart. Only add context it doesn’t have. Challenge each paragraph: “Does this justify its token cost?”
Set appropriate degrees of freedom. Match specificity to the task:
Freedom levelWhen to useExample
High (guidelines)Multiple valid approaches”Present findings in a clear, visual format”
Medium (structured steps)Preferred pattern exists”Start with a summary table, then break down by channel”
Low (specific instructions)Operations are fragile or consistency is critical”Always calculate contribution margin as: revenue − COGS − marketing cost”

Writing guidelines

  1. Use imperative form — “Analyze the data” not “You should analyze the data”
  2. Be specific — Include concrete examples, not just abstract principles
  3. Structure clearly — Use headers, lists, and sections for easy scanning
  4. Keep it focused — One skill = one domain or task type
  5. Test mentally — Walk through a scenario to ensure the guidance is complete

Python helpers

Skills can include Python code that gets automatically injected into the agent’s execution environment when the skill is loaded. This is powerful for repeatable analyses.

How it works

  1. You define Python functions in the skill’s code field
  2. When the agent loads the skill, these functions are injected into the Python session
  3. The agent calls the functions directly — no setup code needed

Key principle: zero additional code

The functions should print and display results automatically. The agent using the skill should not need to write formatting code.

Example

A skill for finding peak sales days might include this Python helper:
def find_max_sales(df):
    """Find the date with maximum sales."""
    max_idx = df['order:total:dema'].idxmax()
    date = df.loc[max_idx, 'day']
    sales = df.loc[max_idx, 'order:total:dema']
    print(f'=== MAX SALES ===')
    print(f'Date: {date}')
    print(f'Sales: {sales:,.0f} SEK')
    return {'date': date, 'sales': sales}
The agent then uses it like this:
df = memory.get_object(key)['data']
find_max_sales(df)
One line. Results display automatically.

Python code guidelines

  • Functions take DataFrames as arguments
  • Use API column names in logic ('order:total:dema', 'day')
  • Bake in the display — use print() to show results automatically
  • Use friendly column names only in print output
  • Return data for optional further use by the agent
Skills with Python helpers are created as private by default. You can share them with your organization from the settings UI after creation.

Example: building a skill step by step

Let’s walk through creating a skill for weekly channel performance reviews.

Step 1: Define the purpose

What specific task does this skill cover? → “Weekly review of marketing channel performance with trend analysis and recommendations.”

Step 2: Write the description (triggers)

Weekly marketing channel performance review with trend analysis and
actionable recommendations. Use when the user asks to review channel
performance, compare weekly marketing results, or get a channel health
check.

Step 3: Write the content

# Weekly Channel Performance Review

## Data to Fetch
- Metrics: revenue, spend, ROAS, orders, CPA
- Dimensions: channel, week
- Period: last 8 weeks (for trend context), focus on latest vs previous

## Analysis Steps

1. Fetch the data for the last 8 weeks by channel
2. Calculate week-over-week changes for the latest week
3. Identify top and bottom performers by ROAS change
4. Flag any channels with spend increases but ROAS decreases
5. Summarize with a table and 2-3 key recommendations

## Output Format
- Summary table: channel, spend, revenue, ROAS, WoW change
- Highlight: best and worst performing channels
- Recommendations: specific actions (increase/decrease/investigate)

Step 4: Create it

Either paste this into the skill creation form in settings, or ask the agent:
“Create a skill for weekly channel performance reviews. It should analyze the last 8 weeks of channel data, compare week-over-week, and give actionable recommendations on which channels to scale or investigate.”

Built-in Dema skills

Dema provides built-in skills that are available to all users. These appear in the Dema skills tab and cannot be edited or deleted — you can only toggle them on or off.

Skill Creator

The Skill Creator is a built-in Dema skill that guides the agent through creating effective skills. When enabled, the agent uses this skill’s guidance whenever you ask it to create a new skill. It covers:
  • What makes a good skill (concise, focused, appropriate degrees of freedom)
  • How to structure the name, description, and content
  • Writing guidelines (imperative form, specific examples, clear structure)
  • Example skill structures
Enable the Skill Creator from Agents → Settings → Skills → Dema skills before asking the agent to create skills for you. This ensures the agent follows best practices when crafting new skills.