Skills の「専門性」って、何だろう?
Agent Skills を作り始めたころ、私にはひとつ単純な発想がありました。
ニューラルネットワークという考え方の源流のひとつには、人間の神経系を抽象化しようとした発想があります。
もちろん、Agent は LLM ではありませんし、LLM は脳でもありません。
でも、そこからひとつの疑問が生まれました。
Agent に経験を再利用させたいなら、人間はそもそもどうやって経験を再利用しているのだろう?
人はどうやって経験を使っているのか
以前、ある問題を解いたことがあるとします。
次に同じような状況に出会ったとき、普通はゼロから全部分析し直したりはしません。
いくつかの重要な特徴を見ただけで、
これは前にも見た。
と感じます。
そして過去の経験が自然に働き始めます。
でも、本当に厄介なのはここです。
もし、その見立て自体が間違っていたら?
今回はただ「よく似ている」だけかもしれません。
本当に重要な条件が、ひとつ変わっているかもしれません。
そうなると、経験は役に立たないだけではありません。
間違った判断を、より速く、より自信を持ってしてしまう可能性があります。
だから私は、「専門的であること」と「何度もやったことがあること」は同じではないと思うようになりました。
少なくとも今の私にとって、「専門的であること」には、
過去の経験をいつ使ってよいのか判断できること
も含まれます。
そして、私が Agent Skills に最終的に近づいてほしいのも、こういうものです。
自分の Skills がすでに専門家のように経験を使えている、と言いたいわけではありません。
その前に知りたいのは、
専門家が経験を使うやり方を再現したいなら、いったい何を再現すればいいのか?
ということです。
この問いには、すでに研究があった
そのあと、この考えにかなり近い概念を知りました。
conditionalized knowledge(条件化された知識)です。
簡単に言えば、ただ、
「X が起きたら Y をする」
と覚えているだけではありません。
知識と、その知識が使える条件を一緒に理解することです。
どんな条件なら、X は本当に X なのか?
いつ Y は有効なのか?
どの条件が変わったら、もう Y をそのまま当てはめるべきではないのか?
National Academies が専門家と初心者の研究をまとめた章では、専門家の知識は「それがどのような状況で有効か」と結びついていると説明されています。
だからこそ、専門家は今の課題に本当に関係する知識を素早く取り出せます。
逆に、そのように条件づけられていない知識は、すでに知っていたとしても、必要な場面でうまく呼び出せないことがあります。
原典:How People Learn — How Experts Differ from Novices
これは、当時私が Skills について考えていたことにかなり近いものでした。
Skill が「どうやるか」だけを記録しているなら、保存しているのは経験の一部分だけです。
もう一つ必要なのは、
どんな条件なら、その経験は成立するのか?
という情報です。
専門家には、そもそも同じ問題に見えていない
チェスの熟練者は分かりやすい例です。
実際の局面を見ると、熟練者は意味のあるパターンをすばやく認識します。
速く判断できる理由は、単にたくさんの棋譜を知っているからではありません。
より早く、
これはどういう状況なのか
を見抜けるからです。
このことから、Skills に対する見方も変わりました。
Skill は「やり方」だけではない
いちばん単純な経験再利用は、
状況 A → Skill A
です。
でも、現実の問題はそんなにきれいではありません。
私が本当に欲しいものは、もっとこういうものです。
今はどんな状況なのか?
どの過去経験が関係しているのか?
今回は以前と何が違うのか?
どの経験は使えて、どれは修正が必要で、どれは捨てるべきなのか?
だから、どれだけ完成度の高い Skill を書いても、それは全体の一部分にすぎません。
もし Agent が、
A に見える
→ A を探す
→ A を実行する
だけなら、Skills が増えるほど専門家に近づくとは限りません。
むしろ、
正しそうに見える過去の答え
を見つけるのが上手くなるだけかもしれません。
本当に難しいのは、
今回は本当に A なのか?
という判断です。
では、私が言う「専門的」とは何か
いつも正しいことではありません。
Skills をいちばん多く持っていることでもありません。
少なくとも私が再現したい専門性は、
状況を見分け、経験を使いながら、その経験自体を疑う余地も残すこと
に近いです。
過去の経験は、判断を速くしてくれます。
でも、重要な条件が変わったときには、
今回は、前と同じやり方をそのまま使えないかもしれない。
と気づけるようにしたい。
だから、タイトルの『Skills の「専門性」って、何だろう?』という問いには、私自身の Skills も含まれています。
自分の仕組みが、今どこまでそういう判断をできるようになっているのか、私にもまだ分かりません。
これはむしろ、目指している方向です。
Agent にやり方をどんどん覚えさせるのではなく、過去のやり方をいつ信じてよいのかを、少しずつ判断できるようにしたい。