9月22日、Datadogが「Cut AI agent cost and improve accuracy with Code Execution in the Datadog MCP Server」と題した記事を公開した。DatadogのMCP ServerにCode Executionを追加することで、AIエージェントのトークンコストを削減しながら調査精度を向上させる手法を詳しく紹介している。
MCPとは何か、なぜコード実行が必要なのか
MCP(Model Context Protocol)は、AnthropicがオープンソースとしてリリースしたAIエージェントとツール群を接続するための標準プロトコルだ。AIモデルがログ検索・メトリクス取得・スパン照会といった外部ツールを呼び出す際のインターフェースを統一し、複数のツールを組み合わせた自律的な調査を可能にする。
DatadogはこのMCPに対応したMCP Serverを提供しており、Cursor・Claude Desktop・VS CodeなどのAIクライアントからDatadogのオブザーバビリティデータに自然言語でアクセスできる。
ただし従来のMCPツール構成では、複数データソースにまたがる調査に構造的な非効率があった。「ツール呼び出し→モデルへの応答返却→次のツール選択」というサイクルを繰り返す必要があり、各ステップのツールスキーマや生の応答がすべてコンテキストとして積み上がる。ログのクエリ結果をモデルに渡し、それを踏まえてトレースを照会し、またモデルに渡す——こうした処理を繰り返すと、入力トークン数もツール呼び出し回数も膨らみ続ける。
Datadog Code Execution は、この中間処理をサンドボックス化されたJavaScript実行環境に閉じ込めることでこの問題を解決する。
コアとなるアイデア:中間処理をコードに閉じ込める
エージェントはコードを生成し、execute_codeとsearch_datadog_sdkという2つのMCPツールを通じてそのコードをサンドボックス上で実行する。並列クエリ、条件分岐、結果の結合や集計をコード内で完結させ、モデルには最終的な「答えに必要なエビデンス」だけを返せる。
以下は公式ドキュメントに掲載されているコードサンプルだ。ログAPIとスパンAPIに対して同一の1時間ウィンドウでエラーを並列クエリし、両方に登場するサービスのみを返す:
import { client, v2 } from "@datadog/datadog-api-client";
const config = client.createConfiguration();
const logs = new v2.LogsApi(config);
const spans = new v2.SpansApi(config);
const from = dd.time.hoursAgo(1);
const to = dd.time.now();
const [logErrors, spanErrors] = await Promise.all([
logs.aggregateLogs({ body: {
filter: { query: "status:error", from, to },
compute: [{ aggregation: "count" }],
sort: { aggregation: "count", order: "desc", type: "measure" },
}}),
spans.aggregateSpans({ body: {
data: { type: "aggregate_request", attributes: {
filter: { query: "status:error", from, to },
compute: [{ aggregation: "count", metric: "*" }],
}},
}}),
]);
const logsByService = new Map(
(logErrors.data?.buckets ?? []).map(
bucket => [bucket.by?.service, bucket.computes?.c0]
)
);
return (spanErrors.data ?? [])
.map(bucket => ({
service: bucket.attributes?.by?.service,
errorSpans: bucket.attributes?.compute?.c0,
errorLogs: logsByService.get(bucket.attributes?.by?.service) ?? 0,
}))
.filter(service => service.errorLogs > 0);
各APIはそれぞれ上位25件のサービスを返せるが、モデルのコンテキストに渡るのは両方の結果セットに含まれるサービスのみ。Code Executionなしの場合、モデルが両方の生レスポンスを受け取り、自分でジョインを行う必要があった。
使用するAPIは**Datadog TypeScript クライアントSDK**をベースにしており、既存のDatadog統合で使われているリクエスト形式と共通だ。
数字で見る効果:精度向上とコスト削減
Datadogはこの機能を、自社のコアツールセットと比較評価している。メトリクス・ログ・トレース・エラートラッキング・複数データソースにまたがる調査を含む25タスクを、4つのモデルで各3回実行し、回答の正解率を採点した。
※元記事に記載されているモデル名(GPT-5.6 Terra、GPT-5.6 Sol、Claude Sonnet 5、Claude Opus 4.8)をそのまま引用しているが、2026年9月時点で一般公開が確認できないモデル名が含まれており、内部評価用のバージョン名の可能性がある。
全モデルで正解率が向上し、その改善幅は7.7〜21.8ポイントに及んだ:
| モデル | コアツールセット | Code Execution | 変化 |
|---|---|---|---|
| GPT-5.6 Terra | 77.6% | 85.3% | +7.7 pp |
| GPT-5.6 Sol | 74.4% | 94.0% | +19.6 pp |
| Claude Sonnet 5 | 66.7% | 88.5% | +21.8 pp |
| Claude Opus 4.8 | 77.5% | 90.6% | +13.1 pp |
4モデルの平均では、コスト面でも顕著な差が出た:
| 指標 | コアツールセット | Code Execution | 変化 |
|---|---|---|---|
| 正解率 | 74.1% | 89.6% | +15.6 pp |
| 入力トークン数 | 159.4k | 42.8k | −73.2% |
| ツール呼び出し回数 | 4.08回 | 2.47回 | −39.6% |
入力トークンが73.2%削減されるということは、従量課金のAPIコストが大幅に下がることを意味する。精度が上がりながらコストも下がるという結果は、AIエージェントのインフラを本番運用しているチームにとって直接効いてくる数字だ。
セキュリティ境界:認証情報はサンドボックスに渡らない
エージェントが生成したJavaScriptコードがプロダクションの観測データに対してAPIを叩くという構造は、セキュリティ上の懸念を生む。Code Executionでは、実行環境と認証情報を明確に分離することでこれに対応している。
サンドボックス内のコードは呼び出し元の認証情報にアクセスできない。コードがdd.*メソッドを呼び出すと、信頼済みのMCPサービスが呼び出し元の権限でリクエストを実行し、レスポンスをサニタイズしてサンドボックスに返す。コードはデータを処理できるが、そのデータを取得するための認証情報には触れない仕組みだ。
セットアップと利用イメージ
Datadog MCP Serverをクライアントに接続した上で、code-execツールセットを有効化するだけで使い始められる。対応クライアントはCursor・Claude Desktop・VS Code Copilotなど、MCP対応のものであれば広く利用できる。
有効化後は、「昨夜のデプロイ後にエラーレートが変化したサービスを特定し、それと同時に変化したトレースパターンを表示して」といった複数データソースにまたがる質問をエージェントに投げることで、Code Executionが機能する。このようなクエリを従来の構成で処理すると、ログ・トレース・メトリクスそれぞれのAPIレスポンスが逐次モデルに積み上がっていくが、Code Executionではエージェントが生成したコードがサンドボックス内で並列実行・集計を完結させ、モデルに渡るのは絞り込み済みの結果のみとなる。
詳細はCut AI agent cost and improve accuracy with Code Execution in the Datadog MCP Serverを参照していただきたい。