はじめに(Skills機能公開)
2025年10月16日、AnthropicがClaude向けの新機能「Skills」を公開しました。
本記事では、公式ドキュメントの内容を確認し、実際にSkillsを作成・利用してみた経験をもとに、できること・できないこと、そして今後の可能性について記載しています。
Skillsとは
公式発表の内容
Anthropicは2025年10月16日に、エンジニアリングブログと公式ドキュメントでSkillsの詳細を発表しました。Skillsは、Claudeに対して特定のドメイン知識、ベストプラクティス、ワークフローを提供するためのパッケージ機能です。
利用シーン
Skillsは、繰り返し行うタスク、専門的な知識が必要な作業、特定のフォーマットに従った出力が必要な場面などで特に有効になりそうです。
-
quickstart の例
- PPT(プレゼン)作成
- WordやExcelの作成
- PDF作成
- その他の例
- 特定のコーディング規約に従った開発
- 業界固有の用語や手順を伴う文書作成
- データ分析のワークフロー
アップロードファイルには注意
このSkillsに限った話ではないですが、アップロードが許可されているかどうかは確認の上で進めてください!
Skillsの基本構造
Markdown形式のドキュメントとリソースファイルで構成されます。
-
SKILL.md:必須。Claudeが参照すべき指示やコンテキストを記述 -
resources/などのディレクトリ:任意。xxx.pyなどスクリプトが必要な場合
SKILL.mdの定義方法
実行プログラム有の場合のフォルダ構成
具体的に実行したプログラムもある場合は、以下の構造です。

Level 3: Resources and code (loaded as needed)より
プログラムを参照する方法ですが、以下のように、mdファイル内で記載しています。

Equipping agents for the real world with Agent Skills より
ざっくり概要を記載してきましたが、ここから実際に試してみます。以下それぞれで試していきます。
- Claude Desktop
- Claude Code
スキル作成のために用意したコードは、Githubで公開しています。
Claude Desktopで試してみた
構成と実行環境の制限を確認

Equipping agents for the real world with Agent Skills より
上記構成を確認後、Agent Virtual Machineの構成を確認しつつ、
ドキュメントを読む中で私が気になったのは、制約に関係する記載です。
Runtime environment constraints:
- No network access: Skills cannot make external API calls or access the internet
- No runtime package installation: Only pre-installed packages are available. You cannot install new packages during execution.
- Pre-configured dependencies only: Check the code execution tool documentation for the list of available packages
security-considerationsには、以下のような実行環境の制約が明記されています。
検証の方針
できないことにアプローチ
先ほど制約に関する記載を追加しましたが、どちらかというと、何ができないのかを把握することに重きを置いています。
公式ドキュメントにコードまで記載された内容は試していません。
スキルアップロードまでの流れを知ることも含めて、利用できるライブラリを確認するskillを作成してみました。その後、意図的に制約に触れる実装を試みました。
パッケージ一覧取得Skillの作成
まず基本動作を確認するため、コード実行環境で利用可能なPythonパッケージの一覧を取得する簡単なSkillを作成しました。
SKILL.mdを作成します。
以下のようにプログラムを作成します。
import pkgutil
installed_packages = [pkg.name for pkg in pkgutil.iter_modules()]
print("=== Installed Packages ===")
print(installed_packages)
print()
非常に簡単なものですが、スキルを作成できました。
利用できるようにアップロード作業を進めます。
Claude Desktopを使ったアップロード
公式サポートページによると、SkillsはClaude Desktopを経由してアップロードする仕組みになっています。
これにより、ローカル環境で作成したSkillをClaudeに登録し、チャットセッション内で利用できます。
ディレクトリ構造の変更点
How to create custom Skillsには以下のようなディレクトリ構造が記載されていましたが、この情報は既に古くなっています。
Correct structure:
my-Skill.zip
└── my-Skill/
├── SKILL.md
└── resources/
Incorrect structure:
my-Skill.zip
└── (files directly in ZIP root)
以下、Claude Desktopのスクリーンショットですが、以下が正しいです。

