ツール呼び出しでエージェントを作っているときに、シンプルだが重要な問題にぶつかりました:
モデルはアクションを提案できる
しかし、そのアクションを実行すべきかどうかを実際に強制するものが何もない。
これは問題ありません…が、エージェントが実際の副作用を扱うと:
- 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
なぜこれが重要に感じられるのか
エージェントが「考える」から「行動する」に移ると、
リスクは出力そのものではなく、副作用です。
そして今のところ、ほとんどのシステムにはそこに明確な境界線がありません。
質問
あなたはこれをどう扱っていますか?
- ツール呼び出しの前に実行をゲートしていますか?
- それとも事後のリトライ/監視に頼っていますか?
[リンク] [コメント]




