Skip to content

Справочник API-инструментов

Чему вы научитесь

Изучив этот справочник API, вы:

  • Узнаете параметры и возвращаемые значения 4 основных инструментов
  • Освоите правильные способы вызова инструментов
  • Научитесь обрабатывать типичные ошибки

Обзор инструментов

Плагин OpenCode Agent Skills предоставляет следующие 4 инструмента:

Название инструментаОписание функцииСценарий использования
get_available_skillsПолучение списка доступных навыковПросмотр всех доступных навыков с поддержкой поиска и фильтрации
read_skill_fileЧтение файла навыкаДоступ к документации, конфигурации и другим вспомогательным файлам навыка
run_skill_scriptВыполнение скрипта навыкаЗапуск автоматизированных скриптов в директории навыка
use_skillЗагрузка навыкаВнедрение содержимого SKILL.md в контекст сессии

get_available_skills

Получает список доступных навыков с опциональной фильтрацией по поисковому запросу.

Параметры

Имя параметраТипОбязательныйОписание
querystringНетСтрока поискового запроса, сопоставляется с названием и описанием навыка (поддерживает подстановочный знак *)

Возвращаемое значение

Возвращает форматированный список навыков, каждый элемент содержит:

  • Название навыка и метку источника (например, skill-name (project))
  • Описание навыка
  • Список доступных скриптов (при наличии)

Пример ответа:

git-helper (project)
  Git operations and workflow automation tools
  [scripts: tools/commit.sh, tools/branch.sh]

code-review (user)
  Code review checklist and quality standards

Обработка ошибок

  • При отсутствии совпадений возвращается информационное сообщение
  • При опечатке в параметре запроса возвращаются предложения похожих навыков

Примеры использования

Вывод всех навыков:

Ввод пользователя:
Покажи все доступные навыки

Вызов AI:
get_available_skills()

Поиск навыков, содержащих "git":

Ввод пользователя:
Найди навыки, связанные с git

Вызов AI:
get_available_skills({
  "query": "git"
})

Поиск с подстановочным знаком:

Вызов AI:
get_available_skills({
  "query": "code*"
})

Ответ:
code-review (user)
  Code review checklist and quality standards

read_skill_file

Читает вспомогательные файлы из директории навыка (документацию, конфигурацию, примеры и т.д.).

Параметры

Имя параметраТипОбязательныйОписание
skillstringДаНазвание навыка
filenamestringДаПуть к файлу (относительно директории навыка, например docs/guide.md, scripts/helper.sh)

Возвращаемое значение

Возвращает сообщение об успешной загрузке файла.

Пример ответа:

File "docs/guide.md" from skill "code-review" loaded.

Содержимое файла внедряется в контекст сессии в формате XML:

xml
<skill-file skill="code-review" file="docs/guide.md">
  <metadata>
    <directory>/path/to/skills/code-review</directory>
  </metadata>
  
  <content>
[Фактическое содержимое файла]
  </content>
</skill-file>

Обработка ошибок

Тип ошибкиСообщение
Навык не найденSkill "xxx" not found. Use get_available_skills to list available skills.
Небезопасный путьInvalid path: cannot access files outside skill directory.
Файл не найденFile "xxx" not found. Available files: file1, file2, ...

Механизм безопасности

  • Проверка безопасности пути: защита от атак обхода директорий (например, ../../../etc/passwd)
  • Доступ ограничен файлами внутри директории навыка

Примеры использования

Чтение документации навыка:

Ввод пользователя:
Покажи руководство по использованию навыка code-review

Вызов AI:
read_skill_file({
  "skill": "code-review",
  "filename": "docs/guide.md"
})

Чтение конфигурационного файла:

Вызов AI:
read_skill_file({
  "skill": "git-helper",
  "filename": "config.json"
})

run_skill_script

Выполняет исполняемый скрипт в директории навыка.

Параметры

Имя параметраТипОбязательныйОписание
skillstringДаНазвание навыка
scriptstringДаОтносительный путь к скрипту (например, build.sh, tools/deploy.sh)
argumentsstring[]НетМассив аргументов командной строки для передачи скрипту

Возвращаемое значение

Возвращает вывод скрипта.

Пример ответа:

Building project...
✓ Dependencies installed
✓ Tests passed
Build complete.

Обработка ошибок

Тип ошибкиСообщение
Навык не найденSkill "xxx" not found. Use get_available_skills to list available skills.
Скрипт не найденScript "xxx" not found in skill "yyy". Available scripts: script1, script2, ...
Ошибка выполненияScript failed (exit 1): error message

Правила обнаружения скриптов

