公式知見の読み解き

スキル・コマンド・サブエージェントをどう分けるか——公式の説明と私の使い分け

公式のClaude Academyが説明するスキル・コマンド・サブエージェントの違い(読み込まれるタイミングと権限)を読み解き、自分がどう使い分けているか、直すことにした点を1つ紹介します。

「公式知見の読み解き」シリーズの2回目は、AI開発ツールClaude Codeが用意している3つの仕組み、スキル・コマンド・サブエージェントの違いを取り上げます。3つとも「決まった作業をAIに任せる」ための仕組みですが、いつ内容が読み込まれるか、どこまでの権限を持つかがそれぞれ違います。この違いを分からずに使うと、同じような仕組みを二重に作ってしまいます。

起動するたびに何が読まれるか

公式は、スキルの置き場所は個人用のフォルダとプロジェクト用のフォルダの2つで、起動時にAIが読み込むのは各スキルの名前と説明だけだと説明しています。実際のタスクが来て、名前や説明の内容と一致したときに初めて、そのスキルの本文全体が今の会話に読み込まれます。つまり、スキルをいくつ用意しても、使われていない間はAIの理解力をほとんど消費しません。

コマンドはこれと対照的です。こちらが名前を指定して明示的に呼び出したときだけ、その中身が読み込まれます。スキルが「AIが自分から気づいて使う仕組み」だとすれば、コマンドは「こちらから名指しで頼む仕組み」という違いになります。

スキル コマンド サブエージェント 起動時に読まれるもの 名前と説明だけ 一致したら本文を読む 呼ばれるまで読まない 名指しで全文を読む 名前と説明が常に見える そこから起動を判断する 実行される場所 今の会話に合流する 同じコンテキストで動く 今の会話に合流する 同じコンテキストで動く 別の作業場で動く 終了後は要約だけ返す 権限 今の会話の権限のまま 使えるツールは絞れる 今の会話の権限のまま 使えるツールは絞れる 使えるツールを個別指定 指定なしではスキルを持たない サブエージェントだけが、別の作業場・個別の権限で動く(枠が太い列)
スキルは名前と説明だけを起動時に読み込み、作業内容と一致したときに本文全体を読む。コマンドは名指しで呼ばれたときに全文を読み、サブエージェントだけは別の作業場で動いて終了後に結果の要約だけを返し、使えるツールも個別に指定する。

サブエージェントは、別の作業場で動く

サブエージェントは、スキルやコマンドとは仕組みそのものが違います。呼び出すと、今の会話とは別の、まっさらな作業場でタスクに取り組み、終わった後は結果の要約だけを今の会話に返します。途中でどんなファイルを読んだか、何回やり直したかといった細かい経過は、今の会話には残りません。

公式は、サブエージェントを実際に動かすタイミングと、動かすときにどんな指示を渡すかの両方を、サブエージェントの「説明文」が決めると述べています。説明文が具体的であるほど、AIは「今がこのサブエージェントを使う場面だ」と正しく判断でき、渡す指示の中身も具体的になります。

もう1つ、公式が強調しているのが権限の違いです。文章のレビューを担当するサブエージェントは、書き換える権限を持たず、読むことしかできない設定にすべきだとされています。書いた本人がその場で直しながら見直すよりも、別の役割として提示されたものを読むほうが、粗を見つけやすいという理由です。加えて、サブエージェントはスキルを自動では受け継ぎません。今の会話で使えるスキルがそのまま渡るのではなく、明示的に「このサブエージェントにはこのスキルを使わせる」と指定した場合だけ、そのスキルにアクセスできます。

自分の運用でどう分けているか

私はこれまで、記事の書き方や検査の基準のように「知っておいてほしいが毎回の会話には要らない知識」をスキル側に、日々の決まった作業の入口をコマンド側に分けてきました。文章のレビューのように、自分で書いた直後に自分で採点すると甘くなりやすい作業だけは、サブエージェントに渡して、別の役割として読ませるようにしています。

直すことにした点が1つあります。レビュー専用のつもりで作っていた設定が、実は決まった書式(サブエージェントに必要なYAMLの設定欄)を欠いていて、サブエージェントとして呼び出せない状態のまま放置されていました。名前だけレビュー役を名乗っていても、仕組みとして機能していなければ意味がありません。次に手を入れるときは、権限を読み取り専用に絞った状態で作り直すつもりです。

出典(Claude Academy・日本語版)

  1. スキル — https://academy.claude.com/ja/courses/claude-code-101/skills
  2. 効果的なサブエージェントの設計 — https://academy.claude.com/ja/courses/introduction-to-subagents/designing-effective-subagents
  3. コードレビュー — https://academy.claude.com/ja/courses/claude-code-101/code-review
  4. スキルの共有(サブエージェントはスキルを自動継承しないという説明) — https://academy.claude.com/ja/courses/introduction-to-agent-skills/sharing-skills