エクスプローラーで確認すると、以下の構造になっています。
囲った「check-installed-packages-skill」フォルダをZIP化して、アップロードします。

利用可能なパッケージ一覧
📊 データ処理・分析
- pandas - データフレーム操作
- numpy - 数値計算
- scipy - 科学計算
🤖 機械学習・AI
- sklearn (scikit-learn) - 機械学習
- jax, jaxlib - 高性能数値計算
- onnxruntime - ONNX推論
- mediapipe - メディア処理
📈 可視化
- matplotlib - グラフ作成
- seaborn - 統計データ可視化
🖼️ 画像処理
- cv2 (OpenCV) - コンピュータビジョン
- PIL (Pillow) - 画像処理
- skimage (scikit-image) - 画像処理
- imageio - 画像読み書き
📄 ドキュメント処理
- pypdf - PDF操作
- pdfplumber - PDFデータ抽出
- docx (python-docx) - Word文書処理
- pptx (python-pptx) - PowerPoint処理
- openpyxl - Excel処理
🌐 Web関連
- flask - Webフレームワーク
- requests - HTTP通信
- bs4 (BeautifulSoup) - HTMLパース
- playwright - ブラウザ自動化
その他の便利なライブラリ
- sympy - 数式処理
- lxml - XML処理
- yaml - YAML処理
- cryptography - 暗号化
利用不可なパッケージを追加して動かす
先ほどアップロードしたスキルで用意コードに以下を追加後、再度スキルをアップロードしました。
import tensorflow as tf
実行結果は以下の通りでした。エラーが表示された後、囲った箇所にある通り、スクリプトを修正して、スキル実行が完了するように動いていました。

Playwrightによるスクリーンショット撮影
次に、HTMLファイルをPlaywrightを使ってスクリーンショット撮影できるか試してみました。
pythonスクリプトと同階層に、demo.htmlというファイルを追加します。
コードは以下のように修正し、実行してみました。
これは成功しました。
from playwright.sync_api import sync_playwright
def playwright_demo():
print("=== Playwright Demo (Local HTML) ===")
# スクリプトと同じディレクトリのパスを取得
script_dir = Path(__file__).parent
html_path = script_dir / "demo.html"
# HTMLファイルの存在確認
if not html_path.exists():
print(f"エラー: {html_path} が見つかりません")
print("demo.html を作成してから実行してください")
return
with sync_playwright() as p:
# ブラウザを起動(headlessモード)
browser = p.chromium.launch(headless=True)
page = browser.new_page()
# ローカルHTMLファイルを開く
page.goto(f"file://{html_path.absolute()}")
# ページタイトルを取得
title = page.title()
print(f"ページタイトル: {title}")
# スクリーンショットを撮影
screenshot_path = script_dir / "playwright_demo.png"
page.screenshot(path=str(screenshot_path))
print(f"スクリーンショットを保存: {screenshot_path}")
# ブラウザを閉じる
browser.close()
print("Playwrightデモ完了!\n")
Claude Desktop上でスクリーンショットの内容が表示されました。

外部ネットワークアクセスの試行
続いて、requestsライブラリを使ってGoogleのサイトへアクセスできるか試しました。結果として、これは失敗しました。エラーメッセージが返され、外部サイトへの接続が確立できませんでした。
# requestsを使ったWeb接続のデモ
def requests_demo():
print("=== Requests Demo (Web Access) ===")
try:
# HTTPリクエストを送信(Googleにアクセス)
url = "https://www.google.com"
print(f"アクセス先: {url}")
response = requests.get(url, timeout=5)
# BeautifulSoupでパース
soup = BeautifulSoup(response.text, 'html.parser')
title = soup.find('title')
if title:
print(f"ページタイトル: {title.text}")
print("Requestsデモ成功!\n")
except requests.exceptions.RequestException as e:
print(f"ネットワークエラー: {type(e).__name__}")
print(f"詳細: {str(e)}")
print("※ このコンテナ環境ではネットワークアクセスが制限されています\n")
except Exception as e:
print(f"エラー: {type(e).__name__}: {str(e)}\n")
Claude Desktopのログを確認すると、以下の通り接続できていないことが分かりました。

