エージェントスキルの真のポテンシャルを引き出せていないかもしれません!

AAcademind
Computing/SoftwareSmall Business/StartupsInternet Technology

Transcript

00:00:00Cloud CodeやCodex、その他のエージェント型エンジニアリングツールを使う際、非常に重要な
00:00:05概念であり、これらすべてのツールでサポートされている、理解して活用すべきものがあります。
00:00:12それは「エージェント・スキル」という概念です。ただのMarkdownファイルの集まりに見えたり、
00:00:18設定が面倒そうだったりするため、つい無視しがちですが、経験上、設定する価値は十分にあります。
00:00:24数日前、Cloud Codeチーム(つまりAnthropic社)のメンバーによる投稿があり、
00:00:31彼らが内部で実際に使用しているスキルの種類が共有されていました。実際、作成したいスキルを
00:00:37いくつかのタイプに分類することができます。結局のところ、それらはすべてMarkdownファイルですが、
00:00:42もう少し要素を加えることもできます。それについては後述しますが、当然、Markdownの中身は
00:00:49用途によって大きく異なります。さて、この画像や投稿の全体を見ると、少し圧倒されてしまい、
00:00:56「スキルの設定に1週間もかかるなら、いっそ使わないほうがいい」と感じて、何もしなくなってしまうかもしれません。
00:01:02そこでこの動画では、もっとシンプルな代替案を提案したいと思います。
00:01:08意識すべきコアなスキルのタイプは、わずか3つに絞り込むことができ、それだけでより良い結果が得られます。
00:01:15ちなみに、先ほど述べたように、これらのツールはすべてスキルをサポートしています。私の各コースでは、
00:01:20Cloud CodeやCodex向けのスキルの設定方法、能動的な呼び出し方、構築方法を解説しています。
00:01:26それらのコースを受講したい、あるいは将来のコースを含むすべてのコースにアクセスしたい方は、
00:01:31現在プロモーションを実施中です。年間メンバーシップに登録すれば、全コースが
00:01:35非常に低価格で利用可能になります。詳細は下のリンクをご覧ください。さて、これらのスキルですが、
00:01:41これらは特定の場所に保存されたMarkdownファイルにすぎません。
00:01:46保存場所は使用するツールによって異なりますが、要するにプロンプト・テンプレートや、
00:01:52エージェントとのセッションに注入できる追加のコンテキストとして機能します。まず、
00:02:011つ目のスキルのタイプは、「ドキュメント」または「ナレッジ」スキルです。どういうことか説明しましょう。
00:02:09https://www.google.com/search?q=%E3%81%93%E3%82%8C%E3%81%AF%E7%A7%81%E3%81%AEacademy.comのプロジェクト、つまり私のウェブサイトのプロジェクトですが、
00:02:15ここにはAIエージェントに公開している、ドキュメントや知識としてのエージェント・スキルがいくつかあります。
00:02:25例えば、TypeScriptの知識や、より高度なTypeScriptの
00:02:33機能に関する知識です。例えば、登場してからまだ10年も経っていない「satisfies」キーワードのような
00:02:40比較的新しい機能など、AIエージェントに意識させたいこと、あるいは思い出させたいことです。というのも、
00:02:50学習データにそれほど含まれていない場合、エージェントが真っ先にそれを提案してくるとは限らないからです。
00:02:58これらは本来、TypeScriptの公式ドキュメントにあるような内容です。しかし、
00:03:04エージェントに明示的に指示しない限り、エージェントが自ら公式ドキュメントを
00:03:11参照しに行く可能性は低いため、あえて独自のスキルとして持たせています。
00:03:17そして、このスキルにはメタデータが含まれています。このメタデータが重要です。なぜなら、
00:03:24利用可能なすべてのスキルが毎回コンテキストウィンドウに読み込まれるわけではなく、
00:03:30メタデータだけが読み込まれ、その後、AIエージェントがユーザーのプロンプトやタスクに応じて、
00:03:37どのスキルの詳細を読み込むかを決定するからです。ツールによってはスキルを能動的に呼び出すこともできますが、
00:03:43基本的には、メタデータに基づいてエージェントが自律的に読み込む仕組みになっています。
00:03:47そこで私は、エージェントがいつこのスキルを使うべきかを判断できるように、
00:03:55メタデータを記述しています。これが1つ目のタイプ、つまりエージェントが持っていない可能性のある
00:04:02追加のドキュメントや知識を提供するスキルです。例えば、新しすぎて学習データに含まれていない
00:04:08ライブラリや、エージェントがあまり詳しくないと思われるライブラリについて、
00:04:13あらかじめ教えておく必要がある場合に非常に有効です。
00:04:182つ目のスキルのタイプは、「振る舞い」「ベストプラクティス」「アプローチ」といったものです。
00:04:29プロジェクトを進める際、コードスタイルや特定の実装方法について、
00:04:37何らかの好みがあるはずです。例えば、私は「クリーンでモダンなReactコード」というスキルを持っています。
00:04:45これはReactの機能を説明するものではなく、エージェントがReactコードを書く際に
00:04:50守るべきルールを定め、特定のアンチパターンを
00:04:59最小限に抑えるためのものです。現状、AIエージェントが生成するコードは、
00:05:08必ずしも最高品質であるとは限りません。コードの品質を気にする必要があるかどうかについては、
00:05:13別のチャンネルで動画を出しましたが、私は「重要だ」と考えています。なぜなら、
00:05:18コードの品質はコードレビューのしやすさに直結するからです。また、パフォーマンスや
00:05:23コードの保守性、拡張性にも影響を与えます。ですから、品質は重要であり、
00:05:29もしエージェントに採用させたい特定の振る舞いやパターンがあるなら、
00:05:36「良いReactコードの書き方」や「useEffectの使用を避け、どう代替すべきか」を教えるような、
00:05:43振る舞いを定義するスキルが非常に役立ちます。つまり、ここでは
00:05:50追加のドキュメントを提供するのではなく、エージェントに「振る舞い」を指示しているのです。
00:05:55興味深いのは、このスキルの中で「関連ファイル」を参照している点です。ここには
00:06:02useEffectに関する詳細を記したファイルです。先ほど言ったように、これらはすべて遅延読み込みされるため、
00:06:09スキルファイル内で、このreferencesフォルダにある「useEffect.md」のような別ファイルを参照しておけば、
00:06:15AIはuseEffectに関する作業をしていると判断した時に初めて、そのファイルを読み込むことができます。
00:06:21そこには、注意すべきアンチパターンなどの詳細が書かれています。
00:06:27このようなスキルを設定する価値は十分にあります。一度作ってしまえば、
00:06:33他のReactプロジェクトにコピーするだけで、毎回書き直す必要がなく、
00:06:39コードの品質を向上させられるからです。これが、私が推奨する2つ目のスキルタイプです。
00:06:45最初からすべてのパターンを記述しようとする必要はありません。ステップ・バイ・ステップで進めましょう。
00:06:52プロジェクトでAIエージェントが意図しないことを繰り返し行っているのを見つけたら、
00:06:58適切なタイミングで読み込まれるような説明文を考え、その修正方法を指示したスキルを
00:07:04追加すればいいのです。そうやって問題を修正しながら進めていくうちに、
00:07:11時間の経過とともに、特定のベストプラクティスや強制したい振る舞いを集めたスキルライブラリが構築され、
00:07:17それを将来のプロジェクトで活用できるようになります。ですから、最初から巨大で威圧的なタスクだと考えず、
00:07:22少しずつスキルベースを築いていってください。さて、3つ目のタイプは
00:07:29これまでとは一線を画す「機能駆動型」のスキルです。これまではドキュメント化と
00:07:37特定の振る舞いの強制について話してきました。Cloud CodeやCodexのようなエージェント型ツールは、
00:07:43あらゆる作業が可能です。当然コードも書けますが、単にプロジェクト内のコードを書くだけに
00:07:49とどまりません。コードを書けるということは、許可すればコンピュータ上で何でもできるということです。
00:07:55例えば、PDFドキュメントを解析させることもできます。私はシステム全体で使えるグローバルなスキルを
00:08:03いくつか設定していますが、それらはプログラミングに特化したものばかりではありません。
00:08:09例えば、エージェントに「画像の生成方法」を教えるスキルを設定することも可能です。どういうことかというと、
00:08:16AIで画像や動画を生成できるAPIやサービスは数多くあります。例えばFal AIなどです。
00:08:24(ちなみに、これは案件動画ではありません。Replicateなど他にも色々あります。)
00:08:29プロジェクトでウェブサイト用のダミー画像が必要になったり、あるいは全く別の目的で、
00:08:34印刷して壁に飾るための画像が欲しくなったりしたとしましょう。これらのサービスを利用する場合、
00:08:41CodexやCloud Code、あるいは私のお気に入りのPaiエージェントなどに「画像を生成して」と頼むことができます。
00:08:49デフォルトのままでは、これらのツールに画像生成機能は内蔵されていないため、失敗する可能性が高いでしょう。
00:08:54しかし、適切なスキルを与えておけば(これもただのMarkdownファイルですが)、
00:09:00そこでサードパーティAPIとやり取りして画像を生成する方法を記述しておくことができます。
00:09:06単にその連携方法を記述するだけでも一つの手ですが、さらに一歩進めることもできます。
00:09:12スキルに「スクリプト」を付属させるのです。すべてのスキルに必要なわけではありませんが、
00:09:18私の「画像生成」スキルにはスクリプトが付いています。正直に言うと、このスクリプトはAIが書いたもので、
00:09:26いわゆる「バイブ・コーディング」で作られました。この中には、Fal API(画像生成サービス)と
00:09:34やり取りするためのスクリプトが含まれています。要するに、そのサービスのドキュメントを
00:09:40プロンプトに放り込み、AIエージェントに「FalのAPIを使って画像を生成するツールを書いて」と頼んだのです。
00:09:49その結果、様々なパラメータを指定して画像を生成できる小さなCLIツール、つまりスクリプトが完成しました。
00:09:56そして、スキルのMarkdownファイルには、そのスクリプトの使い方を記述しておきます。
00:10:02そのファイルはスクリプトを指し示し、エージェントに実行方法や渡すべき引数などを教えます。
00:10:08さらに、ここにFalのAPIキーを記述した .env ファイルを置いてあります。スクリプトがBun経由で呼び出される際、
00:10:18(これはMarkdownファイル内でAIに指示していることですが)この .env ファイルは自動的に読み込まれます。
00:10:23つまり、エージェントに直接キーを教える必要はありません。「画像を生成して、ちなみにこれがキーだ」
00:10:29と言う必要はなく、ただ「画像を生成して」と頼むだけでいいのです。エージェントは、
00:10:34このスキルの説明に基づいて必要な時にスキルを読み込み、内部でスクリプトを実行すればよいこと、
00:10:39そして実装の詳細については気にする必要がないことを学習します。
00:10:45これも非常に興味深いスキルの形態だと思います。プログラミングに関連したものだけでなく、
00:10:52コードを整形するスクリプト駆動のスキルなども考えられます。とにかく、
00:10:57これらのエージェントはコード生成以外にも活用できるので、
00:11:02このスキルカテゴリーも間違いなく意識しておくべきです。まとめると、あまり難しく考えすぎず、
00:11:08かといって放置もせず、ステップ・バイ・ステップでスキルライブラリを構築していきましょう。
00:11:14なお、skills.sh のようなスキルレジストリもあり、他の人が作ったスキルを閲覧することもできます。
00:11:21これらは非常に便利ですが、2つほど重要な注意点があります。1つ目は、
00:11:29「ReactとTailwindとBetter Authのプロジェクトを作るから、関連しそうなスキルを
00:11:35全部探してインストールしよう」というやり方はお勧めしません。なぜなら、
00:11:40コンテキストウィンドウに大量のメタデータを詰め込むことになり、逆効果になる可能性があるからです。
00:11:47中には全く使わないスキルも含まれるかもしれません。ですから、注意が必要です。
00:11:53理論上追加できるスキルをすべて詰め込むのではなく、選択的になり、AIが繰り返し間違えることや、
00:11:57どうしても追加のドキュメントが必要になるものに集中すべきです。これが1つ目。
00:12:04そして、レジストリに関するもう一つの点は、他人が書いたスキルを取り込むということです。
00:12:09先ほど学んだように、これらのスキルは単なるプロンプトです。もしそのプロンプトに
00:12:16悪意のある内容が含まれていれば、プロンプト・インジェクション攻撃につながる恐れがあり、非常に危険です。
00:12:22skills.sh のような一部のレジストリは、私の知る限り、スキャンを行って
00:12:28その危険性を減らす努力をしていますが、100%安全とは言い切れません。
00:12:36ですから、注意が必要です。他人が書いたスキルを使用する際は、必ず中身を読んでください。
00:12:40幸い中身を読めるようになっていますから、目を通して、悪意のある記述が含まれていないか
00:12:47確認するようにしましょう。これはあくまで警告ですが。とはいえ、スキルを活用しましょう。
00:12:54最初から超複雑なシステムを構築しようと気負わず、まずはこれら3つのコアタイプを
00:13:00念頭に置いて、色々と試してみてください。

