プロンプトを直しても効かないのは、指示が悪いからではなく、AIがいる場所から道が出ていないからである

AIに作業を頼んだのに、できませんと返ってきます。指示を分解して、前提を書き足して、出力の形も指定しました。会話が長くなったせいかと思って、新しく開き直してもみました。それでも、同じところで止まります。

よく言われる答えは、だいたい一つです。うまくいかない原因はAIの性能ではなく、指示の書き方のほうにある。曖昧さを減らし、目的を一つに絞り、前提を省略しない。実際そのとおりで、これで直ることは多いと思います。

この記事が立てる問いは違います。指示の書き方を全部直しても止まるとき、そこには何が残っているのでしょうか。

目次

指示は届いている。届いた先から、そこへ行く道が出ていない

AIに何かを頼むとき、話は2段階に分かれています。何をすべきかをAIが理解する段階と、その作業をAIが実際に行う段階です。

指示の書き方を直すというのは、このうち前半だけを直しているということになります。後半で止まっているなら、前半をいくら磨いても結果は変わりません。理解のほうは最初から済んでいるからです。

よく紹介される直し方は、どれも前半のための道具です。役割を決める、制約を並べる、出力の形を指定する、一度に一つだけ頼む。これらは理解のずれを消すのによく効きますし、実際に効いた場面も何度もありました。

私の場合、止まっていたのは自分のサイトへ原稿を送る作業でした。上に挙げた直し方は、ひととおり全部やっています。それでも結果が1ミリも動かなかったので、途中で見ている場所が違うと気づきました。

効かなかったのは、ずれていなかったからです。AIは何をすべきか分かっていて、ただ、そこへ行けませんでした。

相手の名前は引けるのに、繋がらない

見分ける手がかりの1つ目です。

インターネットで相手にたどり着くには、2つの段階があります。名前から住所を調べる段階と、調べた住所へ実際に繋ぐ段階です。この2つは別の仕組みで動いています。

私の環境では、名前を調べるところまでは通っていました。自分のサイトの住所は、きちんと返ってきます。ところが、その住所へ繋ごうとすると、何も返ってきませんでした。

これは、相手側が落ちているのとは違う状態です。相手が落ちているなら、繋いだ先から何らかの応答が返るか、そもそも住所も引けないかのどちらかになることが多い。名前だけ引けて繋がらないときは、こちら側で止められている形を疑います。

関係のない相手も同じように落ちるなら、拒まれているのではない

2つ目の手がかりで、これがいちばん決定的でした。

最初は、自分のサイトが拒まれていると思っていました。何か設定を間違えたのだろう、と考えていたのです。

そこで、まったく関係のない相手を試しました。説明用に用意された、誰でも見られるページです。これも同じように落ちました。一方で、開発でよく使われるサービスのほうは、問題なく繋がります。

ここで判定がつきました。自分のサイトが拒まれているのではありません。あらかじめ名簿に載っている相手だけが通り、載っていない相手は一律で落ちる、という形でした。誰かに嫌われているのではなく、名簿があるという話です。

自分に関係のあるものだけを試していると、この判定にはたどり着けません。関係のないものを1つ試したことが、答えを決めました。

同じAIでも、動いている場所が変われば届く範囲が変わる

この形には設計としての名前がついていて、広く使われています。外へ出る通信を既定で全部止めておき、必要な宛先だけを名簿に載せる。AIエージェントを動かす環境では、標準的な組み方です。

名簿に無いところへのHTTPとHTTPSは、すべて落ちます。実装によっては、生の通信や名前の解決まで落とすものもあります。私の環境では名前の解決だけは通っていたので、ここは環境によって差が出ます。

そしてもう一つ、この設計には共通して入っている項目があります。利用者の手元の機械や、社内のネットワークへ戻る通信も塞ぐ、という項目です。

私がスケジュール実行のセッションから手元の機械へ届かなかったのは、設定の漏れではありませんでした。届かないように作られていたのです。

ここからは私の解釈です。学説として確立された議論ではありませんので、そのつもりで読んでください。実測したのも1つの環境だけなので、どこでも同じとは言えません。

同じAIでも、置かれている場所によって、できることが変わります。変わるのは賢さではなく、そこから届く範囲のほうです。

