Skip to content
Эта страница создана и переведена с помощью ИИ. Если вы заметили неточности, помогите нам улучшить её. Редактировать на GitHub

Skillforge

Skillforge -- это автоматизированный конвейер PRX для обнаружения, оценки и интеграции новых навыков (инструментов) из внешних источников. Вместо ручной настройки каждого инструмента Skillforge может разведывать GitHub-репозитории и реестр Clawhub, оценивать, подходит ли обнаруженный навык для нужд вашего агента, и генерировать манифест интеграции -- всё без вмешательства человека.

Обзор

Конвейер Skillforge состоит из трёх этапов:

┌─────────────┐     ┌──────────────┐     ┌──────────────┐
│   Разведка   │────▶│   Оценка     │────▶│  Интеграция  │
│              │     │              │     │              │
│ Обнаружение  │     │ Скоринг      │     │ Генерация    │
│ навыков из   │     │ фитнеса,     │     │ манифеста,   │
│ GitHub,      │     │ проверка     │     │ внедрение    │
│ Clawhub      │     │ безопасности │     │ в конфиг     │
└─────────────┘     └──────────────┘     └──────────────┘
ЭтапТрейтОтветственность
РазведкаScoutОбнаружение кандидатов навыков из настроенных источников
ОценкаEvaluatorСкоринг каждого кандидата по фитнесу, безопасности и совместимости
ИнтеграцияIntegratorГенерация манифестов и регистрация навыков в реестре инструментов

Архитектура

Skillforge построен на трёх ключевых асинхронных трейтах: Scout (обнаруживает кандидатов по SearchCriteria), Evaluator (оценивает кандидатов по фитнесу и безопасности) и Integrator (генерирует манифесты и регистрирует навыки). Каждый трейт может иметь множество реализаций, и оркестратор конвейера выполняет их последовательно, фильтруя кандидатов на каждом этапе.

Конфигурация

toml
[skillforge]
enabled = true

# Автоматическое обнаружение: периодический поиск новых навыков.
auto_discover = false
discover_interval_hours = 24

# Минимальный балл оценки (0.0-1.0) для интеграции навыка.
min_fitness_score = 0.7

# Требовать ручное одобрение перед интеграцией обнаруженных навыков.
require_approval = true

# Максимальное количество навыков для оценки за один цикл обнаружения.
max_candidates = 20

Источники разведки

Настройте, где Skillforge ищет навыки:

toml
[skillforge.sources.github]
enabled = true

# GitHub-репозитории для поиска.
# Поддерживает паттерны org/user и обнаружение по темам.
search_topics = ["prx-skill", "mcp-server", "ai-tool"]
search_orgs = ["openprx", "modelcontextprotocol"]

# Ограничение частоты для вызовов GitHub API.
max_requests_per_hour = 30

# Токен GitHub для повышенных лимитов (опционально).
# token = "${GITHUB_TOKEN}"

[skillforge.sources.clawhub]
enabled = true

# Эндпоинт реестра Clawhub.
registry_url = "https://registry.clawhub.dev"

# Категории для поиска.
categories = ["tools", "integrations", "automation"]

Этап разведки

Разведчик обнаруживает кандидатов навыков из настроенных источников. Каждый источник реализует трейт Scout по-своему:

Разведчик GitHub

Ищет на GitHub репозитории, соответствующие настроенным темам, организациям или поисковым запросам. Для каждого подходящего репозитория разведчик извлекает:

  • Метаданные репозитория (имя, описание, звёзды, дата последнего обновления)
  • Содержимое README (для анализа возможностей)
  • Файлы манифестов (prx-skill.toml, mcp.json, package.json)
  • Информацию о лицензии

Разведчик Clawhub

Запрашивает API реестра Clawhub для опубликованных навыков. Clawhub предоставляет структурированные метаданные, включая:

  • Имя навыка, версию и описание
  • Схемы ввода/вывода
  • Требования к зависимостям
  • Теги совместимости (версия PRX, ОС, среда выполнения)

Критерии поиска

rust
pub struct SearchCriteria {
    /// Ключевые слова, описывающие желаемую возможность.
    pub keywords: Vec<String>,

    /// Требуемая среда выполнения: "native", "docker", "wasm" или "any".
    pub runtime: String,

    /// Минимальное количество звёзд репозитория (только GitHub).
    pub min_stars: u32,