Key Takeaway

エージェント型開発ツールの真の力を引き出すには、複雑な設定に圧倒されず、3つのコアなスキルタイプを段階的に構築・蓄積していくことが重要です。

Highlights

エージェント・スキルはMarkdownファイルで構成され、AIエージェントの能力を拡張する強力なツールである

スキルの核心は「ドキュメント/ナレッジ」、「振る舞い/ベストプラクティス」、「機能駆動型」の3タイプに集約される

メタデータ(遅延読み込み)を活用することで、コンテキストウィンドウを節約しつつ必要な情報だけをAIに提供できる

振る舞いスキルを定義することで、AIが生成するコードの品質向上やアンチパターンの回避を自動化できる

外部APIやスクリプトを連携させた機能駆動型スキルにより、AIに画像生成などの新しい能力を付与できる

外部のスキルレジストリを利用する際は、プロンプト・インジェクションのリスクを考慮し、必ず内容を確認すべきである

Timeline

エージェント・スキルの概要と重要性

このセクションでは、Cloud CodeやCodexなどのツールでサポートされている「エージェント・スキル」の基本概念が説明されています。多くのユーザーが設定の煩雑さからこの機能を無視しがちですが、実際にはMarkdownファイルで記述できる非常に価値の高いカスタマイズ要素です。Anthropic社のチームが内部で使用しているスキルの分類を例に挙げつつ、初心者が圧倒されないためのシンプルなアプローチを提案しています。スキルは単なる追加のコンテキストではなく、エージェントとのセッションに注入できるテンプレートとして機能します。まずは基本となる3つのスキルタイプを理解することが、より良い開発結果を得るための第一歩となります。

