Agent Skiils インプットメモ

  • By melted-soy-source
  • 8
  • 7 min read
  • Tags: 
  • tech
  • memo

これまで「Claude Skills」について、実はしっかりとキャッチアップできていなかった。改めて公式ドキュメントを読み込み、内容を把握してきたので、そのメモ。
Agent Skillsと言いつつ、利用はClaude Codeからを前提に考えて書いている。だから、汎用的でなくClaude Codeに特化した話も入っていますが、悪しからず。


Skillsの目的:LLMを現実の問題に適応させる

LLM(大規模言語モデル)を現実の個別の問題に適応させることがSkillsの目的。

モデルの性能を向上させるには,今まではパラメーター数と学習を増やすアプローチが取られていた。 このアプローチがだと,汎用性と知能を上げることしかできない

よって必然的に、

  • ドメイン固有の専門的な知識
  • 実務上の手続き的な知識

が、モデル内部には不足している。

実務で利用する特定の業界でのみ用語や、CADなどの特殊なツールの利用方法など。   一般的でない知識・インターネット上に存在がない/少ない知識、LLMはどうしても弱い。

この欠如を埋めるのが「Skills」である。
物事を理解するために必要な、汎用的な言語理解はモデルが持っている。だから、特定のドメインに特化した知識は、その場その場で教えて上げればいいのだ!


Skillsの主な構成

Skillsは主に3つのパーツで構成されている。

  1. SKILL.md: Skillsのエントリーポイント
  2. references ディレクトリ: 詳細な知識
  3. scripts ディレクトリ: 決定論的なサポートツール

scripts の役割

scripts だけは他2つと異なり、「プログラム」になっている。 これは、LLMが不要な/苦手な 「決定論的な作業」をDelegate(委譲)する ためのものだ。
(例:単純なデータのソートなど)

一方で、skill.mdreferences は、 ドメイン知識のInjection(注入) を担っている。


「段階的開示 (Progressive Disclosure)」がキーワード

Skillsの設計思想において重要なのが「段階的開示」。 ここでの開示先は LLMのContext になっている。

要は、「いきなり全ての知識がモデルに共有されるのではなく、必要に応じて 段階的にモデルへの取り込みが行われる 」ということ。

具体的には、大きく以下の三段階が存在する。

  1. SKILL.md の front-matter
  2. SKILL.md の本文
  3. 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は触ったほうが良さそう。