What are Skills?
Skills are modular, self-contained packages that extend DeerFlow’s capabilities by providing specialized knowledge, workflows, and tools. Think of them as “onboarding guides” for specific domains or tasks.What Skills Provide
Specialized Workflows
Multi-step procedures for specific domains
Tool Integrations
Instructions for working with specific file formats or APIs
Domain Expertise
Company-specific knowledge, schemas, business logic
Bundled Resources
Scripts, references, and assets for complex tasks
Skill Structure
Every skill consists of a requiredSKILL.md file and optional bundled resources:
SKILL.md Format
EverySKILL.md consists of:
Frontmatter (YAML)
Contains
name and description fields - the only fields DeerFlow reads to determine when to use the skill.Creating a Skill
Edit the Frontmatter
Update
SKILL.md with your skill’s metadata:Include all “when to use” information in the description - not in the body. The body is only loaded after triggering.
Write Instructions
Add your skill instructions in the Markdown body:Ask DeerFlow a question that should trigger your skill:
Creating Visualizations
…- “Analyze this dataset for me”
- “Can you help with data analysis?”
Best Practices
Keep Skills Concise
Why conciseness matters
Why conciseness matters
Skills share the context window with everything else. Only include information the agent doesn’t already know.✅ Good: Concise examples and specific procedures
❌ Bad: Verbose explanations of basic concepts
Progressive Disclosure
KeepSKILL.md under 500 lines. Split content into separate files:
Keep your main SKILL.md file concise and reference detailed documentation:
Write Effective Descriptions
The description determines when your skill is used:- Good Descriptions
- Bad Descriptions
Avoid Unnecessary Files
Do NOT create:- README.md
- INSTALLATION_GUIDE.md
- CHANGELOG.md
- CONTRIBUTING.md
Real-World Examples
Learn from existing skills in the DeerFlow repository:Deep Research
skills/public/deep-research/SKILL.mdSystematic web research methodologySkill Creator
skills/public/skill-creator/SKILL.mdMeta-skill for creating new skillsPPT Generation
skills/public/ppt-generation/SKILL.mdCreate PowerPoint presentationsFrontend Design
skills/public/frontend-design/SKILL.mdBuild web applications and UIsPackaging Skills
Once your skill is complete, package it for distribution:- Validates the skill structure
- Checks frontmatter and naming conventions
- Creates a
.skillfile (zip with .skill extension)
The packaging script automatically validates your skill. Fix any errors before the package is created.
Installing Custom Skills
Place custom skills in theskills/custom/ directory:
Managing Skills via API
Enable/disable skills dynamically:extensions_config.json.
Troubleshooting
Skill not triggering
Skill not triggering
Check the description in frontmatter:
- Is it specific enough?
- Does it include trigger keywords?
- Does it match the user’s query?
- “Use the [skill-name] skill to…”
Scripts not executing
Scripts not executing
Verify:
- Script has correct shebang (
#!/usr/bin/env python3) - File has execute permissions:
chmod +x scripts/script.py - Script path is correct in SKILL.md
- Script is using sandbox virtual paths (
/mnt/skills/...)
References not loading
References not loading
Ensure:
- Reference files exist in
references/directory - Links in SKILL.md use relative paths
- File names match exactly (case-sensitive)
Validation fails
Validation fails
Check packaging script output:Common issues:
- Missing required frontmatter fields
- Invalid YAML syntax
- Incorrect directory structure
Next Steps
Custom Tools
Add custom tools to complement your skills
MCP Servers
Integrate external tools via MCP protocol
Configuration
Learn about skill configuration options
Examples
Browse built-in skills for inspiration