Skill Sync オブジェクト構造
概要
skillSync オブジェクトを使用すると、管理者は外部ソースから Skills をミラーリングできます。v1.3.13 では、GitHub がサポートされているプロバイダーです。
GitHub Skill Syncは、設定されたリポジトリパスからSKILL.mdファイルおよびそのバンドルファイルを読み込み、それらをsource: "github"を持つSkillとして保存します。また、その後の同期時に、ミラーリングされた行をアップストリームのリポジトリと同期させます。
例
認証情報
各ソースに対して token または credentialKey のいずれかを使用し、両方を同時に使用しないでください。token は ${GITHUB_SKILLS_TOKEN} のような環境変数参照である必要があります。選択したリポジトリに対して、Contents(コンテンツ)および Metadata(メタデータ)の読み取り専用権限を持つ GitHub のファイングレイン個人アクセストークンを使用してください。
トップレベルのフィールド
skillSync.github
| Key | Type | Description | Example |
|---|---|---|---|
| github.enabled | Boolean | GitHub Skill Syncを有効または無効にします。 | enabled: true |
| github.intervalMinutes | Number | GitHub Skill Syncの実行頻度。5分から35791分の間で指定する必要があります。 | intervalMinutes: 60 |
| github.runOnStartup | Boolean | サーバー起動時にGitHub Skill Syncを実行します。 | runOnStartup: true |
| github.sources | Array of Objects | SkillsをスキャンするためのGitHubリポジトリおよびパス。GitHub Skill Syncが有効な場合に必須です。 |
デフォルト:
enabled:falseintervalMinutes:60runOnStartup:falsesources:[]
Source Fields
各 github.sources エントリは、1つのリポジトリソースを設定します。
| Key | Type | Description | Example |
|---|---|---|---|
| id | String | 安定した一意のソースID。英数字で開始し、英数字、アンダースコア、またはハイフンのみを含む必要があります。 | id: librechat-skills |
| owner | String | GitHubの組織名またはユーザー名。 | owner: your-org |
| repo | String | GitHubリポジトリ名。 | repo: your-skills-repo |
| ref | String | 読み込むGitのref、ブランチ、タグ、またはコミット。デフォルトは `main` です。 | ref: main |
| paths | Array of Strings | スキャンするリポジトリパス。リポジトリのルートからスキャンするには `.` を使用します。 | paths: ["skills"] |
| skillDiscoveryDepth | Number | `SKILL.md`をスキャンするために設定された各パス以下のディレクトリ深度。デフォルトは`2`、最大値は`10`です。 | skillDiscoveryDepth: 2 |
| token | String | GitHubトークンを含む環境変数リファレンス。`credentialKey`とは相互排他的です。 | token: '${GITHUB_SKILLS_TOKEN}' |
| credentialKey | String | 管理者Skill Sync認証エンドポイントを通じて管理される保存済みのGitHub認証キー。`token`とは排他的です。 | credentialKey: production-skills |
| tenantId | String | テナント分離が有効な場合に、ミラーリングされた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のステータス、手動実行、および保存された認証情報の管理を公開します:
| Key | Type | Description | Example |
|---|---|---|---|
| GET /api/admin/skills/sync/status | Endpoint | 有効状態、スケジュール設定、ソースのステータス、認証情報の有無、および最近の同期回数を返します。 | |
| POST /api/admin/skills/sync/run | Endpoint | 呼び出し元が必要な管理者Skills権限を持っている場合に、手動同期実行を開始します。 | |
| PUT /api/admin/skills/sync/credentials/:credentialKey | Endpoint | 認証キーのGitHubトークンを保存またはローテーションします。 | |
| DELETE /api/admin/skills/sync/credentials/:credentialKey | Endpoint | 認証キーに保存されたGitHubトークンを削除します。 |
ステータスの読み取りには、管理者アクセス権とSkillsの読み取り権限が必要です。手動実行および認証情報の書き込みには、プラットフォームレベルのSkills管理権限が必要です。
このガイドはいかがでしたか?