広告

LLMエージェントは今、実際のアクションをトリガーできる。では、実行を妨げているのは何か?

Reddit r/artificial / 2026/4/1

💬 オピニオンDeveloper Stack & InfrastructureIdeas & Deep AnalysisTools & Practical Usage

要点

  • この記事は、ツール呼び出しを備えたLLMエージェントが、実行すべきかどうかを厳密に強制する仕組みなしにアクションを「提案」できてしまうと主張しており、API、インフラ、支払いのような実際の副作用を持つツールではリスクが生じる。
  • 同じモデルとツールでも、実行前に後続の呼び出しをポリシーがブロックしただけで「許可(allow)/拒否(deny)」という異なる結果が出てしまう失敗モードを示し、強制はツールの前(pre-tool)で行う必要があることを強調している。
  • 多くのエージェント構成では、検証、リトライ、ガードレールが存在していても、実際にはモデル → ツール → 実行というパイプラインの形により、モデルが間接的に実行を制御できてしまっていると説明している。
  • 提案される代替案は、フローを「提案(proposal)→(ポリシー+状態)→ 許可/拒否(ALLOW/DENY)→ 実行」に再構成し、認可ゲーティングを使って拒否されたアクションがそもそもツールに到達しないようにすること。
  • アプローチを示すデモリポジトリがリンクされており、最後に読者へ、現在どのようにエージェントのツール実行をゲートしたり監視したりしているか共有してほしいと促している。

ツール呼び出しでエージェントを作っているときに、シンプルだが重要な問題にぶつかりました:

モデルはアクションを提案できる
しかし、そのアクションを実行すべきかどうかを実際に強制するものが何もない。

これは問題ありません…が、エージェントが実際の副作用を扱うと:

  • API
  • インフラ
  • 支払い
  • ワークフロー

同じモデル、同じツール、同じ入力:

#1 provision_gpu -> ALLOW #2 provision_gpu -> ALLOW #3 provision_gpu -> DENY 

重要なポイント:

3回目の呼び出しは、実行前にブロックされる

リトライなし
部分実行なし
副作用なし

根本的な問題

ほとんどのセットアップはこのように見えます:

model -> tool -> execution 

たとえ:

  • バリデーション
  • リトライ
  • ガードレール

…それでも、モデルが間接的に「実行がいつ起きるか」を制御してしまいます。

何が変わったか

私たちは別のアプローチを試しました:

proposal -> (policy + state) -> ALLOW / DENY -> execution 

重要な制約:

認可がなければ実行パスはない 

つまり、拒否されたアクションは単に「失敗」するだけではなく、そもそもツールに到達しません。

デモ

https://github.com/AngeYobo/oxdeai/tree/main/examples/openai-tools

なぜこれが重要に感じられるのか

エージェントが「考える」から「行動する」に移ると、
リスクは出力そのものではなく、副作用です。

そして今のところ、ほとんどのシステムにはそこに明確な境界線がありません。

質問

あなたはこれをどう扱っていますか?

  • ツール呼び出しの前に実行をゲートしていますか?
  • それとも事後のリトライ/監視に頼っていますか?
提供者: /u/docybo
[リンク] [コメント]

広告