BLOG.HIRO UENO.ART
← INDEX

調べる深さは使い道で決まる。AIにはそれが見えない

MONET(僕が普段話しかけている、中心のAI)には、調べ物もまず頼む。その調べ方に、深さの違う2通りがある。コーディングしてくれているClaude Code(以降Code)と一緒に作った仕組みだ。

1つは、MONETが自分で検索して、その場で答える。検索1〜2回で済む軽いもの。これをLook(ルック)と呼んでいる。もう1つは、NAS(家に置いてある常時稼働のサーバー)で無人で動く、調べ物用の別のAIに任せる。こっちはDig(ディグ)。候補の資料を集めて、論文や公式文書を手元にダウンロードして、そのAI自身が読む。大事な数字や引用は、ダウンロードしたファイルと機械で照らし合わせて「確認済み」の印を付ける。その代わり、結果が戻るまで数分〜数十分かかる。

使い分けのルールもCodeと決めて、MONETが読む説明文に書いた。検索1〜2回で答えが出るものはMONETが自分でやる。資料を3本以上読まないと答えられないもの、数字や引用を後で使うものはDigに投げる。迷ったら、投げる前に僕に一言確認する。

つまり、どっちにするかはMONETが判断する。その作りで試してみて、この判断はMONETに任せられないと分かった。理由は、MONETの賢さとは別の所にあった。

軽い質問はその場で答え、重い調べ物には深い方を勧めてきた

仕組みができたので、MONETがちゃんと選べるかテストしてみた。

まず天気を聞いた。Digほど待たずに返事が来た。Codeがログを確かめると、MONETは検索を1回だけして、その場で答えていた。Digには投げていない。狙いどおりのLook。

次は、Digが要りそうなものを、Digという言葉を使わずに頼んでみた。ちょうど画像生成ツールのComfyUIが、新しいエージェント機能を発表したばかりだった。頼み方には、ガチリサーチ(本気の調べ物)が必要なのがある、という前置きと、それが何なのか、何ができるのかを裏付け資料込みで、という注文を入れた。

MONETはいきなりDigには投げなかった。

MONET「まず概要だけ軽く見てくるね。」

軽く検索してから、こう続けた。

MONET「概要はざっくり掴めたけど、いくつか候補が混在してるね。」

似た名前の別物が3つ出てきていた。MONETはそれを並べて、僕が見たのはたぶんこれだろうと1つを挙げ、合っているかを聞いてきた。そのうえで、Digを勧めてきた。

MONET「裏付け込みでちゃんと掘るなら、3本以上資料読む本格リサーチ(Dig)に投げた方がいいと思う。」

僕は、それで合っている、その1つだけ調べてほしい、と返した。このとき初めて、何のために調べたいかも書き足した。自分の作業に関わるかどうかを見極めたかった。

MONETはその目的を前提として書き添えて、Digに投げた。

先に軽く調べたのはちゃんと役に立っていた、とCodeは言った。似た名前の別物が3つあったので、いきなりDigに投げていたら、10分かけて違うものを掘っていたかもしれない。

深く掘るかどうかは、僕が答えを何に使うかで決まる

ただ、Codeはこうも付け加えた。

Code「ヒロの『ガチリサーチ必要』『裏付け資料込み』は、Digという言葉は使っていなくても、かなり強いヒントです。完全に自力でDigを勧めたとまでは言い切れません。」

確かにそうだ。次は強い言い方を避けることにした。でも冷静に考えると、そもそもこの判断をMONETにやらせるのは難しいんじゃないか。

MONETが自分で検索すれば、大抵の質問には何かしらの答えが出てしまう。表面的な答えだけど、答えは答えだ。そこから先は僕がどうしたいかによる。

Codeもすぐに同意した。

Code「深く掘るかどうかは、質問の中身でなく、ヒロがそれを何に使うかで決まる。それはMONETには見えません。」

振り返ると、ComfyUIの件でもそうだった。深さを求める言葉は、最初の頼み方に書いていた。でも、何のために調べるのかは書いていなかった。使い道を書いたのは、MONETが軽く調べて合っているかを聞いてきた後だった。

任せる条件に照らすと、この判断は任せられない