    /// Максимальный возраст последнего коммита в днях.
    pub max_age_days: u32,

    /// Требуемые типы лицензий (напр., "MIT", "Apache-2.0").
    pub licenses: Vec<String>,
}

Этап оценки

Каждый кандидат проходит через оценщик, который выдаёт балл фитнеса и оценку безопасности:

Критерии оценки

КритерийВесОписание
Релевантность30%Насколько навык соответствует критериям поиска
Качество25%Сигналы качества кода: тесты, CI, документация
Безопасность25%Совместимость лицензии, аудит зависимостей, отсутствие опасных паттернов
Сопровождение10%Недавние коммиты, активные мейнтейнеры, время ответа на issues
Совместимость10%Совместимость с версией PRX, выполнение требований среды выполнения

Проверки безопасности

Оценщик выполняет автоматический анализ безопасности: сканирование совместимости лицензий, аудит уязвимостей зависимостей, обнаружение опасных паттернов кода (сетевые вызовы, доступ к файловой системе, eval) и верификацию совместимости с песочницей.

Структура Evaluation содержит общий fitness_score (0.0-1.0), баллы по каждому критерию, security_status (safe/caution/blocked), человекочитаемое резюме и список замечаний.

Этап интеграции

Навыки, прошедшие порог оценки, переходят на этап интеграции:

Генерация манифеста

Интегратор генерирует Manifest, описывающий, как установить и зарегистрировать навык:

toml
# Сгенерированный манифест: ~/.local/share/openprx/skills/web-scraper/manifest.toml
[skill]
name = "web-scraper"
version = "1.2.0"
source = "github:example/web-scraper"
runtime = "docker"
fitness_score = 0.85
integrated_at = "2026-03-21T10:30:00Z"

[skill.tool]
name = "web_scrape"
description = "Scrape and extract structured data from web pages."

[skill.tool.parameters]
url = { type = "string", required = true, description = "URL to scrape" }
selector = { type = "string", required = false, description = "CSS selector" }
format = { type = "string", required = false, default = "text", description = "Output format" }

[skill.runtime]
image = "example/web-scraper:1.2.0"
network = "restricted"
timeout_secs = 30

Регистрация

После генерации манифеста навык регистрируется в реестре инструментов PRX. Если require_approval = true, манифест ставится в очередь на рассмотрение:

bash
# Список ожидающих интеграций навыков
prx skillforge pending

# Обзор ожидающего навыка
prx skillforge review web-scraper

# Одобрение интеграции
prx skillforge approve web-scraper

# Отклонение интеграции
prx skillforge reject web-scraper --reason "Security concerns"

CLI-команды

bash
# Ручной запуск цикла обнаружения
prx skillforge discover

# Обнаружение с конкретными ключевыми словами
prx skillforge discover --keywords "web scraping" "data extraction"

# Оценка конкретного репозитория
prx skillforge evaluate github:example/web-scraper

# Список всех интегрированных навыков
prx skillforge list

# Показать детали навыка
prx skillforge info web-scraper

# Удалить интегрированный навык
prx skillforge remove web-scraper

# Переоценить все интегрированные навыки (проверка обновлений, проблем безопасности)
prx skillforge audit

Интеграция с самоэволюцией

Skillforge интегрируется с конвейером самоэволюции PRX. Когда агент выявляет пробел в возможностях, он может автоматически запустить цикл обнаружения -- разведку, оценку и (при одобрении) интеграцию подходящего навыка для следующего хода.

Замечания по безопасности

  • Шлюзы одобрения -- всегда устанавливайте require_approval = true в продакшене. Автоматическая интеграция недоверенного кода представляет угрозу безопасности.
  • Применение песочницы -- интегрированные навыки выполняются в тех же ограничениях песочницы, что и встроенные инструменты. Бэкенд песочницы должен быть настроен.
  • Доверие к источникам -- включайте только те источники разведки, которым доверяете. Публичный поиск на GitHub может вернуть вредоносные репозитории.
  • Проверка манифестов -- проверяйте сгенерированные манифесты перед одобрением. Обратите внимание на настройки runtime, network и timeout_secs.
  • Журнал аудита -- все операции Skillforge логируются в журнале активности для проверки соответствия.

Связанные страницы

Released under the Apache-2.0 License.