自作AIエージェントに追加したAgent Skills その1
紹介
Agent Skillsに対応したAIエージェントMagicaを作りました。
少しずつ仕様に準拠したり、より便利に使えるように試行錯誤しているのですが、その中でAgent SkillsのドキュメントやClaudeのスキル作成のベストプラクティスを確認しながらスキルをいくつか追加したので紹介したいと思います。
Magica v1.5.0では以下のスキルを提供しています。
.
└── .magica/
└── skills/
├── fetch-activitypub-outbox/
│ ├── scripts/
│ │ └── tool.py
│ └── SKILL.md
├── get-agentskills-spec/
│ ├── scripts/
│ │ └── tool.py
│ └── SKILL.md
├── get-earthquake-info/
│ ├── scripts/
│ │ └── tool.py
│ └── SKILL.md
└── print-utc-time/
├── scripts/
│ └── tool.py
└── SKILL.md
Agent Skillsは相互運用性があるので、おそらくAgent Skillsに対応したAIエージェント、コーディングエージェントでも使えると思います。
print-utc-time
まず最初にテスト用に現在時刻を確認できるスキルを作りました。
mkdir -p .magica/skills/print-utc-time/scripts
curl -fsSLo .magica/skills/print-utc-time/SKILL.md https://gitlab.com/tkithrta/magica/-/raw/main/.magica/skills/print-utc-time/SKILL.md
curl -fsSLo .magica/skills/print-utc-time/scripts/tool.py https://gitlab.com/tkithrta/magica/-/raw/main/.magica/skills/print-utc-time/scripts/tool.py
$ magica "今何時?"
Skills: print-utc-time, get-earthquake-info, get-agentskills-spec, fetch-activitypub-outbox
Tool: activate_skill {"skill_name": "print-utc-time"}
Tool: run_script {"skill_name": "print-utc-time", "script_path": "scripts/tool.py", "args": []}
Agent: 現在のUTC時間は、2025年12月22日月曜日、13時45分00秒GMTです。
曜日も確認できます。
ただ協定世界時(UTC)を返すので日本標準時(JST)にする場合はプロンプトを工夫する必要があります。
zoneinfoライブラリはWindowsに対応しておらず、localeライブラリを追加してもうまくいかないモデルが多かったのでやめました。
get-agentskills-spec
Magicaをアップデートする時にAgent Skillsのリファレンスを翻訳しようとしたのですが、Magicaは日本語で質問したら日本語で回答してくれるので、Agent Skillsのリファレンスを読み込めるスキルを作りました。
mkdir -p .magica/skills/get-agentskills-spec/scripts
curl -fsSLo .magica/skills/get-agentskills-spec/SKILL.md https://gitlab.com/tkithrta/magica/-/raw/main/.magica/skills/get-agentskills-spec/SKILL.md
curl -fsSLo .magica/skills/get-agentskills-spec/scripts/tool.py https://gitlab.com/tkithrta/magica/-/raw/main/.magica/skills/get-agentskills-spec/scripts/tool.py
$ magica "Agent Skillsとは?"
Skills: print-utc-time, get-earthquake-info, get-agentskills-spec, fetch-activitypub-outbox
Tool: activate_skill {"skill_name": "get-agentskills-spec"}
Tool: read_references {"skill_name": "get-agentskills-spec", "file_path": "references/home.md"}
Tool: run_script {"skill_name": "get-agentskills-spec", "script_path": "scripts/tool.py", "args": []}
Tool: read_references {"skill_name": "get-agentskills-spec", "file_path": "references/home.md"}
Agent: Agent Skillsは、エージェントに新しい機能や専門知識を提供するためのシンプルでオープンなフォーマットです。以下は、Agent Skillsの概要とその利点についての詳細です。
## Agent Skillsとは?
Agent Skillsは、エージェントが必要なコンテキストを持たない場合に、手順的な知識や組織、チーム、ユーザー固有のコンテキストを提供することで、エージェントがより正確かつ効率的にタスクを実行できるようにします。
### 主な利点
1. **スキル作成者**: 一度構築したスキルを複数のエージェント製品に展開できます。
2. **互換性のあるエージェント**: スキルのサポートにより、エージェントは新しい機能をすぐに利用できます。
3. **チームや企業**: 組織の知識をポータブルでバージョン管理可能なパッケージとして保存できます。
## Agent Skillsが可能にすること
- **ドメイン専門知識**: 法的レビュープロセスからデータ分析パイプラインまで、専門知識を再利用可能な指示にパッケージ化します。
- **新しい機能**: プレゼンテーションの作成、MCPサーバーの構築、データセットの分析など、新しい機能をエージェントに提供します。
- **繰り返し可能なワークフロー**: 複数のステップからなるタスクを一貫性のある監査可能なワークフローに変換します。
- **相互運用性**: 同じスキルを異なるエージェント製品間で再利用できます。
## 採用状況
Agent Skillsは、Anthropicによって開発され、オープンスタンダードとしてリリースされました。現在、多くのエージェント製品に採用されています。このスタンダードは、広範なエコシステムからの貢献を受け入れています。
## 詳細情報
- **スキルとは?**: スキルの基本概念や仕組み、重要性について学びます。
- **仕様**: SKILL.mdファイルの完全なフォーマット仕様です。
- **スキルの統合**: エージェントやツールにスキルサポートを追加する方法を説明します。
- **例**: GitHubで例を閲覧できます。
- **リファレンスライブラリ**: スキルの検証やプロンプトXMLの生成に役立ちます。
Agent Skillsは、エージェントの能力を拡張し、より効果的なタスク実行を可能にする強力なツールです。
Pythonの外部パッケージを使えるようにするため、環境変数MAGICA_USE_UVを追加しました。
これでスキルのPythonスクリプトをuv run --scriptで実行できるようになり、pip install requestsしなくても外部パッケージを使えるようになりました。
Magica以外でスキルを使う場合は事前にpip install requestsを行うか、各AIエージェント、コーディングエージェントがいい感じにSKILL.mdを解釈してpip install requestsしてくれると思います。
get-earthquake-info
以上のことから、Agent SkillsはAPIを取得して最新のコンテキストを読ませることに向いていることが分かったので、地震情報を確認できるスキルを作りました。
mkdir -p .magica/skills/get-earthquake-info/scripts
curl -fsSLo .magica/skills/get-earthquake-info/SKILL.md https://gitlab.com/tkithrta/magica/-/raw/main/.magica/skills/get-earthquake-info/SKILL.md
curl -fsSLo .magica/skills/get-earthquake-info/scripts/tool.py https://gitlab.com/tkithrta/magica/-/raw/main/.magica/skills/get-earthquake-info/scripts/tool.py
$ magica "地震?"
Skills: print-utc-time, get-earthquake-info, get-agentskills-spec, fetch-activitypub-outbox
Tool: activate_skill {"skill_name": "get-earthquake-info"}
Tool: run_script {"skill_name": "get-earthquake-info", "script_path": "scripts/tool.py", "args": []}
Agent: 2025年12月22日21時38分頃、沖縄本島北西沖を震源とする地震がありました。震源の深さは約90km、地震の規模はM4.5、最大震度1を沖縄県で観測しています。この地震による津波の心配はありません。
Mastodonアカウント@UN_NERV@unnerv.jpのActivityPub outboxのJSONから情報を取得しています。
MastodonのcontentはHTMLを返すので、人間が読む場合は何らかの処理が必要ですが、LLMはHTMLの構造化によってコンテキストを理解できるようになっているので、HTMLをそのままLLMに渡しています。
感想
Agent Skillsに対応した自作AIエージェントのためにスキルを作ると、スキルの性能を100%引き出せるのでおすすめです。
また何か追加したり、Agent Skillsの知見があればアップデート情報と一緒に紹介したいと思います。
あわせて読みたい
Discussion