ANTIGRAVITY LABEN
記事一覧/Agents & Manager
Agents & Manager/2026-06-03上級

エージェントに渡す道具の粒度を決める — 粗くまとめるか、細かく分けるか

エージェントに与えるツールを細かく分けるか粗くまとめるか。判断軸を「意図1つ=ツール1つ」に置き、破壊的操作だけ粒度を下げる設計を、6アプリ運用の実コードと実数値で解説します。

AIエージェント36ツール設計Antigravity338function callingアーキテクチャ9

プレミアム記事

エージェントに新しい道具を持たせるとき、私がいちばん時間をかけて悩むのは、機能そのものよりも「その道具をどのくらいの大きさで切り出すか」です。readFilewriteFile のように小さく刻むのか、それとも updateConfig のように一連の作業を一つにまとめるのか。これは些細な設計判断に見えて、実際にはエージェントが賢く振る舞えるかどうかを左右する、かなり根の深い問題でした。

私は2014年から個人でアプリを作り続けていて、いまは iOS と Android で6本のアプリ(累計5,000万ダウンロード)を回しながら、4つの技術ブログの更新もエージェントに任せています。この規模になると、人間が一つひとつの操作を確認する時間はほとんど残りません。だからこそ「どんな道具を、どんな粒度で渡すか」が、運用全体の安定性を静かに決めてしまうのです。ここでは、私が遠回りの末にたどり着いた粒度の判断軸と、破壊的操作だけ扱いを変える二層構造を、実際のコードと数値とともにお話しします。

道具が細かすぎても粗すぎても、エージェントは迷います

最初に私がやった失敗は、API のエンドポイントをそのままツールにすることでした。AdMob のメディエーション設定を Claude in Chrome 経由で最適化する作業を半自動化しようとしたとき、getAdUnit listMediationGroups getEcpmFloor setEcpmFloor enableNetwork ……と、UI の操作単位をそっくりツールに写し取ったのです。

結果はあまり芳しくありませんでした。エージェントは一つの目的(「このアド ユニットの eCPM フロアを各ネットワークで揃える」)を達成するために、5回も6回もツールを呼び、そのたびに前の戻り値を読み返して次を組み立てます。途中で一度でも戻り値の形を読み違えると、そこから先の手順が静かにずれていきます。私が見ていたのは「賢いエージェント」ではなく、「細かい指示書を一行ずつ追うのに必死なエージェント」でした。

逆に、それを嫌って何でも一つにまとめた optimizeMediation という巨大なツールを作ったこともあります。今度はエージェントは一回呼ぶだけで済むのですが、その内側で何が起きているのか人間からは見えず、途中で「いや、この変更は今やらないでほしい」と止める余地がまったくありませんでした。粗すぎる道具は、エージェントを賢く見せる代わりに、人間から制御点を奪ってしまったのです。

この両極を行き来して、ようやく腑に落ちたことがあります。粒度の問題は「いくつに分けるか」ではなく、「どこで意思決定が起きるか」で考えるべきだ、ということでした。

判断軸は「一回の意思決定で完結するか」

私がいま使っている判断軸は、ひとつだけです。そのツールの呼び出しが、エージェントの一回の意思決定で完結するか。

ここで言う「意思決定」とは、エージェントが「次に何をすべきか」を考える単位のことです。getEcpmFloor で値を取って、それを見て setEcpmFloor で書き戻す――この二つは、人間の頭の中では「フロアを調整する」という一つの判断です。なのにツールが分かれていると、エージェントはその一つの判断を、ツール呼び出しの境界で無理やり二つに割られてしまいます。割られた隙間に、誤読や中断や別の割り込みが入り込みます。

だから私は、人間が「ひとつのことをやる」と感じる単位を、ツールひとつに対応させるようにしました。読み取りと、その値に基づく書き込みが常にセットで起きるなら、それは一つのツールにまとめます。一方で、「どのアド ユニットを対象にするか」のように、エージェントが本当に判断を分岐させたい場所は、あえてツールを分けて残します。

言葉にすると単純ですが、この軸を持ってから設計がぶれなくなりました。「これは分けるべきか」と迷ったら、「これはエージェントにとって一つの判断か、二つの判断か」と問い直すだけで答えが出ます。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
ツール粒度を決める唯一の判断軸「一回の意思決定で完結するか」とその適用手順
細かすぎるツール群が招く3つの失敗と、粗すぎるツールが奪う「途中で止める」余地
破壊的操作だけ意図的に粒度を下げる二層設計の実装コード(TypeScript)と運用数値
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Antigravity Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

Agents & Manager2026-06-30
Android CLI が3倍速・トークン7割減になったとき、増やすべきは並列数ではなく1件あたりの検証だった
Android CLI のエージェントが3倍速・トークン約7割減になった、というニュースを見て最初に考えたのは「では何本同時に走らせようか」でした。けれど速くなって本当に変わるのは生産量ではなく、詰まる場所です。レビューと検証ゲートに移ったボトルネックを Little's Law で見積もり、WIP キャップで並列数を抑え、浮いた予算を1件あたりの検証に回す設計を、動く Python 実装と実測値でまとめました。
Agents & Manager2026-06-30
1,400箇所の置換を1コミットで投げてきたエージェントに、バッチで返してもらう設計
Antigravity に大規模な機械的置換(codemod)を任せると、レビュー不能な巨大1コミットが返ってくることがあります。ast-grep のルールと検証付きバッチドライバで、置換を「機械の仕事」と「人の確認」に分け、安全に通す設計を実装つきでまとめました。
Agents & Manager2026-06-24
外部ページに紛れ込んだ指示で無人エージェントが動いてしまう前に — 入力の汚染を追跡して権限を落とす設計
無人実行のエージェントが取得した外部ページやPDFに指示が紛れていても乗っ取られないよう、入力の汚染を追跡して副作用ツールの権限を落とす設計を、動くPythonコードと運用の実測値つきで解説します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →