これが重要な理由
ループで実行されるエージェントには、すぐに積み重なる2つのコストがあります。クォータコスト:MCPツールへの各呼び出しは、週ごとの割り当てにカウントされます。トークンコスト:コンテキストウィンドウ内のデータの各部分は、処理コストを増加させ、推論の質を低下させます。
薄いコンテキストブロックは両方に対応します。1回の小さなティッカースイープを数行に要約し、会話の開始時に一度だけ挿入します。エージェントは、ツール呼び出しの嵐やトークンのインフレなしに、状況認識を持っています。
前提条件
MCPクライアントで設定されたCryptohopper MCP — セットアップ概要を参照してください。
定期的にまたは継続的に実行されるエージェントワークフロー。単発のプロンプトはこの技術からは恩恵を受けません。
Pioneerティアで十分です — ティッカーの呼び出しはすべてのティアで安価です。サブスクリプショントリアを参照してください。
セットアップ手順
ブロックに入れるものを定義する
4〜6行、すべてティッカー由来 — 約100トークン。典型的なブロックは、アンカートークンの価格と24時間の変動、スイープユニバース全体の上昇率トップと下落率トップ、異常な出来高を持つペア、および1単語の市場レジームラベルをカバーします。
BTC 66,120 (+1.1%, vol normal)
ETH 3,240 (+2.8%, vol elevated)
SOL 148.50 (+1.9%, vol normal)
Top gainer: ARB +8.2% (vol 2.4x)
Top loser: DOGE -3.5% (vol normal)
Unusual volume: LINK (flat price, vol 3.1x)
Market regime: risk-on, moderate breadthシンボルごとのループでブロックを生成する
バルクティッカーツールはありません — 各ティッカーは単一のMCP呼び出しです。以下の関数は、シンボルごとに1回の呼び出しを行います。3つのアンカー+10シンボルのスイープは、実行ごとに13回の呼び出しになります。
def build_thin_context() -> str:
exchange = "binance"
# Fixed anchor tickers — one call each
anchors = ["BTC/USDT", "ETH/USDT", "SOL/USDT"]
anchor_tickers = [mcp.get_ticker(exchange, pair) for pair in anchors]
# Sweep universe — one call per symbol
sweep_pairs = [
"ARB/USDT", "OP/USDT", "AVAX/USDT", "LINK/USDT", "AAVE/USDT",
"UNI/USDT", "DOGE/USDT", "MATIC/USDT", "SEI/USDT", "TIA/USDT",
]
sweep_tickers = [mcp.get_ticker(exchange, pair) for pair in sweep_pairs]
# Derive summary fields
all_tickers = anchor_tickers + sweep_tickers
top_gainer = max(all_tickers, key=lambda t: t.change_24h_pct)
top_loser = min(all_tickers, key=lambda t: t.change_24h_pct)
unusual = [t for t in all_tickers if t.volume_ratio_vs_baseline > 2.5]
return format_as_context(anchor_tickers, top_gainer, top_loser, unusual)
# Total calls = len(anchors) + len(sweep_pairs) = 13 per runエージェントの最初のメッセージの先頭にブロックを挿入する
タスク指示の前にタイムスタンプ付きのブロックを配置します。エージェントはまずコンテキストを読み込み、すでにリストされているものを再度取得してはいけません。
[CONTEXT AS OF 2026-04-24 08:00 UTC]
BTC 66,120 (+1.1%, vol normal)
ETH 3,240 (+2.8%, vol elevated)
SOL 148.50 (+1.9%, vol normal)
Top gainer: ARB +8.2% (vol 2.4x)
Top loser: DOGE -3.5% (vol normal)
Unusual volume: LINK (flat price, vol 3.1x)
Market regime: risk-on, moderate breadth
Your task: [the actual thing you want the agent to do]必要に応じてエージェントを薄いブロックからエスカレートさせる
ブロックは要約です。何かが興味深いように見える場合、エージェントは指定されたペアのローソク足またはオーダーブックの深さをMCPに呼び出します。ほとんどの実行はエスカレーションなしで終了します — それが正しい動作です。
ワークフローに合わせたケイデンスで更新する
毎時エージェント → 各時間の開始時に再構築します。
毎日のダイジェスト → 1日1回。
オンデマンドアシスタント → セッションごとに1回。
ケイデンス境界を越えてブロックを再利用しないでください — 古いコンテキストはコンテキストがないよりも悪いです。
計算
毎時、1日16時間、週5日稼働するエージェント、13シンボルスウィープの場合:
アプローチ | 実行ごとの呼び出し | 週ごとの呼び出し |
ナイーブ(エージェントがスクラッチからプルする) | 20〜100(大きく変動) | 1,600〜8,000 |
薄いコンテキスト+選択的エスカレーション | 13ベーシック+〜10〜30(エスカレーション時) | 1,840〜5,040(安定) |
薄いコンテキストは、必ずしも全体で安価ではありません — それが提供するのは予測可能性です。最悪の週がどのようになるかを知ることができます。Pioneerの週6,000呼び出しでは、無料ティアで軽量な毎時エージェントを feasble に保ちます。
このパターンを使用しない場合
状況 | 薄いコンテキストが役に立たない理由 |
単発の会話型リサーチ | 質問をするだけで、アシスタントが処理します |
常に詳細なデータが必要なワークフロー | グリッドボットのパラメータジェネレーターはすでにローソク足履歴を必要としています。薄いコンテキストは冗長です |
スリッページに敏感な実行フロー | これらのフローは、キャッシュされたコンテキストから推論してはいけません — 常に最新のデータをプルしてください |
ワークフローが繰り返し、予測可能で、ほとんどが認識ベースである場合は、薄いコンテキストを使用してください。節約は積み重なります。これらの特性がない場合、オーバーヘッドはそれだけの価値はありません。
トラブルシューティング
エージェントが薄いコンテキストを無視して同じデータを再プルする
明示的にプロンプトしてください:「上記のコンテキストブロックが現在の状態です — BTC、ETH、SOL、またはリストされているものはティッカーを再取得しないでください。ブロックにないものが必要な場合のみ新しいデータをプルしてください。」制約としてフレーム化されると、エージェントはそれを尊重します。
エージェントが使用する頃にはブロックが古くなっている
短いケイデンスのワークフロー(分単位)では、ブロックはすぐに古くなります。より頻繁に更新するか、ブロックのタイムスタンプを明確にマークして、エージェントが古い数値に基づいて決定を下す前に再確認できるようにします。
ブロックのフォーマットが実行ごとに一貫しない
モデルにブロックを書かせるのではなく、フォーマットをテンプレートとして修正し、値を埋め込みます。決定論的なジェネレーターは、一貫した出力を生成します。
ブロックにもっと多くのデータを含めたい
衝動に抵抗してください。各行は実行ごとにトークンを消費します。データポイントがほとんどの実行で参照されない場合は、オンデマンド呼び出しに含めるべきであり、ブロックに含めるべきではありません。
エージェントが無視する数値をブロックに含める
それらをカットしてください。100%使用されるブロックは、60%使用されるブロックよりも優れています。
複数取引所コンテキストによりブロックが大きすぎる
ブロックには1つのプライマリ取引所(通常はBinance)を使用します。比較が必要な場合にのみ、エージェントに他の会場から取得させます — 一般的なケースのためにマルチ会場コンテキストを事前に入力しないでください。
複数の時間枠をカバーする薄いコンテキストが必要
それらを統合しようとするのではなく、エージェントの目的ごとに1つのブロックを使用します。TAに焦点を当てたエージェントは4hトレンドのブロックを取得し、スキャンに焦点を当てたエージェントは24hデルタのブロックを取得します。