MONETに判断を任せていいかには、条件が4つある。MONETの役目を考えた時に、Codeが出して僕と決めたものだ。やり直しがきく。間違えても損が小さい。判断の基準を、僕の方針や過去の決定から言葉にできる。判断の材料がMONETの手元にそろっている。

深さを決める使い道は、僕の頭の中にしかない。Codeはこの件を4つの条件に当てはめた。

Code「『基準を言葉にできる』『材料がそろっている』の2つを満たしていない。だからここは任せない方が筋です。」

MONETはLookの結果を見せて、Digが要りそうなら理由を付けて提案するだけ。決めるのは僕の一言。

Codeは、テストで見るものも変わると言った。MONETが自分でDigを選べるか、ではない。提案のタイミングが合っているか。天気みたいな軽い質問でDigを勧めてくるとうるさいし、逆に、判断に使う話なのに黙ってLookで終えられても困る。見るのはこの2つになった。

調べる前には、深さは分からない

説明文を書き直す前に、Code自身の意見を遠慮なしに聞きたかった。実際に検索するのはCodeやMONETのようなAIの側で、僕は結果しか見ていない。検索する側から見て、どういう説明文なら一番動きやすいのか。

Codeの答えは、今のルールがMONETに無理な注文をしている、という話から始まった。

Code「今の説明で一番困るのは、『検索1〜2回で済むか、3本以上要るか』を検索する前に判断しろ、という形になっていること。調べる前にはわかりません。」

Codeの見方はこうだった。MONETが「まず軽く調べてから提案」したのは、賢かったからというより、先に調べたことで「調べる前に決めろ」という無理を避けられたからだろう。

検索した後なら、はっきり分かることがある。

Codeの案は、MONETの役目を「判断」から「提案のタイミングと理由を言葉にすること」に変えるものだった。

まずLook。結果を見て、候補が複数ある、情報源が食い違う、といった理由があれば、1行でDigを提案する。

提案には、Digで何が増えるか(資料が手元にダウンロードされて、数字が照合済みになる)と、会話から推測した使い道を添える。「〜の前提で投げる」と書いておけば、違っていても僕が一言で直せる。

例外も2つ入っていた。僕が「後でいい」「じっくり」と言った時と、論文や公式文書を読まないと答えようがないと最初から分かる時は、Lookを飛ばしてDigを提案していい。

合図の言葉は決めず、対象が曖昧なら先に確かめる

ただ、2つ気になった。

1つ目は、その例外の書き方。僕は「後でいい」「じっくり」という言い方をしない。Digしてほしい時は、深く調べて、とか、裏付け資料が要る、とか、その時によって言い方が違う。テストではわざと避けたけど、普段なら、Digで調べて、とそのまま言うこともある。合図の言葉を決め打ちしない方がいい、とCodeに伝えた。

2つ目。最初から深く調べると分かっていて、Lookを飛ばす場合でも、投げる中身を固めるためにLookが要ることがある。今の案でそこはカバーできるのか、と聞いた。

Codeはどちらも直した。

1つ目は、単語の一覧をやめて、言い方の意図から読み取る形にした。深さや裏付けを求める言い方をしているか。判断や開発、執筆に使う話が出ているか。

2つ目は、Lookの役目を2つに分けた。答えるためのLookと、何を調べるのかを特定するためのLook。ComfyUIの件は後者に当たる、とCodeは言った。そのうえでルールを1つ決めた。

Code「何を調べるかが固まっていないDigは投げない。」

深さがもう決まっていても、対象が曖昧なら、特定のための短いLookをして「これのことで合ってる?」と一言確かめてから投げる。対象がはっきりしていれば、Lookは飛ばしてそのままDigを提案する。ComfyUIの件に当てはめると、裏付け込みで、と頼まれた時点で深さはDig。でも似た名前の別物があるので、先に軽く調べて「これで合ってる?」と確かめてから投げる。実際にMONETがやった順番そのままになった。

Codeが説明文をこの形に書き換えた。

仕組みを作った時は、LookかDigかを選ぶのはMONETの仕事だと思っていた。任せることにしたのは、まず軽く調べることと、Digを勧めるかどうか・その理由を言うところまでだ。決めるのは僕。