こう 聞かれます
- 「AI エージェントや
ツール呼び出しを 本番で 使う とき、 何に 気を つけますか」 - 「MCP とは
何ですか。 使う ときの 心配は 何ですか」 - 「エージェントが
同じ 処理を 延々と 繰り返したら、 どう 止めますか」
面接官が 見ている点
- LLM の
判断が 間違う 前提で、 守りを 仕組みに 入れられるか - 権限、
人の 確認、 上限、 記録を 分けて 挙げられるか - 便利さの
裏に ある、 つなぐ 相手を 信じる 危険を 分かっているか
短い答え
- ツールに
渡す権限は 要る 分だけにし、 削除や 送金のように 戻せない 操作の 前には、 人の 確認を 挟みます。 - 何を
呼んで 何が 返ったかを 記録し、 呼ぶ回数や 費用に 上限を 置いて、 繰り返しや 暴走を 止めます。 - MCP は
ツールを 決まった 形で つなぐ 仕組みで 便利ですが、 つなぐ サーバーが 信頼できるかを 確かめてから 使います。
少し 詳しい答え
エージェントと ツール呼び出し
AI エージェントは、
LLM は
4 つの守り
- 権限を絞る
読むだけで 足りるなら 書けない ツールに する、 触れる フォルダや 表を 限る、 などです (最小権限) - 人の確認削除、
送金、 外への メール送信のように 戻せない 操作は、 実行の 前に 人が 承認します - 上限 1 回の
作業で 呼べる 回数、 使える 費用、 かけて よい 時間に 上限を 置き、 超えたら止めます - 記録どの
指示で、 どの ツールを、どの 引数で 呼び、 何が 返ったかを 残します。 おかしな 動きを 後から追えます
YAML
# ツールごとに許す範囲を決めておく例
tools:
search_docs: { allow: true }
read_file: { allow: true, paths: ["docs/"] }
delete_record: { allow: true, require_human_approval: true }
limits:
max_tool_calls: 20
max_cost_usd: 1つなぐ 相手を確かめる
MCP の
トレードオフ
人の
よく ある間違い
- プロンプトで
「危ないことはしないで」と 頼むだけにする LLM は 従わない ことがあります。 権限と 確認で、 できないようにします - 開発の
ときの 強い 権限のまま 本番に出す本番では、 要る 分だけの 権限に絞ります - 記録を残さない
何が 起きたか 後から 追えず、 同じ 失敗を 防げません
深掘りの問い
- 「プロンプトインジェクションとの関係は」
読み込んだ外の データに 仕込まれた 指示で ツールを 呼ばされる 危険が ある、と答えます - 「エージェントの
品質は どう 試しますか」 決まった 作業の 組を 用意し、 最後の 結果と 途中の ツール呼び出しの 両方を 見る、と答えます - 「ツールの
数が 多すぎると 何が 困りますか」 LLM が 選び間違えやすくなり、 読む量も 増えるので、 作業ごとに 要る 物に 絞る、と答えます