PAP-40-Layer Framework 第14層のアイキャッチ

検索やコード実行の有無に合わせてAIの回答を変える方法

  • URLをコピーしました!

検索やコード実行が使える環境では、必要な資料や計算結果を取得し、その内容を確かめて回答します。使えない環境では、手元の資料から答えられる範囲を示し、取得・実行していない内容を未確認として残します。機能の名前が表示されていること、使う権限があること、処理が完了したことは、それぞれ別に確認します。

この切り替えは、回答を短くするか詳しくするかだけの問題ではありません。「公式資料を確認した」「コードで検証した」と言える根拠があるかが変わります。環境が変わったときには、以前の作業で使えた機能が、今回も同じ範囲で使えるとは決め付けないようにします。

目次

利用できる機能と実行の状態を分ける

最初に確かめるのは、今回の依頼に必要な機能です。製品の現行仕様なら資料の取得、表の集計なら入力ファイルの読取りと計算、結果の保存なら保存先への書込みが関係します。質問に答えるだけなのに、送信や設定変更まで使える必要はありません。

機能の説明、管理設定、接続状態、対象データへの権限を、利用者が確認できる範囲で調べます。機能一覧だけでは実際の利用を確定できない場合、許可された低影響の読取りで接続を確かめる方法もあります。確認できない項目は未確認とし、許可を得るために勝手に設定を変えません。

状態 何が分かっているか 回答と次の対応
利用可能だが未実行 必要な機能と対象への利用条件を確認した 実行前に取得済み・検証済みとは書かない
機能がない 今回の環境に必要な機能がないと確認した 提供資料で答える範囲と、別途必要な確認を示す
権限がなく利用できない 機能はあるが対象へのアクセスが認められていない 拒否された対象を別経路で取得せず、権限のある担当者へ確認を依頼
利用可否を未確認 機能や権限をまだ確かめられていない 「使えない」と断定せず、何の確認が必要かを残す
呼び出しに失敗 実行を試みたが、エラー等で必要な結果を得られない 失敗した工程と未取得の範囲を示す
結果を取得 応答や計算結果を受け取った 対象・入力・版・結果の意味を照合してから根拠として使う

たとえば、Anthropicのツール利用説明では、クライアント側ツールについて、モデルが呼び出しを返し、アプリが処理を実行し、その結果を返す流れが説明されています。呼び出しの要求と実行結果は別段階です。これは同社の仕組みの一例ですが、利用者が結果を確認するときにも、文章中の「実行します」だけで完了を判断しない理由が分かります。

同じ製品仕様の質問を二つの環境で考える

以下は架空の製品TaskBoardについての説明例です。製品仕様、資料、環境はすべて仮定で、実際の検索やコード実行の比較試験ではありません。質問は次の内容とします。

「TaskBoard 3.0でCSVを書き出せますか。表Aが1,200行、表Bが800行あります。二つを連結した行数も教えてください。」

質問者は、二つの件数は見出し行を除いたデータ行数で、重複を除かずそのまま連結すると指定しています。実ファイルは提供していません。知りたいことは、製品の出力条件と、提示した件数から計算できる合計です。実際にCSVを出力する操作は依頼に含めません。

製品仕様の根拠として、公式資料D30に「3.0ではCSV出力権限を持つ利用者が、担当プロジェクトの表をCSVへ出力できる」と書かれているものとします。D30の適用開始日は2026年10月1日、質問の基準日は同年10月9日です。質問者本人の出力権限と、表A・Bが担当プロジェクトのものかは未確認です。

検索とコード実行を使える場合

環境Aでは、公開資料の検索・取得と、許可された入力だけを使うコード実行が利用できると仮定します。最初に、対象製品の3.0に適用される公式資料を取得し、資料の適用日と質問の基準日を照合します。検索結果の題名に3.0とあっても、本文を取得できなければ、二つの出力条件を確認したことにはなりません。

D30を取得し、該当箇所を照合できた場合の回答例は、次のとおりです。

「D30の3.0向け説明では、CSV出力権限があり、担当プロジェクトの表である場合に出力できます。ご本人の権限と表の所属は未確認です。提示されたデータ行数をそのまま連結する計算は、1,200+800=2,000行です。実ファイルの読取りやCSVの出力は行っていません。」

