Zum Hauptinhalt springen

Skills

Skills sind wiederverwendbare Prompt-Module. Sie laden SKILL.md-Dateien und fügen so einer Session domänenspezifische Anweisungen hinzu.

Überblick

  • Domänenwissen als Skill wiederverwenden
  • Gleiches Verhalten projektübergreifend teilen
  • Skills lassen sich pro Session aktivieren/deaktivieren
In der Laravel-Version erfolgt die Konfiguration über skillDirectories und disabledSkills in SessionConfig.

Grundlegende Verwendung

Geben Sie in skillDirectories ein Elternverzeichnis an; die SKILL.md-Dateien in dessen Unterverzeichnissen werden geladen.
use Revolution\Copilot\Contracts\CopilotSession;
use Revolution\Copilot\Facades\Copilot;
use Revolution\Copilot\Types\SessionConfig;

Copilot::start(function (CopilotSession $session) {
    $response = $session->sendAndWait(prompt: 'この差分をセキュリティ観点でレビューして');

    dump($response->content());
}, config: new SessionConfig(
    skillDirectories: [
        base_path('skills'),
    ],
));
Die Angabe im Array-Format ist ebenfalls möglich.
Copilot::run(
    prompt: 'READMEの改善案を出して',
    config: [
        'skillDirectories' => [base_path('skills')],
    ],
);

Skills deaktivieren

Mit disabledSkills können Sie einen Teil der geladenen Skills gezielt deaktivieren.
$config = new SessionConfig(
    skillDirectories: [base_path('skills')],
    disabledSkills: ['experimental-feature', 'deprecated-tool'],
);

Verzeichnisstruktur

skills/
├── code-review/
│   └── SKILL.md
└── documentation/
    └── SKILL.md
Geben Sie in skillDirectories ein Elternverzeichnis wie skills/ an.

Format von SKILL.md

SKILL.md ist Markdown und kann optional ein YAML-Frontmatter enthalten.
---
name: code-review
description: Specialized code review capabilities
---

# Code Review Guidelines

When reviewing code, always check for:

1. Security vulnerabilities
2. Performance issues
3. Code style
4. Test coverage
Wichtige Frontmatter-Felder:
  • name: Skill-Bezeichner (der in disabledSkills angegebene Name)
  • description: Kurze Beschreibung des Skills
Wird name weggelassen, wird der Verzeichnisname verwendet.

Mit Custom Agents kombinieren

Wenn Sie in customAgents[].skills Skill-Namen angeben, wird der Inhalt der jeweiligen Skills beim Start des zugehörigen Agenten vorab geladen.
use Revolution\Copilot\Types\SessionConfig;

$config = new SessionConfig(
    skillDirectories: [base_path('skills/security')],
    customAgents: [
        [
            'name' => 'security-auditor',
            'description' => 'Security-focused code reviewer',
            'prompt' => 'Focus on OWASP Top 10 vulnerabilities',
            'skills' => ['security-scan', 'dependency-check'],
        ],
    ],
);
Wird skills weggelassen, werden dem Agenten keine Skill-Inhalte eingespeist.

Prüfen und Steuern per RPC

Sie können Skills auch über RPC entdecken sowie aktivieren/deaktivieren.
// Skills auf Serverebene entdecken
$result = Copilot::client()->rpc()->skills()->discover();

// Liste der Skills innerhalb der Session
$session->rpc()->skills()->list();

// Innerhalb der Session einzeln aktivieren/deaktivieren
$session->rpc()->skills()->enable(['name' => 'security-scan']);
$session->rpc()->skills()->disable(['name' => 'security-scan']);

Best Practices

  • Skills nach Domäne aufteilen (z. B. skills/security, skills/testing)
  • name und description im Frontmatter angeben
  • Bei konfligierenden Anweisungen explizit über disabledSkills ausschließen
  • Zunächst einzeln testen, bevor Sie mehrere Skills kombinieren

Referenzen

Zuletzt geändert am 13. Juli 2026