Workflows You Don't Code

Reusable agent capabilities with skills and playbooks. Define once, execute anywhere. YAML-driven automation.

AI agents need reusable capabilities. Without structure, every task starts from scratch—inconsistent outputs, repeated prompts, no quality control. Skills and playbooks give agents consistent, tested capabilities.

The Problem

Building reliable AI workflows requires:

  • Consistency: Same task should produce same quality output
  • Reusability: Don't rewrite prompts for common operations
  • Composability: Combine simple operations into complex workflows
  • Versioning: Track changes to agent behaviors
  • Testing: Validate agent outputs meet standards

Most teams embed everything in system prompts. They get inconsistent results.

The Solution

SystemPrompt provides skills and playbooks for structured agent capabilities.

Skills: Reusable Capabilities

Skills are atomic agent capabilities:

# services/skills/research.yaml
name: research
description: "Research a topic and summarize findings"
version: "1.0.0"

inputs:
  - name: topic
    type: string
    required: true
  - name: depth
    type: string
    enum: [brief, standard, comprehensive]
    default: standard

prompt: |
  Research the topic: {{topic}}

  Depth level: {{depth}}
  - brief: 2-3 key points
  - standard: 5-7 key points with sources
  - comprehensive: detailed analysis with multiple perspectives

outputs:
  - name: summary
    type: string
  - name: sources
    type: array

Using Skills

Agents reference skills by name:

# services/agents/researcher.yaml
name: researcher
skills:
  - research
  - summarize
  - fact_check
system_prompt: |
  You are a research assistant.
  Use your skills to complete tasks thoroughly.
# Execute skill directly
systemprompt core skills run research --topic "AI safety" --depth comprehensive

# Agent uses skill automatically
systemprompt admin agents message researcher "Research quantum computing"

Playbooks: Multi-Step Workflows

Playbooks define complex workflows:

# services/playbook/content/blog-post.yaml
name: blog-post
description: "Create a complete blog post"
version: "1.0.0"

inputs:
  - name: topic
    type: string
    required: true
  - name: tone
    type: string
    enum: [professional, casual, technical]
    default: professional

steps:
  - name: research
    skill: research
    inputs:
      topic: "{{topic}}"
      depth: comprehensive
    outputs:
      - research_notes

  - name: outline
    skill: outline_content
    inputs:
      notes: "{{research_notes}}"
      format: blog
    outputs:
      - outline

  - name: draft
    skill: write_content
    inputs:
      outline: "{{outline}}"
      tone: "{{tone}}"
    outputs:
      - draft

  - name: review
    skill: review_content
    inputs:
      content: "{{draft}}"
      checklist: [grammar, clarity, accuracy]
    outputs:
      - feedback

  - name: finalize
    skill: apply_feedback
    inputs:
      content: "{{draft}}"
      feedback: "{{feedback}}"
    outputs:
      - final_post

output: "{{final_post}}"

Managing Skills

# List all skills
systemprompt core skills list

# View skill details
systemprompt core skills show research

# Sync skills from files to database
systemprompt core skills sync --direction to-db -y

# Run a skill
systemprompt core skills run research --topic "MCP protocol"

Managing Playbooks

# List all playbooks
systemprompt core playbooks list

# View playbook
systemprompt core playbooks show blog-post

# Execute playbook
systemprompt core playbooks run blog-post --topic "AI Infrastructure"

# Sync playbooks
systemprompt core playbooks sync --direction to-db -y

Skill Discovery

Skills are organized in the filesystem:

services/
├── skills/
│   ├── research.yaml
│   ├── summarize.yaml
│   ├── fact_check.yaml
│   ├── write_content.yaml
│   └── review_content.yaml
├── playbook/
│   ├── content/
│   │   ├── blog-post.yaml
│   │   └── social-post.yaml
│   ├── research/
│   │   └── deep-research.yaml
│   └── guide/
│       └── start.md

Skill Versioning

Track skill changes:

# services/skills/research.yaml
name: research
version: "1.1.0"  # Semantic versioning
changelog:
  - version: "1.1.0"
    changes: "Added depth parameter"
  - version: "1.0.0"
    changes: "Initial release"

External Skills

Register skills from external sources:

# Register skill from URL
systemprompt core skills register --url https://skills.example.com/research.yaml

# Register from GitHub
systemprompt core skills register --github user/repo/skills/research.yaml

Why This Matters

Consistency

Same skill produces consistent outputs:

Ad-hoc Prompts Skills
Varies by phrasing Defined inputs/outputs
No structure Versioned schema
Hard to test Testable
Copy-paste errors Single source of truth

Composability

Build complex workflows from simple parts:

research → outline → draft → review → publish
   ↓          ↓        ↓        ↓         ↓
 skill      skill    skill    skill    skill

Team Collaboration

Skills are shared across:

  • Multiple agents
  • Multiple projects
  • Team members
  • Environments (dev → prod)

Quality Control

Validate skill outputs:

# services/skills/research.yaml
validation:
  output:
    summary:
      min_length: 100
      max_length: 5000
    sources:
      min_items: 3

Integration with Agents

Agents automatically use assigned skills:

# services/agents/content-writer.yaml
name: content-writer
skills:
  - research
  - write_content
  - review_content
playbooks:
  - blog-post
  - social-post

When the agent receives a task, it:

  1. Identifies relevant skill/playbook
  2. Executes with proper inputs
  3. Validates outputs
  4. Returns structured result

Getting Started

Create a skill:

# services/skills/summarize.yaml
name: summarize
description: "Summarize text content"
inputs:
  - name: text
    type: string
    required: true
  - name: max_words
    type: integer
    default: 100
prompt: |
  Summarize the following text in {{max_words}} words or less:

  {{text}}
outputs:
  - name: summary
    type: string

Sync to database:

systemprompt core skills sync --direction to-db -y

Use in an agent:

# services/agents/assistant.yaml
name: assistant
skills:
  - summarize

Execute:

systemprompt admin agents message assistant "Summarize this article: [long text]"

See the Skills Reference for detailed configuration options.