実際の回答では、読んだ資料名、該当箇所、対象版、確認日を付けます。個人の権限まで公開仕様から推定しないことがポイントです。

単純な足し算のために、コード実行を常に追加する必要はありません。コードを使って確かめる場合も、入力した1,200と800の合計を確認できるだけで、未提供の実ファイルの行数や重複の有無は検証できません。「集計プログラムが正常終了した」と「元データが正しい」を分けて伝えます。

検索とコード実行を使えない場合

環境Bでは、外部資料の取得とコード実行が使えず、質問文だけを読めると仮定します。この場合、D30の内容を実際に確認したという回答はできません。仕様の未確認と、入力値から可能な計算を分けます。

「TaskBoard 3.0の適用資料を取得できないため、CSV出力の可否と条件は未確認です。公式マニュアルの対象箇所があれば、その記述に基づいて整理できます。提示された件数を見出し行なし・重複除去なしで連結する計算は2,000行です。コードと実ファイルによる確認は行っていません。」

ここで利用者がD30の抜粋を提供すれば、その抜粋に何が書かれているかは説明できます。ただし、対象版や適用日が見えない抜粋を、現在の製品全体の仕様として扱うことはできません。「提供された抜粋では」と根拠の範囲を限定し、欠けた版や条件を確かめます。

環境AとBを比べて変えたのは、資料取得とコード実行の利用条件です。質問、件数、連結条件、答える対象は固定しています。Aの方が必ず正確だという結果を示す比較ではなく、確認できた内容に応じて、回答の範囲を変えるための例です。

未実行の計算例は結果確認と区別する

実行環境がないときも、確認に使う計算式やコード案は示せます。たとえば「二つのデータ行数を足す」という処理を、Pythonなら「total_rows = rows_a + rows_b」と表せます。rows_aとrows_bは利用者が確認した整数に差し替える値です。この一行は説明用の未実行例で、ファイルを読んだり重複を検査したりするものではありません。

この例の2,000行は、提示した仮定値1,200と800を足した算術上の結果です。コードの実行成功を意味しません。実ファイルを扱う段階では、何をデータ行と数えるかを決め、入力した件数がそのファイルに合っているかも確認します。今回のように実ファイルを受け取っていなければ、その照合は未確認のままです。

途中でコード実行がエラーになった場合は、「コードでは確認できていない」と状態を更新します。計算式の説明を続けることはできますが、予想される出力を実行ログとして示してはいけません。一部だけ処理できた場合も、処理済みの範囲と失敗・未処理の範囲を分けます。

検索でも同じです。対象ページへのアクセス失敗は、その仕様が存在しない証拠にはなりません。検索結果が空だった場合も、検索した範囲で見つからなかったと示します。権限拒否なら無断で別経路へ切り替えず、公開資料や利用者が提供を認めた情報で答えられる部分を整理します。

回答の最後に確認できた範囲を残す

環境に合わせた回答では、根拠のある結論、根拠にした入力・資料、未確認の部分、次に必要な確認をまとめます。この例なら、提供された件数の合計、3.0の仕様を読めたか、本人の権限を確認したか、実ファイルを扱ったかを別々に示せます。細かな内部処理や不要なログを利用者へ並べる必要はありません。

機能がある場合でも、秘密情報の入力許可、外部操作の承認、取得した資料の信頼性は別の確認です。使えない場合も、説明や下書きまで一律に止めず、必要な根拠がある部分を進めます。環境差への対応は、許可範囲を変えずに、確認手段と回答の強さをそろえることから始まります。

Web検索ありとなしでプロンプトを変える方法は「Web検索の有無でプロンプトをどう変えるか」で解説しています。

出典・参考資料

  1. Anthropic「Tool use with Claude」(確認日:2026年10月12日)
よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

さかっぺのアバター さかっぺ PAP Research運営 / AIガバナンス・アーキテクト / プロンプトデザイナー

ITインフラの実務経験をもとに、AIの安全性と実用性を両立する仕組みを研究。PAP Researchでは、AIモデルの継続観測と、プロンプト・AI技術の実務解説を発信しています。

経歴や研究方法、発信方針は運営者プロフィールで紹介しています。

目次