Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

Skill Sync オブジェクト構造

概要

skillSync オブジェクトを使用すると、管理者は外部ソースから Skills をミラーリングできます。v1.3.13 では、GitHub がサポートされているプロバイダーです。

GitHub Skill Syncは、設定されたリポジトリパスからSKILL.mdファイルおよびそのバンドルファイルを読み込み、それらをsource: "github"を持つSkillとして保存します。また、その後の同期時に、ミラーリングされた行をアップストリームのリポジトリと同期させます。

skillSync:
  github:
    enabled: true
    intervalMinutes: 60
    runOnStartup: true
    sources:
      - id: librechat-skills
        owner: your-org
        repo: your-skills-repo
        ref: main
        paths:
          - skills
        skillDiscoveryDepth: 2
        token: '${GITHUB_SKILLS_TOKEN}'
        # credentialKey: production-skills
        # tenantId: your-tenant-id

認証情報

各ソースに対して token または credentialKey のいずれかを使用し、両方を同時に使用しないでください。token${GITHUB_SKILLS_TOKEN} のような環境変数参照である必要があります。選択したリポジトリに対して、Contents(コンテンツ)および Metadata(メタデータ)の読み取り専用権限を持つ GitHub のファイングレイン個人アクセストークンを使用してください。

トップレベルのフィールド

skillSync.github

KeyTypeDescriptionExample
github.enabledBooleanGitHub Skill Syncを有効または無効にします。enabled: true
github.intervalMinutesNumberGitHub Skill Syncの実行頻度。5分から35791分の間で指定する必要があります。intervalMinutes: 60
github.runOnStartupBooleanサーバー起動時にGitHub Skill Syncを実行します。runOnStartup: true
github.sourcesArray of ObjectsSkillsをスキャンするためのGitHubリポジトリおよびパス。GitHub Skill Syncが有効な場合に必須です。

デフォルト:

  • enabled: false
  • intervalMinutes: 60
  • runOnStartup: false
  • sources: []

Source Fields

github.sources エントリは、1つのリポジトリソースを設定します。

KeyTypeDescriptionExample
idString安定した一意のソースID。英数字で開始し、英数字、アンダースコア、またはハイフンのみを含む必要があります。id: librechat-skills
ownerStringGitHubの組織名またはユーザー名。owner: your-org
repoStringGitHubリポジトリ名。repo: your-skills-repo
refString読み込むGitのref、ブランチ、タグ、またはコミット。デフォルトは `main` です。ref: main
pathsArray of Stringsスキャンするリポジトリパス。リポジトリのルートからスキャンするには `.` を使用します。paths: ["skills"]
skillDiscoveryDepthNumber`SKILL.md`をスキャンするために設定された各パス以下のディレクトリ深度。デフォルトは`2`、最大値は`10`です。skillDiscoveryDepth: 2
tokenStringGitHubトークンを含む環境変数リファレンス。`credentialKey`とは相互排他的です。token: '${GITHUB_SKILLS_TOKEN}'
credentialKeyString管理者Skill Sync認証エンドポイントを通じて管理される保存済みのGitHub認証キー。`token`とは排他的です。credentialKey: production-skills
tenantIdStringテナント分離が有効な場合に、ミラーリングされたSkillsを所有するオプションのテナントID。tenantId: tenant-a

ソースアイデンティティ

id フィールドはミラーアイデンティティの一部です。これは固定しておいてください。ソースを名前変更されたリポジトリや新しい ref に再指定しても、ミラーリングされた Skill は同じソース ID にリンクされたままになりますが、ソース ID を変更すると新しいミラーが作成されます。

tenantId が設定されている場合、同期の読み取りおよび書き込みはそのテナントの分離コンテキスト内で実行されます。tenantId はソースIDに対して不変(イミュータブル)として扱ってください。後から変更、追加、または削除を行うと、以前にミラーリングされたスキルが古いテナントに残されたままになります。

同期動作

GitHub Skill Sync:

  • 設定された各パスの下にある SKILL.md ファイルを検出します。
  • SKILL.md の本文、フロントマター、およびバンドルされたファイルをインポートします。
  • ソースID、オーナー、リポジトリ、参照、スキルパス、コミットSHA、BLOB SHAなどのソースメタデータを保存します。
  • アップストリームのファイルが変更されたときに、ミラーリングされたSkillsを更新します。
  • 設定されたソースから削除された、ミラーリングされたSkillsおよびファイルを削除します。
  • 同期ロックを使用するため、一度に1つのGitHub同期実行のみが進行します。

管理者用 endpoint

管理APIは、GitHub Skill Syncのステータス、手動実行、および保存された認証情報の管理を公開します:

KeyTypeDescriptionExample
GET /api/admin/skills/sync/statusEndpoint有効状態、スケジュール設定、ソースのステータス、認証情報の有無、および最近の同期回数を返します。
POST /api/admin/skills/sync/runEndpoint呼び出し元が必要な管理者Skills権限を持っている場合に、手動同期実行を開始します。
PUT /api/admin/skills/sync/credentials/:credentialKeyEndpoint認証キーのGitHubトークンを保存またはローテーションします。
DELETE /api/admin/skills/sync/credentials/:credentialKeyEndpoint認証キーに保存されたGitHubトークンを削除します。

ステータスの読み取りには、管理者アクセス権とSkillsの読み取り権限が必要です。手動実行および認証情報の書き込みには、プラットフォームレベルのSkills管理権限が必要です。

このガイドはいかがでしたか?