人間性スキルがエージェント・ツールを変える - MilvusがRAGを素早くスピンアップさせるカスタムスキルの作り方
ツールの使い方は、エージェントを機能させる大きな要素である。エージェントは適切なツールを選択し、それを呼び出すタイミングを決定し、入力を正しくフォーマットする必要がある。紙の上では簡単なことのように聞こえますが、実際のシステムを構築し始めると、多くのエッジケースや失敗モードが見つかります。
多くのチームは、これを整理するためにMCPスタイルのツール定義を使っているが、MCPには荒削りな部分がある。モデルはすべてのツールを一度に推論しなければならず、その決定を導くための構造はあまりない。その上、すべてのツール定義はコンテキストウィンドウの中に置かなければならない。これらのいくつかは大きく、GitHubのMCPは約26kトークンで、エージェントが実際の作業を始める前にコンテキストを食いつぶしてしまいます。
Anthropicはこの状況を改善するためにスキルを導入しました。スキルはより小さく、より集中的で、オンデマンドでロードするのが簡単です。全てをコンテキストにダンプする代わりに、ドメインロジック、ワークフロー、スクリプトをコンパクトなユニットにパッケージ化し、エージェントは必要な時だけ取り込むことができます。
この投稿では、Anthropic Skillsがどのように機能するのかを説明し、Claude Codeで自然言語をmilvusに裏付けされたナレッジベースに変換するシンプルなSkillを構築する方法を説明します。
人間性スキルとは?
Anthropicスキル(またはエージェントスキル)は、エージェントが特定のタスクを処理するために必要な命令、スクリプト、リファレンスファイルをバンドルしたフォルダです。小さな自己完結型の能力パックと考えてください。スキルは、レポートの生成、分析の実行、特定のワークフローやルールに従う方法などを定義します。
重要なのは、スキルはモジュール化されており、オンデマンドでロードできるということです。巨大なツール定義をコンテキストウィンドウに詰め込む代わりに、エージェントは必要なスキルのみを取り込みます。これにより、コンテキストの使用量を抑えながら、どのようなツールが存在し、いつそれらを呼び出すか、そして各ステップをどのように実行するかについて、モデルに明確なガイダンスを与えることができる。
フォーマットは意図的にシンプルで、そのため、Claude Code、Cursor、VS Code拡張、GitHub統合、Codexスタイルのセットアップなど、多くの開発者ツールですでにサポートされているか、簡単に適応できます。
スキルは一貫したフォルダ構造に従います:
skill-name/
├── SKILL.md # Required: Skill instructions and metadata
├── scripts/ # Optional: helper scripts
├── templates/ # Optional: document templates
└── resources/ # Optional: reference materials
1. SKILL.md (コアファイル)
これはエージェントの実行ガイドで、タスクの実行方法をエージェントに正確に伝えるドキュメントです。スキルのメタデータ(名前、説明、トリガーキーワードなど)、実行フロー、およびデフォルト設定を定義します。このファイルでは、以下を明確に記述する必要があります:
スキルの実行タイミング:たとえば、ユーザー入力に "Python で CSV ファイルを処理する" というようなフレーズが含まれる場合にスキルをトリガーします。
タスクの実行方法:ユーザーのリクエストを解釈する →
scripts/ディレクトリから前処理スクリプトを呼び出す → 必要なコードを生成する →templates/のテンプレートを使用して出力をフォーマットする。ルールと制約:ルールと制約:コーディング規約、出力フォーマット、エラーの処理方法などの詳細を指定する。
2. scripts/ (実行スクリプト)
このディレクトリには、Python、Shell、Node.js などの言語で事前に書き込まれたスクリプトが含まれます。エージェントは、実行時に同じコードを繰り返し生成する代わりに、これらのスクリプトを直接呼び出すことができます。典型的な例は、create_collection.py とcheck_env.py です。
3. templates/ (ドキュメントテンプレート)
エージェントがカスタマイズされたコンテンツを生成するために使用できる再利用可能なテンプレートファイル。一般的な例として、レポートテンプレートや設定テンプレートがあります。
4. resources/ (参考資料)
API ドキュメント、技術仕様書、ベストプラクティスガイドなど、エージェントが実行中に参照できるドキュメント。
全体として、この構成は、新しいチームメイトに仕事を引き継ぐ方法を反映しています。SKILL.md は仕事を説明し、scripts/ はすぐに使えるツールを提供し、templates/ は標準フォーマットを定義し、resources/ は背景情報を提供します。これらすべてが揃うことで、エージェントは推測を最小限に抑えながら、確実にタスクを実行することができます。
ハンズオンチュートリアルmilvusを搭載したRAGシステムのカスタムスキルの作成
このセクションでは、Milvusコレクションをセットアップし、自然言語の命令から完全なRAGパイプラインを組み立てることができるカスタムスキルの作成について説明します。スキーマの設計、インデックスの設定、定型的なコードなど、通常のセットアップ作業をすべて省略することが目標です。スキーマ設計、インデックス設定、定型的なコードなど、通常の設定作業をすべて省略することです。
設計の概要
前提条件
| コンポーネント | 要件 |
|---|---|
| CLI | claude-code |
| モデル | GLM 4.7、OpenAI |
| コンテナ | ドッカー |
| Milvus | 2.6.8 |
| モデル構成プラットフォーム | CC-スイッチ |
| パッケージ・マネージャー | npm |
| 開発言語 | Python |
ステップ1: 環境のセットアップ
インストール claude-code
npm install -g @anthropic-ai/claude-code
CC-Switchのインストール
注:CC-Switchは、AIモデルをローカルで実行する際に、異なるモデルAPIを簡単に切り替えることができるモデル切り替えツールです。
プロジェクト・リポジトリ:https://github.com/farion1231/cc-switch
Claudeを選択し、APIキーを追加する
現在のステータスを確認する
Milvusのデプロイと起動
# Download docker-compose.yml
wget https://github.com/milvus-io/milvus/releases/download/v2.6.8/milvus-standalone-docker-compose.yml -O docker-compose.yml
# Start Milvus (check port mapping: 19530:19530)
docker-compose up -d
# Verify that the services are running
docker ps | grep milvus
# You should see three containers: milvus-standalone, milvus-etcd, milvus-minio
OpenAI API キーを設定する
# Add this to ~/.bashrc or ~/.zshrc
OPENAI_API_KEY=your_openai_api_key_here
ステップ 2: Milvusのカスタムスキルの作成
ディレクトリ構造を作成する
cd ~/.claude/skills/
mkdir -p milvus-skills/example milvus-skills/scripts
初期化 SKILL.md
注意:SKILL.mdはエージェントの実行ガイドの役割を果たします。SKILL.mdはエージェントの実行ガイドとなり、スキルが何を行い、どのようにトリガーされるかを定義します。
name: milvus-collection-builder
description: Create Milvus collections using natural language, supporting both RAG and text search scenarios
コアスクリプトの作成
| スクリプトの種類 | ファイル名 | 目的 |
|---|---|---|
| 環境チェック | check_env.py | Pythonのバージョン、必要な依存関係、milvusの接続をチェックする。 |
| インテント解析 | intent_parser.py | "RAGデータベースを構築する "のようなリクエストを次のような構造化されたインテントに変換する。scene=rag |
| コレクションの作成 | milvus_builder.py | コレクションスキーマとインデックス構成を生成するコアビルダー |
| データ取り込み | insert_milvus_data.py | ドキュメントを読み込み、チャンクし、エンベッディングを生成し、Milvusにデータを書き込む。 |
| 例1 | basic_text_search.py | ドキュメント検索システムの作成方法のデモンストレーション |
| 例2 | rag_knowledge_base.py | 完全なRAG知識ベースを構築する方法を示す |
これらのスクリプトは、Milvusにフォーカスしたスキルを実用的なもの、つまりドキュメント検索システムとインテリジェントQ&A(RAG)のセットアップに変える方法を示しています。
ステップ3: スキルを有効にしてテストを実行する
自然言語でリクエストを記述する
"I want to build an RAG system."
RAGシステムの作成
サンプルデータの挿入
クエリを実行する
まとめ
このチュートリアルでは、カスタムスキルを使用してMilvusを利用したRAGシステムを構築しました。その目的は、単にMilvusを呼び出す別の方法を紹介することではなく、通常であれば複数ステップの設定が必要となるものを、Skillを使用することで再利用や反復が可能なものに変えることができることを紹介することでした。手作業でスキーマを定義したり、インデックスを調整したり、ワークフローのコードをつなぎ合わせたりする代わりに、スキルが定型的なことのほとんどを処理してくれるので、RAGの実際に重要な部分に集中することができます。
これは始まりに過ぎません。完全なRAGパイプラインには、前処理、チャンキング、ハイブリッド検索設定、リランキング、評価など、多くの可動部分があります。これら全てを別々のスキルとしてパッケージ化し、ユースケースに応じて構成することができる。ベクターのディメンション、インデックスパラメータ、プロンプトテンプレート、検索ロジックの社内標準がある場合、スキルはその知識をエンコードし、繰り返し使用できるようにするためのクリーンな方法です。
新しい開発者にとっては、Milvusを使いこなすまでの障壁を低くすることができます。経験豊富なチームにとっては、繰り返しのセットアップを削減し、環境間で一貫したプロジェクトを維持するのに役立ちます。スキルは熟考されたシステム設計の代わりにはならないが、不必要な摩擦の多くを取り除くことができる。
👉 完全な実装はオープンソースリポジトリで入手可能で、Skillマーケットプレイスではコミュニティが構築したより多くの例を調べることができます。
ご期待ください!
また、一般的なRAGパターンやプロダクションのベストプラクティスをカバーするMilvusとZillizの公式クラウドスキルの導入にも取り組んでいます。アイデアやサポートしてほしい特定のワークフローがある場合は、Slack Channelに参加してエンジニアとチャットしてください。また、ご自身のセットアップについてガイダンスが必要な場合は、いつでもMilvusオフィスアワーのセッションをご予約いただけます。
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word



