0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SkillCorpusが80万個で測った、スキルは多いほど効くのか

0
Posted at

エージェント用の「スキル」を書いたことがあるなら、SKILL.md という名前に見覚えがあるはずだ。名前と説明をYAMLで書き、その下に手順やガードレールをMarkdownで並べるだけのファイルで、Claude Code、Codex、Cursor、Gemini CLIがそろってこの形式を読むようになった。手軽さゆえに数は爆発的に増えたが、「たくさん積めばエージェントは賢くなるのか」を誰もまともに測っていなかった。

そこを正面から測ったのが、7月17日にarXivへ出た SkillCorpus だ。公開されているスキルをかき集めて選別し、実タスクでどれだけ効くかをベンチマークで検証している。結論を先に言うと、効き目は「スキルの数」ではほとんど決まらない。

🧹 80万個のうち、生き残ったのは1割強

論文チームは62のソースから約82万1000個の SKILL.md を収集した。ところが構造フィルタとリポジトリ単位の重複除去を通すと、パイプラインに入るのは2万5159リポジトリまで縮む。いちばん削れたのが重複除去の段で、完全一致だけで入力の59.7%が消え、さらにコサイン類似度0.90超で意味的にも間引く。LLM判定で「ほぼ同一」と確認されたペアは25.4%に上った。最終的に残った公開スキルは9万6401個だった。

つまり世に出回る「80万個」という数字の相当部分は、同じ成果物をリポジトリ間でコピーしたものだ。エコシステムが大きく見えるのは、中身が多様だからではなく、多くが複製だからでもある。残った9万6401個も一様ではなく、品質スコアが0.7以上のものは58.8%、逆にほぼ使い物にならない0.3未満のスキルも2.8%混ざっていた。

選別は16分類のタクソノミーと、有用性・堅牢性・安全性の3軸(各0〜10点)で行う。安全性はプロンプトインジェクションやコマンドインジェクション、認証情報の漏洩といった実害を見る軸で、危険フラグに触れた915個は問答無用で除外される。

品質スコアを上げても、成果は当たらない

ここからが面白い。3軸を 0.50u + 0.35r + 0.15s で合成した品質スコアは、タスクの成功率をほとんど予測しなかった(相関はいずれも |r|<0.10)。唯一、安全性の軸だけがSkillsBenchで弱い正の信号を持っていた。

これは実務的に重い。スキルを「品質スコア順」で並べるマーケットプレイスを作っても、その順位は「実際に効くか」とは別物だ、ということになる。説明の丁寧さや作り込みの見栄えは、エージェントの成果に直結しない。数を誇るのも、スコアで並べるのも、指標としては当てにならない。「良さそうなスキル」を測る目盛りが成果と無関係だったという結果は、地味だが効く負の知見だと思う。

効くかどうかは、カバレッジとハーネスで決まる

では何が効き目を分けるのか。ひとつは、そのタスクに合うスキルが在庫にあるかだ。検索の一致度でタスクを区切ると、最下位の帯では平均+2.2ポイントしか伸びないのに、最上位の帯では+25.1ポイント伸びる。数学(該当4件)や金融(9件)のように在庫の薄い分野では効果がほぼゼロになった。論文はこれを「検索の問題ではなく供給の問題」と切り分けている。手元のタスクに合うスキルがそもそも無ければ、いくら賢く検索しても意味がない。

もうひとつは、エージェント側のハーネスの作りだ。同じスキルを注入しても、実行して検証して直すループを回す Raven はSkillsBenchで+13.4ポイント伸びたのに対し、推論だけで止まりがちな OpenClaw は+5.7ポイントにとどまった。スキルは「読んで終わり」では効かず、手を動かすエージェントでこそ効く。

ベンチマーク 性質 平均の伸び
SkillsBench 検証器つき87タスク +7.5pt
QwenClawBench 実ユーザ分布100タスク +2.79pt
GDPVal 実経済220タスク +1.51pt

ベースラインが7〜8割と高いGDPValやQwenClawBenchで伸びが小さいのは天井効果で、ここは元々の判定ノイズ(20〜27ポイント)も大きい。逆に、フロンティアモデルのClaude Opus 4.7でも+8.0ポイント出ており、弱いモデル専用のテクニックではないことも確かめている。

注入の仕方も雑ではない。Qwen3ベースの埋め込みで一次検索し、再ランクした候補から、LLMが本当に必要な0〜2個だけを選んで差し込む。文脈に全部を放り込むのではなく、絞る。ここは自分でスキルを使うときにも効く教訓だ。

🛠 今日から触れる部分

SkillCorpusのデータセットとコード自体は「採択後に公開」とあり、まだ落とせない。ただしスキルの標準形式と、それを配る仕組みはすでに動いている。

例えば huggingface/skills はHugging Faceの操作を27個のスキルにまとめたもので、Claude Codeなら次のように入れる。

/plugin marketplace add huggingface/skills
/plugin install hf-cli@huggingface/skills
hf skills add <skill-name>

SKILL.md の中身はこれだけの構造だ。

---
name: my-skill-name
description: Describe what the skill does and when to use it
---

# Skill Title
手順・例・ガードレールを書く

自分でスキルを作って評価したいなら huggingface/upskill が使える。高価なモデル(teacher)で手順を書き起こし、安いモデル(student)がそれを使って難しいタスクをこなせるかを実測する、という発想の道具だ。

uv pip install upskill
upskill generate "write good git commit messages"
upskill eval ./skills/git-commit-messages/ -m haiku -m sonnet

SkillCorpusの数字を踏まえるなら、upskill eval のように「そのスキルが本当に成功率を上げたか」を回して確かめる姿勢こそが正解に近い。スキルを増やす前に、自分のタスクに在庫があるか、エージェントが実行と検証まで回すか、注入するのは選び抜いた数個か。この3点を押さえて初めて、スキルの山は戦力になる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?