Что такое OpenCode Agent Skills?
Что вы сможете делать после изучения
- Понимать ключевую ценность плагина OpenCode Agent Skills
- Осваивать основные функциональные возможности плагина
- Понимать, как навыки автоматически обнаруживаются и загружаются
- Различать разницу между этим плагином и другими решениями для управления навыками
Текущие трудности
Возможно, вы сталкивались с такими ситуациями:
- Разрозненное управление навыками: навыки разбросаны по проектам, пользовательским каталогам, кэшу плагинов и другим местам, и невозможно найти подходящий навык
- Чем дольше сессия, тем больше проблем: после долгих сессий ранее загруженные навыки теряют эффективность из-за сжатия контекста
- Тревога по поводу совместимости: беспокойство о том, что существующие навыки и плагины не будут работать после миграции с Claude Code
- Необходимость повторной настройки: для каждого проекта требуется повторная настройка навыков, отсутствует единый механизм управления навыками
Все эти проблемы влияют на эффективность использования AI-ассистента.
Основная концепция
OpenCode Agent Skills — это система плагинов, предоставляющая возможности динамического обнаружения и управления навыками для OpenCode.
Что такое навык?
Навык (Skill) — это многократно используемый модуль, содержащий руководство по рабочим процессам AI. Обычно это каталог, содержащий файл SKILL.md (описывающий функциональность и методы использования навыка) и возможные вспомогательные файлы (документация, скрипты и т.д.).
Ключевая ценность: реализация повторного использования навыков между проектами и сессиями через стандартизированный формат навыков (SKILL.md).
Техническая архитектура
Плагин разработан на базе TypeScript + Bun + Zod и предоставляет 4 основных инструмента:
| Инструмент | Функция |
|---|---|
use_skill | Внедрение содержимого SKILL.md навыка в контекст сессии |
read_skill_file | Чтение вспомогательных файлов из каталога навыков (документация, конфигурация и т.д.) |
run_skill_script | Выполнение исполняемых скриптов в контексте каталога навыков |
get_available_skills | Получение списка доступных в настоящее время навыков |
Основные функциональные характеристики
1. Динамическое обнаружение навыков
Плагин автоматически обнаруживает навыки из нескольких мест, отсортированных по приоритету:
1. .opencode/skills/ (уровень проекта - OpenCode)
2. .claude/skills/ (уровень проекта - Claude Code)
3. ~/.config/opencode/skills/ (уровень пользователя - OpenCode)
4. ~/.claude/skills/ (уровень пользователя - Claude Code)
5. ~/.claude/plugins/cache/ (кэш плагинов)
6. ~/.claude/plugins/marketplaces/ (установленные плагины)Правило: вступает в силу первый совпавший навык, последующие навыки с тем же именем игнорируются.
Почему такой дизайн?
Навыки уровня проекта имеют приоритет над навыками уровня пользователя, поэтому вы можете настраивать поведение для конкретного проекта без влияния на глобальную конфигурацию.
2. Внедрение контекста
При вызове use_skill содержимое навыка внедряется в контекст сессии в формате XML:
noReply: true— AI не будет отвечать на внедренное сообщениеsynthetic: true— помечено как системно сгенерированное сообщение (не отображается в интерфейсе, не учитывается как ввод пользователя)
Это означает, что содержимое навыка постоянно присутствует в контексте сессии, и даже если сессия растет и происходит сжатие контекста, навык остается доступным.
3. Механизм восстановления при сжатии
Когда OpenCode выполняет сжатие контекста (обычная операция для длительных сессий), плагин слушает событие session.compacted и автоматически повторно внедряет список доступных навыков.
Это гарантирует, что AI всегда знает, какие навыки доступны, даже в длительных сессиях, и не теряет способность доступа к навыкам из-за сжатия.
4. Совместимость с Claude Code
Плагин полностью совместим с системой навыков и плагинов Claude Code, поддерживая:
- Навыки Claude Code (
.claude/skills/<skill-name>/SKILL.md) - Кэш плагинов Claude (
~/.claude/plugins/cache/...) - Рынок плагинов Claude (
~/.claude/plugins/marketplaces/...)
Это означает, что если вы ранее использовали Claude Code, после миграции на OpenCode вы все еще можете использовать существующие навыки и плагины.
5. Автоматические рекомендации навыков
Плагин отслеживает ваши сообщения, используя семантическое сходство для определения, связаны ли они с каким-либо доступным навыком:
- Вычисление вектора embedding сообщения
- Вычисление косинусного сходства с описаниями всех навыков
- Когда сходство превышает порог, внедрение оценочного промпта с рекомендацией AI загрузить соответствующий навык
Этот процесс полностью автоматический, вам не нужно запоминать названия навыков или явно запрашивать их.
6. Интеграция Superpowers (опционально)
Плагин поддерживает рабочие процессы Superpowers, включенные через переменные окружения:
OPENCODE_AGENT_SKILLS_SUPERPOWERS_MODE=true opencodeПосле включения плагин автоматически обнаруживает навык using-superpowers и внедряет полные рабочие инструкции при инициализации сессии.
Сравнение с другими решениями
| Решение | Особенности | Сценарии применения |
|---|---|---|
| opencode-agent-skills | Динамическое обнаружение, восстановление при сжатии, автоматические рекомендации | Сценарии, требующие единого управления и автоматических рекомендаций |
| opencode-skills | Автоматическая регистрация как инструмент skills_ | Сценарии, требующие независимых вызовов инструментов |
| superpowers | Полный рабочий процесс разработки программного обеспечения | Проекты, требующие строгих спецификаций процессов |
| skillz | Режим сервера MCP | Сценарии, требующие использования навыков в разных инструментах |
Причины выбора этого плагина:
- ✅ Нулевая конфигурация: автоматическое обнаружение и управление навыками
- ✅ Интеллектуальные рекомендации: автоматические рекомендации соответствующих навыков на основе семантического соответствия
- ✅ Восстановление при сжатии: стабильная и надежная работа в длительных сессиях
- ✅ Совместимость: бесшовная миграция навыков Claude Code
Резюме урока
Плагин OpenCode Agent Skills предоставляет OpenCode полные возможности управления навыками через механизмы динамического обнаружения, внедрения контекста и восстановления при сжатии. Его ключевая ценность заключается в следующем:
- Автоматизация: снижение нагрузки от ручной настройки и запоминания названий навыков
- Стабильность: навыки всегда доступны в длительных сессиях
- Совместимость: бесшовная интеграция с существующей экосистемой Claude Code
Анонс следующего урока
В следующем уроке мы изучим Установка OpenCode Agent Skills.
Вы узнаете:
- Как добавить плагин в конфигурацию OpenCode
- Как проверить правильность установки плагина
- Как настроить режим локальной разработки
Приложение: Справочник по исходному коду
Нажмите, чтобы развернуть исходный код
Обновлено: 2026-01-24
| Функция | Путь к файлу | Строки |
|---|---|---|
| Вход плагина и обзор функций | src/plugin.ts | 1-12 |
| Список ключевых функциональных возможностей | README.md | 5-11 |
| Приоритет обнаружения навыков | src/skills.ts | 241-246 |
| Внедрение синтетических сообщений | src/utils.ts | 147-162 |
| Механизм восстановления при сжатии | src/plugin.ts | 144-151 |
| Модуль семантического сопоставления | src/embeddings.ts | 108-135 |
Ключевые константы:
EMBEDDING_MODEL = "Xenova/all-MiniLM-L6-v2": используемая модель embeddingSIMILARITY_THRESHOLD = 0.35: порог семантического сходстваTOP_K = 5: максимальное количество навыков, возвращаемых при автоматической рекомендации
Ключевые функции:
discoverAllSkills(): обнаружение навыков из нескольких местuse_skill(): внедрение содержимого навыка в контекст сессииmatchSkills(): сопоставление соответствующих навыков на основе семантического сходстваinjectSyntheticContent(): внедрение синтетических сообщений в сессию