この2つが混ざりやすいのは、症状が同じに見えるからだと思います。できませんという返事が来るところは、どちらも変わりません。賢さが足りなくてできないのか、そこへ行けなくてできないのかは、返ってきた文面からは区別がつかないのです。だから人は、まず賢さのほうを疑います。

同じ相手に、読めるのに書けないことがある

もう少し細かいところも書いておきます。

同じ環境の中でも、通り道は1本ではありません。読み取りのために用意された仕組みのほうは、名簿の外側にも届きます。私の場合、自分のサイトの記事を読むことは、最初からできていました。

ただ、その仕組みは認証を通せません。だから読むことはできても、書き込むことはできない。同じ相手に対して、片方だけができる状態です。

この状態は、能力の話としては説明がつきません。読めるのだから届いているはずだ、と考えると、そこで行き止まりになります。届いているのは一方の経路だけで、もう一方は塞がっている。それだけのことでした。

だから、一部だけができるという症状を見たときに、AIの気まぐれだと思わないほうがいいと思います。たいてい、通っている経路と塞がっている経路が別々にあります。

場所を移すことのコストを、正直に書いておく

公平を期すために、逆側も書きます。

手元の機械で動かせば、名簿も、戻れないという制約も、まとめて消えます。ただし、消えるのは制約だけではありません。

一つは、機械が起きていないと何も起きなくなることです。クラウドで動かしていたあいだは、こちらの機械の状態と無関係に走っていました。手元へ移すと、フタを閉じただけで止まります。

もう一つは、名簿が守っていたものが無くなることです。名簿は不便ですが、間違えて外へ出してしまう事故も同時に止めています。手元では、その歯止めが自分の判断だけになります。

そして、環境が自分専用になるぶん、うまく動かないときに同じ状態を再現できる人がいません。調べても、同じ症状の記録が見つかりにくくなります。

判断基準は、同じ指示を別の場所で走らせたら通るかどうかである

明日から使える形にすると、確かめ方は1つです。

指示を一文字も変えずに、別の場所で同じことを走らせてみる。手元の機械でも、別のサービスでも構いません。

通ったなら、指示は最初から正しかったことになります。直すべきなのは書き方ではなく、走らせる場所のほうです。

通らないなら、そのときに指示の側を見ます。順番としてこちらが後になるだけで、世の中に並んでいる助言はどれも正しいものです。曖昧さを減らす、目的を一つに絞る、前提を省略しない、長くなった会話を仕切り直す。場所の問題を先に外しておけば、これらはそのまま効きます。

困るのは、ずれていない場合にも同じ作業を続けてしまうことです。効かない原因が別の場所にあるので、何時間やっても手応えが出ません。そして手応えが出ないぶん、まだ書き方が足りないのだと思ってしまう。実際には、最初から書き方の話ではありませんでした。

Q:AIに頼んだ作業が、指示をどう直してもできません。何を見ればいいでしょうか。
A:指示を変えずに、別の場所で同じことを走らせてみてください。手元の機械で通るなら、原因は指示ではなく実行される場所にあります。判断の手がかりは3つあって、相手の名前は引けるのに繋がらない、自分と関係のない相手も同じように落ちる、そして場所を変えると通る。このどれかに当てはまるなら、書き方を直す作業はいったん止めて構いません。

直す対象は、指示ではなく場所である

この記事の答えをまとめます。

プロンプトを直しても効かないとき、原因が指示の中にあるとは限りません。指示は届いていて、届いた先から、そこへ行く道が出ていないことがあります。

見分ける手がかりは3つありました。名前は引けるのに繋がらない。関係のない相手も同じように落ちる。そして、場所を変えると通る。3つ目がいちばん確実です。同じ指示が別の場所で通ったなら、それは指示の問題ではありませんでした。

この見立てが役に立つのは、直す先が変わるからです。書き方を直し続けるあいだ、実際には何も動いていません。動くのは、走らせる場所を変えたときです。

いま、どうしてもうまくいかない作業が一つあるとします。それを頼んでいるAIは、どこにいるでしょうか。

  • URLをコピーしました!
  • URLをコピーしました!
目次