タイプ1:ドキュメントとナレッジの提供

1つ目のスキルタイプは、AIが学習データとして持っていない可能性のある最新のドキュメントや特定の知識を補完するものです。例えばTypeScriptの比較的新しい「satisfies」キーワードのような、エージェントが自発的に提案しにくい情報を明示的に提供します。ここで重要なのはメタデータの役割で、すべてのスキルが常に読み込まれるのではなく、タスクに応じて必要なものだけが遅延読み込みされます。これにより、コンテキストウィンドウを効率的に管理しながら、特定のライブラリや技術に関する深い知識をエージェントに持たせることが可能です。エージェントが自律的にいつ知識を使用すべきかを判断できる仕組みが、このスキルの強みです。

タイプ2:振る舞いとベストプラクティスの定義

2つ目のタイプは、コードスタイルや特定の実装アプローチを規定する「振る舞い」に関するスキルです。AIが生成するコードは必ずしも最高品質ではないため、Reactなどのプロジェクトでアンチパターンを避け、保守性の高いコードを書かせるためのルールを設定します。具体的には、useEffectの使用を避けるといった具体的な指示や、プロジェクト固有のコーディング規約をスキルとして定義します。このスキルは一度作成すれば他のプロジェクトでも再利用可能であり、コードレビューの負担を大幅に軽減する効果があります。最初から完璧を目指すのではなく、エージェントが繰り返す間違いを修正する形で、ステップ・バイ・ステップでルールを蓄積していくことが推奨されています。

