AIエージェントのスキルとは、エージェントに手続き的知識を追加するための仕組みである。大規模言語モデルは事実関係や推論能力には優れているが、実際の業務における具体的なワークフローといった手続き的知識を欠いている。スキルはmarkdown形式のファイルとして定義され、段階的開示という効率的な仕組みによって必要な時にのみロードされる。これはオープンスタンダードとして公開されており、Claude CodeやOpenAI Codexなど主要なAIプラットフォームで採用されている。スキルは認知科学における手続き記憶に相当し、AIエージェントに反復可能なタスクの実行方法を教える役割を果たす。

AIエージェントのスキルとは
AIエージェントのスキルとは一体何でしょうか。そしてなぜこれが、ほぼ全ての主要なAIコーディングプラットフォームで採用されるオープンスタンダードになったのでしょうか。
それは、スキルがエージェントに関する特定の問題に対処するからです。AIエージェントは非常に優れた推論能力を持っていますし、LLM、つまり大規模言語モデルは既に多くの事実を知っています。KubernetesのアーキテクチャやSQLの歴史、あるいは荷を積んでいないツバメの飛行速度について教えてくれます。その部分はカバーされているのですが、彼らには何かが欠けています。
手続き的知識が欠けているのです。実際にどのように仕事が進められるかという具体的な内容、例えば準拠した財務レポートを作成するための47段階のワークフローのようなものです。そうですね、それは楽しそうです。
大規模言語モデルを実行しているAIエージェントが、このようなレポート作成タスクに遭遇すると、基本的に2つの選択肢があります。誰かが毎回、47段階全てのステップをプロンプトで指示する必要があるか、あるいはもっと悪いことに、エージェントが単に推測するかです。
スキルとは、その手続き的知識を実際にエージェントに追加する方法なのです。そしてスキルのフォーマットは、ほとんど滑稽なほどシンプルです。単純にskill.mdファイル、つまりフォルダ内のmarkdownファイルなのです。
スキルの構造
では、スキルが実際にどのようなものか描いてみましょう。一番上には、skill.mdファイルにYAMLフロントマターがあります。フロントマターには何が定義されているのか見てみましょう。
最低限、2つのものがあります。名前と説明です。これらが2つの必須フィールドです。名前はスキルを識別し、説明はエージェントにこのスキルが何をするのか、いつ使用すべきかを伝えます。
この説明は非常に重要です。なぜなら、これがエージェントにこのスキルがいつ適用されるかを正確に伝えるトリガー条件だからです。例えばスキル名がPDF Builderだとしましょう。そして説明には、ユーザーがPDFの抽出を求めた時に使用する、といったことが書かれています。
フロントマターには著者やバージョンなど他のフィールドも入れることができますが、名前と説明が必須です。フロントマターの下には、もう一つのフィールドがあります。これが実際の指示です。
ステップバイステップのワークフロー、ルール、入出力の例、エージェントがその仕事をするために知っておくべきことが何でも含まれます。そしてそれは単純なmarkdownで書かれています。
オプショナルなフォルダ
スキルフォルダには、オプションのフォルダをいくつか含めることもできます。これらは必須ではありませんが、追加することができます。そのオプションフォルダの一つがスクリプトです。
これにはエージェントが実際に実行できる実行可能なJavaScript、Python、bashが含まれます。またリファレンスディレクトリもあり、エージェントが必要と判断した場合にロードされる追加のドキュメントが含まれています。
そして最後のオプションディレクトリはアセットディレクトリで、テンプレートやデータファイルなどの静的リソースが含まれています。これがAIエージェントのスキルの姿ですが、エージェントには多くのスキルが定義されることがあります。
段階的開示の仕組み
では、何百ものスキルがある場合はどうなるのでしょうか。起動時にそれら全てをLLMのコンテキストウィンドウにロードすると、誰かが質問する前にトークンの予算を使い果たしてしまいます。
そこでスキルは段階的開示と呼ばれるものを使用します。段階的開示は3つの階層で機能します。第1階層はメタデータのみで、これが適用されます。
起動時に、エージェントは各スキルから名前と説明だけをロードします。つまりスキルあたりほんの一握りのトークンです。100個のスキルがインストールされていても、オーバーヘッドはコンテキストウィンドウを埋め尽くしません。
これは本質的にスキルの目次のようなものです。第2階層は完全な指示に関連します。エージェントがこのスキルの説明に一致するリクエストを見ると、完全なskill.mdの本文をコンテキストに読み込みます。
これによりエージェントに何をすべきか、つまり我々が教えているスキルが伝えられます。その識別、つまり特定のタスク要件を利用可能なスキルに一致させることは、LLM自身の推論を通じて行われます。
モデルはいつそのスキルを利用できるかを決定します。だからこそ優れたスキルの説明が非常に重要なのです。そして第3階層は、これらのオプションフォルダです。
これらはスクリプト、リファレンス、アセットフォルダにマッピングされるリソースです。そしてそれらは特定のタスクが実際に必要とする時にのみロードされます。
エージェントは、自分ができることの軽量なインデックスから始めます。それが名前と説明です。トリガー条件に一致することに基づいて、関連性がある時に詳細な指示、つまり本文を引き込みます。
そして必要な時点でのみリソースを取得します。スキルはエージェントに一種の知識をもたらします。エージェントに知識を組み込む方法はいくつかあります。
他の知識統合手法との比較
では簡単に比較してみましょう。これらは異なるものを扱うからです。最初に触れたいのはMCP、つまりModel Context Protocolです。
MCPはどのような知識を与えてくれるのでしょうか。ツールアクセスを提供します。エージェントに外部APIを呼び出し、サービスと対話する能力を与えます。MCPはエージェントが何に到達できるかについてですが、いつそれに到達すべきか、あるいは到達した後に何をすべきかは教えてくれません。それがMCPです。
もう一つはRAG、検索拡張生成です。RAGは事実的知識を扱います。実行時に知識データベースから関連するチャンクを引き出します。エージェントが何かを調べる必要がある時には非常に便利です。
しかしRAGはエージェントに何かをする方法を教えるものではありません。それは参考資料です。もう一つはどうでしょうか。ファインチューニングはどうでしょうか。それは何ができるのでしょうか。
ファインチューニングは知識をモデルの重みに直接焼き込みます。これは恒久的なものですが、コストがかかります。そしてモデルが変わればファインチューニングをやり直さなければなりません。
スキルはこれらのどれも行いません。では、スキルはエージェントにどのような知識をもたらすのでしょうか。スキルは冒頭で述べたように、手続き的知識を扱います。
何をどのような順序で、どのような判断で行うかということです。そしてそれらは単なるファイルなので、バージョン管理でき、簡単に更新でき、プラットフォーム間で簡単に移動できます。
実際には、スキルはこれらの他の形式の知識、例えばMCPなどをよく使用します。MCPは外部で何かを呼び出す能力を提供し、スキルはそれをいつ、どのように行うかの判断を提供します。
スキルについてもう一つ言っておきたいことがあります。skill.md形式はオープンスタンダードであり、agentskills.ioで公開されています。これはApache 2.0ライセンスプロジェクトであり、Claude CodeやOpenAI Codex、その他多くのツールなど、多数のAIプラットフォームで採用されています。
あるプラットフォーム用に構築されたスキルは、この仕様をサポートする任意のプラットフォームで機能します。スキルについて考える有用な方法があり、それは認知科学から来ています。
人間の記憶との類似性
人間には異なるタイプの記憶があります。意味記憶というものがあり、これは事実です。ローマはイタリアの首都である、というようなものです。エピソード記憶というものがあり、これは経験です。私は去年の夏にローマに行きました。実際に行きました、そして素晴らしかったです。
そして手続き記憶というものがあり、これはスキルです。ローマの街でスクーターに乗って生還する方法のようなものです。これも辛うじてやりました。
エージェントのアーキテクチャはこれを反映し始めています。意味記憶は検索拡張生成や知識ベースにかなり近くマッピングされます。エピソード記憶は会話ログや対話履歴にマッピングされます。そして手続き記憶は、そうですね、スキルファイルに非常にうまくマッピングされます。
セキュリティ上の注意点
言及しておく必要があることの一つは、スキルにはファイルシステムや環境変数、APIキーにアクセスできる実行可能スクリプトを含めることができるということです。それがそれらを強力にしているものですが、同時に信頼が非常に重要である理由でもあります。
エージェントがこれらのスクリプトの一つを実行する時、それは通常、あなたのマシン上でローカルにコマンドを実行しています。そして監査により、公開されているスキルには頻繁に悪質なものが含まれていることが判明しています。プロンプトインジェクションのような悪いもの、ツールポイズニングのような悪いもの、隠されたマルウェアのような悪いものです。
基本的にオープンエコシステムでよくある容疑者たちです。ですから、スキルのインストールは、責任あるチームがソフトウェア依存関係をインストールする時と同じように扱ってください。つまり、ローカルマシンで使用する前にレビューして、それが何をするのか理解するということです。
まとめ
では、これはどこに我々を導くのでしょうか。スキルはAIエージェントの手続き記憶です。フォルダ内に存在するmarkdownファイルで定義され、エージェントに特定の仕事のやり方を教えます。
スキルは条件付きでトリガーされ、段階的開示を通じて効率的にロードされます。そしてその形式はオープンスタンダードです。
荷を積んでいないツバメの飛行速度、アフリカのものもヨーロッパのものも、既に知っているエージェントが、あなたが定義する反復可能なタスクを実行する方法も学ぶことができるのです。
これがAIエージェントのスキルです。もしあなたが使っているなら、コメントで教えてください。


コメント