OpenClawのスキル設定
読み込み、インストール、オペレーターのインストールポリシー、スキルごとのエントリー、エージェントの許可リスト、Workshopの上限、サンドボックスのenvの落とし穴
OpenClawのエージェントにどのスキルが見え、それがどうインストールされるかを決める要素の大半は、設定ファイルの1つのキーの下にあり、エージェントごとの表示範囲はエージェントのエントリーの下にあります。リファレンスページが長いのは、スキーマが読み込み、インストール、ゲーティング、Workshop、ホストが管理するインストールポリシーまでを扱っているからです。ここでは、その全体を順番に紹介します。読み込みとシンボリックリンク、インストール設定、インストールポリシーとそのフェイルクローズの仕組み、バンドルの許可リストとスキルごとのエントリー、エージェントの許可リストとそれが何ではないのか、Workshopの設定、そしてサンドボックスの落とし穴です。
読み込みとインストール
- 追加ディレクトリは、バンドルされたスキルやプラグインのスキルよりも下の、最も低い優先度でスキャンされ、チルダ展開に対応しています。信頼されたシンボリックリンク先とは、リンクが設定されたルートの外にある場合でも、シンボリックリンクされたスキルフォルダーの解決先として認められる実ディレクトリのことで、ドキュメントはこのリストをホームディレクトリに向けるのではなく、狭く保つよう求めています。ウォッチャーはデフォルトで有効で、スキルファイルが変更されるとスキルのスナップショットを更新します。
- インストール設定:利用可能な場合はHomebrewのインストーラーを優先する設定、npm、pnpm、yarn、bunから選ぶNodeパッケージマネージャー(影響するのはスキルのインストールだけ)、そしてアップロードフローで用意された非公開のzipアーカイブを、信頼された管理クライアントがインストールできるようにするスイッチ(デフォルトはオフ)です。
- オペレーターのインストールポリシーは、OpenClawがソースをステージングした後、インストールや更新が続行される前に、信頼されたローカルコマンドを実行します。対象は、ClawHub、アップロード、Git、ローカルのスキル、依存関係のインストーラー、プラグインのソースです。コマンドは対象、ソース、出所を記述した1つのJSONオブジェクトを受け取り、allow、warn、blockのいずれかを、理由と任意の検出結果とともに返します。有効なコマンドなしで有効化されている場合、インストールはフェイルクローズになります。block、0以外の終了コード、タイムアウト、無効なJSON、理由の欠落も同様です。
- warnはコミット前にインストールを止めます。対話型のコマンドはオペレーターに対象の名前を入力させてポリシーを再実行し、非対話型のコマンドは明示的な確認フラグを渡せます。コントロールUIではプラグインのインストールに関する警告を確認でき、それ以外のGateway経由のインストールや自動インストールはブロックされたままで、forceが警告を承認することは決してありません。検出結果は100件まで、表示される通知は4,000文字までに制限されます。詳細なdoctorの実行では合成のインストールプローブが実行され、一括更新では対象ごとにポリシーが適用されます。
エージェントのスキル許可リストは、OpenClawのスキル検出、プロンプト、スラッシュコマンドの検出、サンドボックスの同期、スキルのスナップショットのための、表示と読み込みのフィルターです。シェル実行時の認可の境界ではありません。
エントリーと許可リスト
バンドルの許可リストが制限するのはバンドルされたスキルだけで、管理対象のスキル、エージェントレベルのスキル、ワークスペースのスキルには影響しません。スキルごとのエントリーは、スキル名か、宣言されたスキルキーをキーにします。まず、バンドルされていてもインストール済みでもスキルを無効にできるenabledフラグがあり、サポートされたCLIがインストールされてログイン済みになったときに、オプトインのcoding-agentスキルを有効にするのもこのフラグです。次に、主要な環境変数を宣言するスキル向けのAPIキーの便宜フィールドがあり、プレーンテキストかシークレット参照で指定します。さらに、プロセス内でまだ設定されていない場合に限りエージェントの実行に注入される環境変数と、カスタムフィールド用の自由な入れ物があります。組み込みの画像生成は、エントリーではなく、メディアモデルの設定とコアの画像ツールを使います。エージェントの許可リストを使うと、同じマシンとワークスペースのルートに対して、エージェントごとに異なる表示セットを与えられます。defaultsの下に置いた共有のベースラインは、独自のリストを持たないエージェントに継承され、明示的なリストはdefaultsを完全に置き換えます。空のリストは、スキルを1つも公開しません。ここで警告が重要になります。エージェントがホストでexecを実行できる場合、そのシェルは外部クライアントを実行したり、実行ユーザーから見えるホストのファイル(MCPクライアントのレジストリを含む)を読んだりできます。そのため、エージェントごとの分離には、サンドボックスまたはOSユーザーによる分離、拒否または厳格なexec許可リスト、そしてMCPサーバー側でのエージェントごとの認証情報が必要です。
Workshop、シンボリックリンク、サンドボックス
- Workshopの設定:自律モードはoff、propose、autoのいずれかです。デフォルトのautoは、提案のスキャンを行わず、通常のエージェントツールを使ってターンごとと週ごとのメンテナンスを直接行います。一方proposeは、修正内容や完了した大きな作業から保留中の提案を作成します。承認ポリシーはautoまたはpendingです。エージェントあたりの保留中および隔離中の提案の上限は50件で、1から200の範囲で設定できます。提案本文の上限は40,000バイトで、およそ1,000から200,000の範囲で設定でき、説明文は160バイトが絶対的な上限です。
- ワークスペース、project-agent、extra-dir、バンドルのスキルルートは封じ込めの境界です。そのため、シンボリックリンクされたスキルフォルダーの解決先がルートの外にある場合、リンク先が信頼されていない限り、ログを1行残してスキップされます。管理対象と個人のスキルディレクトリは、スキルディレクトリへのシンボリックリンクを無条件に受け入れます。Workshopは各エージェント専用の封じ込めディレクトリを使い、信頼されたリンク先のリストを無視し、そこから抜け出すシンボリックリンクを拒否します。
- スキルごとのenvとAPIキーの値が適用されるのは、ホストでの実行だけです。サンドボックス内では効果がないため、キーに依存するスキルは、Dockerサンドボックスのenvを通じて変数を別途サンドボックスに渡さない限り、not-configuredエラーで失敗します。また、Dockerデーモンにアクセスできるユーザーはコンテナのメタデータからそれらの値を読み取れるため、その露出が許容できない場合は、シークレットファイルのマウントかカスタムイメージで対処します。
自律モードの背後にある対象条件とプライバシーのルールはOpenClawの自己学習の解説で、ローダーが監視しているファイルについてはOpenClawスキルの作成ガイドで説明しています。
境界に関する注記が重要な理由
このスキーマには表示の制御とセキュリティの制御が混在しており、ドキュメントはどちらがどちらなのかを慎重に書き分けています。許可リストはエージェントに提示されるものを決め、インストールポリシーはインストールできるものを決めますが、シェルが到達できる範囲を決めるのはサンドボックスかOSユーザーの分離だけです。その最後の層についてはOpenClawのサンドボックスの解説を、同じくポリシーの対象となるもう1つのインストール経路についてはOpenClawのプラグインを参照してください。
Dialiでは
Dialiでは、ダッシュボードのスキルハブがこのファイルの窓口です。スキルをオンにしてキーを貼り付けると、それがアシスタント上のエントリーになります。手作業で編集するためのホストのシェルはありません。アシスタントについてはDialiのマネージドOpenClawホスティングを、各アシスタントを囲む境界についてはDialiのセキュリティを参照してください。
- 許可リストは置き換えであり、マージされることはありません。
- インストールポリシーは、明確なallow以外はすべてフェイルクローズになります。
- スキルの環境変数は、サンドボックスの壁で止まります。
読むだけでなく、作ってみましょう
エージェントを設定してチャネルを選べば、いつも開いているアプリの中でエージェントが働き始めます。