タイプ3:スクリプトを活用した機能駆動型スキル

3つ目のタイプは、エージェントに新しい「機能」を実行させるための高度なスキルです。コード生成の枠を超えて、例えば画像生成API(Fal AIなど)と連携して画像を生成させるようなタスクをエージェントに実行させることができます。これにはMarkdownによる指示だけでなく、実際の処理を行うスクリプト(CLIツール)を付属させ、エージェントにその実行方法を教える手法が取られます。APIキーなどの機密情報は .env ファイルに分離し、エージェントには直接教えずにスクリプト経由で安全に扱わせることが可能です。これにより、AIエージェントをコンピュータ上のあらゆる作業を代行できる、より汎用的なアシスタントへと進化させることができます。

スキル利用時の注意点とセキュリティ

最後に、既存のスキルレジストリを利用する際の利便性とリスクについて警鐘を鳴らしています。他人が作成したスキルを無差別に導入すると、コンテキストウィンドウが不要な情報で溢れ、エージェントの精度が低下する恐れがあります。また、スキルは単なるプロンプトであるため、悪意のある記述が含まれているとプロンプト・インジェクション攻撃を受ける危険性があります。スキルの共有プラットフォームは便利ですが、使用する前に必ず中身を自分の目で読み、安全性を確認することが不可欠です。結論として、これら3つのコアタイプを軸に、自分専用のスキルライブラリを慎重かつ着実に構築していくことが推奨されています。

Community Posts

View all posts