Claude Codeから呼び出してみた
skillはClaude Codeからも利用可能です。
playwrightのスクリーンショット取得するところまで確認してみました。
影響しない想定ですが、先ほどClaude Desktop側で作成したスキルは一旦OFFにします。

適用範囲によって作成先を変える
以下画像にある通り、適用範囲によって作成先が異なります。

Agent Skills より
今回は作業ディレクトリで適用できればよかったので、Project Skillsで進めました。
フォルダ:.claude\skills\check-installed-packages-skillを用意して、必要な資材を配置します。
ドキュメントにある通り、skillsフォルダの中に具体的なスキル名を設定しています。
書き込み権限エラーは発生していましたが、スクリーンショット自体は取得できました。(特に設定していないので、to-fuになっています。)

以下それぞれで利用できることを確認したので、これで動作確認は終了です。
- Claude Desktop
- Claude Code
Best Practice
上記ページSkill作成時の推奨・非推奨事項が記載されています。
既に生成AIで色々開発をされている方やCLAUDE.mdのブラッシュアップなどをされている方は、サラッと読み進められる内容だと思いました。
Skillsの制約事項(できることとできないこと)
できること
- 事前インストール済みパッケージを使った処理
- ローカルファイルの読み書き
- データ処理、変換、分析
- ローカルHTMLのレンダリング・スクリーンショット
できないこと
- 外部APIへのHTTPリクエスト
- インターネット上のリソースへのアクセス
- 実行時の新規パッケージインストール
Skillsの活用方法と可能性
他のツールとの組み合わせ
Skillsの制約を理解した上で、他のフロー(MCPサーバー、外部APIツールなど)と組み合わせることで、より柔軟なワークフローを構築できそうです。
例:外部APIからデータを取得する部分は別のツールに任せ、取得したデータの処理・分析・可視化をSkillsで行う
専門知識の体系化
Skillsは、特定のドメイン知識やベストプラクティスを一度パッケージ化すれば、チーム内で再利用できます。コーディング規約、文書フォーマット、業界用語集などを整理し、Claudeに一貫した挙動をさせることができます。
今後の展望
MCPサーバーとの連携
Anthropicは今後、MCP(Model Context Protocol)サーバーとSkillsの連携を進めていくと示唆しています。これにより、Skillsの静的な知識とMCPサーバーの動的なデータアクセス能力を組み合わせたフロー構築ができるかもしれません。
エージェントによるSkills評価
将来的には、エージェント自身がSkillsの品質や適用可能性を評価し、自動的に最適なSkillを選択・適用するような仕組みも検討されているようです。このような体系化が進めば、より洗練されたエージェント開発が可能になります。
継続的な検証の必要性
Skillsは比較的新しい機能であり、ドキュメントの更新やAPI仕様の変更が今後も続くと予想されます。本記事で紹介した制約や挙動も、将来的には変更される可能性があるため、最新の公式ドキュメントを確認しながら活用していきたいです。
まとめ
Claude Skillsは、エージェントに専門知識とワークフローを付与する強力な機能です。本記事では以下のポイントを確認しました
- Skillsの基本構造とセットアップ方法
- ディレクトリ構造の変更(古い情報に注意)
- 実行環境の制約(ネットワークアクセス不可、パッケージインストール不可)
- できることとできないことの具体例
- 他のツールとの組み合わせによる柔軟なワークフロー構築
- コスト面でのメリット
Skillsの制約を理解した上で適切に活用することで、効率的かつコスト効果の高いエージェントシステムを構築できます。今後もMCPサーバーとの連携や自動評価機能など、新しい展開に注目していきたいと思います。






