一次情報読解 AI原典ノート
RSS 保存
今日の更新 2026-07-10 - OpenAI: 複数 tool workflow を束ねる前に読む承認境界 / OpenAI: multi-tenant AI product 前に読む user attribution / Google AI for Developers: Gemini 本番運用前に読む retention と export 境界
今日読むポイント 複数 tool workflow を束ねる前に読む承認境界 OpenAI 2026-07-10

Programmatic Tool Calling は「まとめ処理」と「承認が要る実行」を混ぜるなと迫る

このノートは原文の代替ではありません。読むべきポイントと実装上の意味を整理し、原典への入口を示します。

要点

要点まとめ

  1. この guide の核心は、tool を複数つないで楽をすること自体ではなく、どの段階ならコードに任せてよく、どの段階は人やアプリ側の明示的な判断を残すべきかを切り分ける点にある。
  2. OpenAI は generated program を fresh な isolated V8 runtime で動かし、Node.js、直接の network、汎用 filesystem、subprocess、永続 state は持たせないと明記している。
  3. その一方で、読み取り結果の集約や重複除去のような predictable control flow には Programmatic Tool Calling を使い、write や approval-sensitive action には direct tool calling を既定にせよと線を引いている。
  4. 実務上の読後行動は、「複数 tool をコードでまとめると賢そう」という発想をやめ、read-only 集約段階と権限実行段階を別の handoff に分けることだ。
続けて読む

読み終えたら次へ

この1本で終わらせず、同じ目的・同じテーマ・近い原典へ進めます。

読解

何が変わったのか

この guide は tool use を「model が関数名を返す」だけの話から一段進めています。generated JavaScript を hosted runtime で動かし、parallel call、loop、condition、途中結果の整理まで許す一方、その runtime 自体はかなり狭く制限されています。外部との接点は有効化した tools 経由だけです。 さらに重要なのは、使い分けの規則をかなり具体的に書いている点です。predictable control flow なら Programmatic Tool Calling、semantic judgment や approval-sensitive action、native artifact や citation の最終検証は direct tool calling を使う。つまり「便利だから全部 program」にしないための guardrail が本文の中心です。

日本の文脈

なぜ重要か

日本語圏では「複数 tool をコードで束ねれば agent が賢くなる」という語りになりやすいですが、運用で本当に大事なのは責任境界です。どこまでが read-only の整形で、どこからが money movement、外部送信、在庫変更、公開更新のような重い操作なのかを明確にしないと、事故時に説明できません。 創業者や PM にも意味があります。Programmatic Tool Calling は機能追加ではなく、workflow 分解を迫る仕様だからです。集計や比較は高速化できても、承認や最終確認まで自動で飲み込ませるべきではない、と公式が書いている点は導入判断の基準になります。

技術ポイント

技術的ポイント

  1. OpenAI は generated program を fresh な isolated V8 runtime で実行し、Node.js、package install、direct network、汎用 filesystem、subprocess、永続 JavaScript state は持たせません。外部接続は request で有効化した tool 経由だけです。
  2. `allowed_callers` で tool ごとに direct だけ許すか、program からだけ許すか、両方許すかを分けます。つまり「その tool を誰が呼べるか」が API 契約に入ります。
  3. guide は read-only 集約や predictable な依存 call には program を勧めますが、write や approval-sensitive action には direct tool calling を既定にせよとしています。承認境界を保つためです。
  4. MCP tool は `require_approval` で program を一時停止できます。つまり program があるから approval が消えるのではなく、どこで止まるかを app 側が設計する必要があります。
  5. guide の orchestration 例では、side-effecting action を program に繰り返させず、retry 回数、停止条件、structured failure を先に決めるよう求めています。便利さより failure behavior の明文化が優先です。
用語

英日キーワード

英語日本語補足
Programmatic Tool Calling プログラム経由のツール呼び出し model が書いた JavaScript から複数 tool をまとめて使う仕組み。
allowed_callers 呼び出し許可元 その tool を direct で呼べるか、program 経由で呼べるかを決める設定。
isolated V8 runtime 分離された V8 実行環境 JavaScript は動くが、Node.js や直接 network を持たない hosted runtime。
approval-sensitive action 承認が要る操作 更新、送信、削除など、実行前に明示判断を残したい操作。
authorization boundary 承認境界 どこから先はコード任せにせず、人やアプリ側で止めるかの線。
side-effecting action 副作用のある操作 外部状態を変える操作。
試す

試すなら

  1. 自分の workflow を「読むだけの集約」「比較と整形」「実際の更新や送信」の 3 段に分ける。
  2. 2 段目までに Programmatic Tool Calling を限定し、3 段目は direct call と別承認に残す。
  3. tool ごとに `allowed_callers` を棚卸しし、program から呼んでよいものを read-only 中心に絞る。
  4. retry 回数、停止条件、structured failure を先に決め、side effect を持つ call を同じ program に混ぜない。
注意

注意点

  • `store: false` は stateless continuation を助けますが、それだけで Zero Data Retention が有効になるわけではないと guide は明記しています。
  • runtime が分離されていても、tool 側の権限が広ければ安全になるわけではありません。危険は tool contract 側に戻ります。
  • final citation や native artifact の検証を program に任せるなら、原物保持と完全検証の条件を自分で満たせるか厳しく確認すべきです。
関連原典

関連原典

原典を開く