Плагин автоматически сканирует исполняемые файлы в директории навыка:

  • Максимальная глубина рекурсии: 10 уровней
  • Пропуск скрытых директорий (начинающихся с .)
  • Пропуск типичных директорий зависимостей (node_modules, __pycache__, .git и т.д.)
  • Включаются только файлы с битом исполнения (mode & 0o111)

Среда выполнения

  • Рабочая директория (CWD) переключается на директорию навыка
  • Скрипт выполняется в контексте директории навыка
  • Вывод напрямую возвращается AI

Примеры использования

Выполнение скрипта сборки:

Ввод пользователя:
Запусти скрипт сборки проекта

Вызов AI:
run_skill_script({
  "skill": "git-helper",
  "script": "tools/build.sh"
})

Выполнение с аргументами:

Вызов AI:
run_skill_script({
  "skill": "deployment",
  "script": "deploy.sh",
  "arguments": ["--env", "production", "--force"]
})

use_skill

Загружает содержимое SKILL.md навыка в контекст сессии.

Параметры

Имя параметраТипОбязательныйОписание
skillstringДаНазвание навыка (поддерживает префикс пространства имён, например project:my-skill, user:my-skill)

Возвращаемое значение

Возвращает сообщение об успешной загрузке навыка со списком доступных скриптов и файлов.

Пример ответа:

Skill "code-review" loaded.
Available scripts: tools/check.sh, tools/format.sh
Available files: docs/guide.md, examples/bad.js

Содержимое навыка внедряется в контекст сессии в формате XML:

xml
<skill name="code-review">
  <metadata>
    <source>user</source>
    <directory>/path/to/skills/code-review</directory>
    <scripts>
      <script>tools/check.sh</script>
      <script>tools/format.sh</script>
    </scripts>
    <files>
      <file>docs/guide.md</file>
      <file>examples/bad.js</file>
    </files>
  </metadata>

  [Маппинг инструментов Claude Code...]
  
  <content>
[Фактическое содержимое SKILL.md]
  </content>
</skill>

Поддержка пространств имён

Используйте префикс пространства имён для точного указания источника навыка:

Пространство имёнОписаниеПример
project:Навык OpenCode уровня проектаproject:my-skill
user:Навык OpenCode уровня пользователяuser:my-skill
claude-project:Навык Claude уровня проектаclaude-project:my-skill
claude-user:Навык Claude уровня пользователяclaude-user:my-skill
Без префиксаИспользует приоритет по умолчаниюmy-skill

Обработка ошибок

Тип ошибкиСообщение
Навык не найденSkill "xxx" not found. Use get_available_skills to list available skills.

Функция автоматического внедрения

При загрузке навыка плагин автоматически:

  1. Перечисляет все файлы в директории навыка (кроме SKILL.md)
  2. Перечисляет все исполняемые скрипты
  3. Внедряет маппинг инструментов Claude Code (если навык этого требует)

Примеры использования

Загрузка навыка:

Ввод пользователя:
Помоги мне провести код-ревью

Вызов AI:
use_skill({
  "skill": "code-review"
})

Указание источника через пространство имён:

Вызов AI:
use_skill({
  "skill": "user:git-helper"
})

Приложение: Справочник по исходному коду

Нажмите, чтобы развернуть расположение исходного кода

Дата обновления: 2026-01-24

ИнструментПуть к файлуСтроки
Инструмент GetAvailableSkillssrc/tools.ts29-72
Инструмент ReadSkillFilesrc/tools.ts74-135
Инструмент RunSkillScriptsrc/tools.ts137-198
Инструмент UseSkillsrc/tools.ts200-267
Регистрация инструментовsrc/plugin.ts160-167
Определение типа Skillsrc/skills.ts43-52
Определение типа Scriptsrc/skills.ts35-38
Определение типа SkillLabelsrc/skills.ts30
Функция resolveSkillsrc/skills.ts269-283

Ключевые типы:

  • Skill: Полные метаданные навыка (name, description, path, scripts, template и т.д.)
  • Script: Метаданные скрипта (relativePath, absolutePath)
  • SkillLabel: Идентификатор источника навыка (project, user, claude-project и т.д.)

Ключевые функции:

  • resolveSkill(): Разрешает название навыка, поддерживает префиксы пространств имён
  • isPathSafe(): Проверяет безопасность пути, предотвращает обход директорий
  • findClosestMatch(): Нечёткий поиск для предложений

Анонс следующего урока

Этот урок завершает справочник API-инструментов OpenCode Agent Skills.

Для получения дополнительной информации обратитесь к: