Agent Skiils インプットメモ
Table of Contents
これまで「Claude Skills」について、実はしっかりとキャッチアップできていなかった。改めて公式ドキュメントを読み込み、内容を把握してきたので、そのメモ。
Agent Skillsと言いつつ、利用はClaude Codeからを前提に考えて書いている。だから、汎用的でなくClaude Codeに特化した話も入っていますが、悪しからず。
Skillsの目的:LLMを現実の問題に適応させる
LLM(大規模言語モデル)を現実の個別の問題に適応させることがSkillsの目的。
モデルの性能を向上させるには,今まではパラメーター数と学習を増やすアプローチが取られていた。 このアプローチがだと,汎用性と知能を上げることしかできない。
よって必然的に、
- ドメイン固有の専門的な知識
- 実務上の手続き的な知識
が、モデル内部には不足している。
実務で利用する特定の業界でのみ用語や、CADなどの特殊なツールの利用方法など。 一般的でない知識・インターネット上に存在がない/少ない知識、LLMはどうしても弱い。
この欠如を埋めるのが「Skills」である。
物事を理解するために必要な、汎用的な言語理解はモデルが持っている。だから、特定のドメインに特化した知識は、その場その場で教えて上げればいいのだ!
Skillsの主な構成
Skillsは主に3つのパーツで構成されている。
SKILL.md: Skillsのエントリーポイントreferencesディレクトリ: 詳細な知識scriptsディレクトリ: 決定論的なサポートツール
scripts の役割
scripts だけは他2つと異なり、「プログラム」になっている。
これは、LLMが不要な/苦手な 「決定論的な作業」をDelegate(委譲)する ためのものだ。
(例:単純なデータのソートなど)
一方で、skill.md と references は、 ドメイン知識のInjection(注入) を担っている。
「段階的開示 (Progressive Disclosure)」がキーワード
Skillsの設計思想において重要なのが「段階的開示」。 ここでの開示先は LLMのContext になっている。
要は、「いきなり全ての知識がモデルに共有されるのではなく、必要に応じて 段階的にモデルへの取り込みが行われる 」ということ。
具体的には、大きく以下の三段階が存在する。
SKILL.mdの front-matterSKILL.mdの本文references内部(Phase 3以降)
1. SKILL.md の front-matter
SKILL.md には必須項目ありの front-matter が存在する。
name: Skill名description: Skillの内容説明
これらは必須フィールドであり、重要なのは、この front-matter は Claude Code 起動時に自動的にContextに取り込まれる という点。 特定のSkillsの指定が存在しない場合、Claudeはこの front-matter の情報を元に、動的にSkillsを利用(Load)する。 適切にClaudeにSkillsを使ってもらうためには重要な情報になる。
2. skill.md の本文
Skillが呼び出された場合、次に読み込まれるのが skill.md の本文である。
ここは通常のMarkdownとして記述が可能で、Claudeに提供したい知識を書いていく。
ちなみに、初期はとりあえずここに記述するのが良さそう。
Contextが膨大になったり、常に必要じゃない情報が出てきたら references ディレクトリの出番になる。
3. references ディレクトリ
skill.md 以外のMarkdownを格納しておくディレクトリ。Claudeが必要に応じて読みに行く場所だ。
それぞれのドキュメントは MarkDownのLink記法で接続することが可能で、後は勝手に読みに行ってくれる。
以上の三段階を経ることで、 Contextの効率性と、専門知識の獲得 を両立させている。
所感:MCPやSlash Commandとの違い
当初、MCP(Model Context Protocol)との住み分けが良く分からず、「scripts で決定論的な補助をすることがメインだ」と認識していた。
これは間違いで実際のところ、ドメイン知識を入れることこそが第一であり 、「LLMに実務を実行させるためのもの」 だった。
( scripts は飽くまで補助で,決定論が優位なものをカバーするだけ )
これまでのツールとの比較
今までの Slash Command や MCP とは異なる。
- Slash Command: Contextの定型化
- MCP: 外部環境との接続
- Skills: Slash Command × MCP 的なアプローチ(Contextでは「ドメイン側」に倒す)
MCP/Slash Commandは、「人間が便利に使ってもらうためのもの」だったが、Skillsは 「自律させるためのアプローチ」 な気がしている。 要はSkillsは、根本的にこれまでのアプローチとは異質なものだなぁ、と思った次第。
まとめ
個人的には、Skillsは「次のステップ」だと感じている。
Human-in-the-loop から、自律エージェントへの置き換えが、最終目標なのでは?と思ったり。
Skillsは触ったほうが良さそう。