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

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

エージェントに渡すツールを細かく刻むか粗くまとめるかを、一回の意思決定で完結するかという軸で考えます。細かすぎるツール群が招く3つの失敗、粗すぎる場合に失う中断の余地を踏まえ、意図1つ=ツール1つという中間粒度に落ち着いた経緯を詳しく述べます。

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

✦ プレミアム記事

エージェントに新しい道具を持たせるとき、私がいちばん時間をかけて悩むのは、機能そのものよりも「その道具をどのくらいの大きさで切り出すか」です。readFile と writeFile のように小さく刻むのか、それとも 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-04-27
AgentKit 2.0 で作ったAIエージェントを売る5つの収益化パス — 個人開発者が選ぶべき販売チャネルの判断軸
Antigravity で作ったAIエージェントを個人開発者がどう売るか。マーケットプレイス、自社サイト、SaaS 組み込み、受託からの商品化、サブスクの5チャネルを、手取り・顧客との距離・立ち上がりの速さで比べ、Stripe の課金コードと利用上限の設計まで書き残します。
◈ Agents & Manager2026-04-14
Antigravity × AgentKit 2.0 × Stripe でつくるAIエージェント SaaS — 個人開発者が本番運用まで到達する実装ガイド
AgentKit 2.0 と Stripe を組み合わせ、サブスクリプション収益を得られる AI エージェント SaaS を Antigravity で構築する手順をまとめました。アーキテクチャ設計から課金・Webhook の冪等性、同時実行スロットが漏れる Redis 実装の穴まで、個人開発で実際につまずいた箇所を中心に整理しています。
◈ Agents & Manager2026-10-16
エージェントに .zip を渡す前に、.git を除いて 29 MB を 15 MB にし、秘密情報の警告 28 件を見分けました
Antigravity アプリ v2.23.0 で .zip を添付できるようになりました。自分のリポジトリを実際に固めて .git の重さと秘密情報検査の誤検知を数え、除外・検査・マニフェストを一度に行う Python スクリプトの全文を残します。