登録して招待リンクを共有すると、動画再生報酬と紹介報酬を獲得できます。

検索結果 context
context コミュニティ
1つのキーワードが1つのコミュニティです。
コミュニティ作成
アカウント
見つかりません
context を含む検索結果
CodexのAuto CompactまでのContext Windowを50kにしてみるなど
ハーネスエンジニアリングのアンチパターン AP1. コンテキストの溜め込み(The Context Hoarder) 🎯 ポイント 「念のため全部入れておこう」——その安心感が、エージェントの性能を静かに殺しています。情報は多いほど安全ではなく、しばしば害です。 ❗ 発生する課題 コンテキストウィンドウに無関連な情報が溢れ、エージェントの注意が希釈されます。重要な情報が中盤に埋もれ、本来必要なコードや仕様を載せるスペースが不足します。結果として、エージェントの判断精度が低下し、コストとレイテンシが線形以上に悪化します。 🔍 メカニズムと症状 このアンチパターンが魅力的に見えるのは、「情報は多いほど安全」という直感が強いからです。取得設計(何をいつ取りに行かせるか)は手間がかかるため、全部入れる方が楽に感じます。しかし、コンテキストウィンドウはCPUのL1キャッシュに相当する希少資源です。効用は単調増加しません。一定量を超えると無関連トークンが注意メカニズムを希釈し、重要情報の中盤埋没(lost in the middle)が発生します。症状としては、リポジトリ全体や長い会話履歴の丸ごと注入、全ツール定義の毎回ロード、「なぜか前に読んだはずの情報を無視する」といった現象が現れます。 📋 シナリオ ・issue-to-PRエージェントに、issueの内容だけでなくリポジトリ全体のREADME・設定ファイル・過去のPR履歴をすべて注入している。エージェントは肝心のissueの要点を見落とし、無関係なファイルを編集し始める。 ・マイグレーションエージェントに数千ファイルの情報を一度に渡し、コンテキストが溢れてエージェントが途中で一貫性を失う。 ・ペアプログラミングで、開いていないファイルや過去の長い会話履歴がコンテキストを圧迫し、レスポンスが遅くなる。 🛡 回避方法 ・コンテキストの使用量をカテゴリ別に計測し、メモリプロファイラのように配分を可視化します ・取得はpull既定(エージェント自身に必要な情報を取りに行かせる)とし、push(強制注入)は破ると致命的な不変条件だけに絞ります ・会話履歴は古いターンから要約・圧縮し、ツール定義は現在のタスクに必要なものだけを動的にロードします ・「全部入れれば安心」という思考に気づいたら、それがこのアンチパターンのサインだと認識してください #HarnessEngineering# #AIAgent#
もっと見る
ハーネスエンジニアリングのアンチパターン AP1. コンテキストの溜め込み(The Context Hoarder) 🎯 ポイント 「念のため全部入れておこう」——その安心感が、エージェントの性能を静かに殺しています。情報は多いほど安全ではなく、しばしば害です。 ❗ 発生する課題 コンテキストウィンドウに無関連な情報が溢れ、エージェントの注意が希釈されます。重要な情報が中盤に埋もれ、本来必要なコードや仕様を載せるスペースが不足します。結果として、エージェントの判断精度が低下し、コストとレイテンシが線形以上に悪化します。 🔍 メカニズムと症状 このアンチパターンが魅力的に見えるのは、「情報は多いほど安全」という直感が強いからです。取得設計(何をいつ取りに行かせるか)は手間がかかるため、全部入れる方が楽に感じます。しかし、コンテキストウィンドウはCPUのL1キャッシュに相当する希少資源です。効用は単調増加しません。一定量を超えると無関連トークンが注意メカニズムを希釈し、重要情報の中盤埋没(lost in the middle)が発生します。症状としては、リポジトリ全体や長い会話履歴の丸ごと注入、全ツール定義の毎回ロード、「なぜか前に読んだはずの情報を無視する」といった現象が現れます。 📋 シナリオ ・issue-to-PRエージェントに、issueの内容だけでなくリポジトリ全体のREADME・設定ファイル・過去のPR履歴をすべて注入している。エージェントは肝心のissueの要点を見落とし、無関係なファイルを編集し始める。 ・マイグレーションエージェントに数千ファイルの情報を一度に渡し、コンテキストが溢れてエージェントが途中で一貫性を失う。 ・ペアプログラミングで、開いていないファイルや過去の長い会話履歴がコンテキストを圧迫し、レスポンスが遅くなる。 🛡 回避方法 ・コンテキストの使用量をカテゴリ別に計測し、メモリプロファイラのように配分を可視化します ・取得はpull既定(エージェント自身に必要な情報を取りに行かせる)とし、push(強制注入)は破ると致命的な不変条件だけに絞ります ・会話履歴は古いターンから要約・圧縮し、ツール定義は現在のタスクに必要なものだけを動的にロードします ・「全部入れれば安心」という思考に気づいたら、それがこのアンチパターンのサインだと認識してください #HarnessEngineering# #AIAgent#
もっと見る
# ADKの便利で実践的な使い方 ## 🧠 長いセッションでもコストを抑える!ADKのContext Compaction機能 エージェントとの長い対話、コンテキストが膨らんでコストもレイテンシも増加していませんか?ADKの **Context Compaction** を使えば、古いイベントを自動要約して常にスリムなコンテキストを維持できます!🎯 ## 📌 タイトル Context Compaction(コンテキスト圧縮) ## 🔗 URL ## 🧩 概要 Context Compactionは、セッション中に蓄積されるワークフローイベントデータを自動的に要約し、処理オーバーヘッドを削減する機能です。スライディングウィンドウ方式で、最新のイベントはそのまま保持しつつ、古いイベントを圧縮することで、コストとレイテンシを最適化します。 `EventsCompactionConfig` を使って、圧縮間隔(`compaction_interval`)とオーバーラップサイズ(`overlap_size`)を設定するだけで有効になります。 ## 🛠 使い方 Appレベルで `EventsCompactionConfig` を設定します。 ` から `App` と `EventsCompactionConfig` をインポートします。`App` の `events_compaction_config` パラメータに `EventsCompactionConfig(compaction_interval=3, overlap_size=1)` を渡すことで、3イベントごとに圧縮が実行され、前回の圧縮から1イベント分を重複保持する設定になります。 TypeScriptでは `TokenBasedContextCompactor` でトークン閾値ベースの圧縮も可能です。 ```typescript const agent = new LlmAgent({ name: 'my-agent', model: 'gemini-flash-latest', contextCompactors: [ new TokenBasedContextCompactor({ tokenThreshold: 1000, eventRetentionSize: 1, summarizer: new LlmSummarizer({ llm: new Gemini({model: 'gemini-flash-latest'}) }) }) ] }); ``` ## 🏗 実践的な使い方 **カスタマーサポートボットでの活用例:** 長時間の問い合わせ対応では、対話履歴が数十ターンに達することがあります。Context Compactionを導入することで: 1. **コスト削減**:古い対話内容を自動要約し、毎回のLLM呼び出しで送信するトークン数を大幅に削減 2. **レスポンス改善**:コンテキストが小さくなることで、LLMの応答速度が向上 3. **精度維持**:直近のやり取りはそのまま保持するため、文脈を失わずに対話を継続 `compaction_interval=5, overlap_size=2` のような設定で、5ターンごとに圧縮しつつ、直前2ターン分の文脈を次の圧縮に引き継げます。 **カスタムサマライザーの活用:** デフォルトの要約モデルではなく、ドメイン特化の要約プロンプトを使うことで、業務固有の重要情報(注文番号、顧客IDなど)を確実に保持できます。 ## 💡 ユースケース - 📞 **カスタマーサポート**:長時間の問い合わせ対話でコンテキスト爆発を防止 - 📝 **ドキュメント作成支援**:長い執筆セッションで過去の議論を要約しつつ最新の方針を保持 - 🔍 **データ分析エージェント**:多段階の分析プロセスで中間結果を圧縮 - 🎮 **ゲームNPC**:長時間のプレイセッションで過去のイベントを要約して記憶 ## ⚠️ 注意点 - 圧縮は不可逆です。要約された情報の細部は失われる可能性があります - `overlap_size` が小さすぎると文脈の断絶が起きやすくなります - カスタムサマライザーを使う場合、要約モデル自体のコストも考慮が必要です - 圧縮間隔が短すぎると、頻繁な要約処理でオーバーヘッドが増加します ## ✨ まとめ Context Compactionは「長いセッション=高コスト」という常識を覆す機能です。設定一つで古いイベントを自動要約し、最新の文脈を保ちながらコストとレイテンシを最適化できます。長時間対話が発生するエージェントには、ぜひ導入を検討してみてください! #ADK# #AIAgent#
もっと見る
# Antigravityの機能と実践的な使い方 🚀 エージェントを自分のデータベースや社内ツールへ安全につなぐ「AI 用 USB-C」。それが Antigravity の MCP です。 📌 タイトルと機能のURL タイトル: MCP URL: 📝 概要 Antigravity は Model Context Protocol(MCP)をサポートし、エディタからローカルのツール・データベース・外部サービスへ安全に接続できます。MCP は「AI 用の USB-C ポート」とも呼ばれ、AI エージェントや大規模言語モデルがさまざまなデータソースへ接続する方法を標準化します。 🔧 機能の説明 MCP は標準化されたプラグイン機構として機能します。 ・MCP はオープン標準であり、AI エージェントが外部ツールやデータソースへ安全に接続できるようにします ・Antigravity には MCP Store があり、必要なサービスを検索して導入できます ・接続情報(プロジェクト ID など)は簡単なフォームから入力し、パスワードや IAM 認証情報は安全に保管されます ・例えば BigQuery のリモート MCP サーバーは、クエリ実行・メタデータ取得・リソース一覧などを可能にします ・BigQuery の MCP は OAuth 2.0 と IAM による認証・認可を用い、Google Cloud の各種 ID に対応します 🛠 実践的な使い方 ・MCP Store で「BigQuery」など必要なサービスを検索し、Install を押してセットアップを開始します ・表示されたフォームにプロジェクト ID などの接続情報を入力し、認証情報を安全に登録します ・接続後、自然言語でテーブルのスキーマを検査させ、その結果を元にスクリプトを生成させます ・ローカルプロセスとリモートホストの両方の MCP 構成を使い分けます 🎯 ユースケース ・MCP Store から BigQuery を導入し、課金テーブルのスキーマを検査して FinOps スクリプトを生成する ・社内データベースに接続し、自然言語の質問からクエリを組み立てる ・メタデータ取得やリソース一覧を通じて、データ基盤の構造をエージェントに把握させる ・ローカルツールと外部サービスを横断する自動化ワークフローを構築する ⚠️ 注意点 ・MCP はエージェントに外部データへのアクセス権を与えるため、最小権限の IAM 設定が前提です ・認証情報はフォームから安全に保管されますが、接続するサービスの権限範囲は慎重に確認してください ・BigQuery など各サービス固有の認証(OAuth 2.0 / IAM)や課金条件は、導入前に確認が必要です #Antigravity# #MCP#
もっと見る
マルチエージェントで、サブエージェントに毎回ファイル読み込みをやり直させていませんか?その無駄を解消する新機能がLangChainから登場しました。 タイトル: Organizing Context in a Multi-Agent Harness URL: 📝 概要 deepagentsフレームワークに「フォークサブエージェント」という機能が追加されました。サブエージェント起動時に、スーパーバイザーの会話履歴を引き継ぐか、まっさらな文脈から始めるかを選べます。 ❗ 解決する課題 サブエージェントを完全に独立させると、スーパーバイザーが既に済ませた調査や文脈収集をもう一度やり直す必要があり、トークンとレイテンシの無駄が発生していました。 ⚙️ 方法論 「Isolated Mode(隔離)」と「Fork Mode(継承)」の2種類を用意。フォークモードではスーパーバイザーの状態全体を引き継ぎつつ、プロンプトキャッシュでコスト効率を保ちます。 🔧 ユースケース ・ワーカーエージェント:修正作業の続きを任せる時はfork ・レビュアーエージェント:客観的な評価をさせたい時はisolated ・リサーチャーエージェントやメモリエージェントでも役割に応じて使い分け可能 📊 実験結果 具体的な数値ベンチマークはありませんが、重複した文脈収集やツール呼び出しを削減できると述べられています。 サブエージェントの役割設計における新しい重要な選択肢だと感じました。 #マルチエージェント# #LangChain#
もっと見る
# ADKの便利で実践的な使い方 同じシステムプロンプトやツール定義を何度も送信していませんか?Context Cachingで繰り返しのトークンコストを大幅に削減しましょう💰 📌 **タイトル**: Context Caching 🔗 **URL**: ## 🧩 概要 Context Cachingは、LLMに送信するコンテキスト(システムインストラクションやツール定義など)の静的な部分をキャッシュし、繰り返しのトークンコストを削減する機能です。 `ContextCacheConfig` を設定することで、毎回のリクエストで同じプレフィックストークンを再送信する代わりに、キャッシュされたコンテキストを参照するようになります。 特にマルチユーザー環境で同じエージェント(同じプロンプト・ツール定義)を多くのユーザーが利用する場合、コスト最適化の効果が顕著です。 ## 🛠 使い方 `google.adk` から `Agent` を、`google.adk.agents` から `ContextCacheConfig` をインポートします。`ContextCacheConfig(max_entries=100, ttl_seconds=3600)` でキャッシュエントリの上限と有効期間(秒)を設定します。この `cache_config` を `Agent` の `context_cache_config` パラメータに渡すことで、`instruction` に記述した長いシステムプロンプトや `tools` に指定したツール定義(`search_kb`、`create_ticket`、`escalate` など)の静的部分がキャッシュされ、繰り返しのトークンコストが削減されます。 ## 🏗 実践的な使い方 **大規模カスタマーサポートの最適化:** カスタマーサポートエージェントでは、以下の要素が全ユーザーで共通です。 - システムインストラクション(対応ガイドライン、トーン、禁止事項) - ツール定義(ナレッジベース検索、チケット作成、エスカレーション) - Few-shotの例示 これらの静的なコンテキストは毎リクエストで数千トークンになることがあります。1日1万リクエストのサポートボットなら、Context Cachingにより膨大なトークン削減が見込めます。 **RAGパイプラインでの活用:** ツール定義にナレッジベースのスキーマや検索パラメータの説明が含まれる場合、これらをキャッシュすることで各クエリのコストを最適化できます。 **マルチテナントSaaS:** 同一のエージェント定義を複数テナントで共有する場合、テナント固有の情報のみが動的部分となり、共通のプロンプトとツール定義はキャッシュで共有されます。 ## 💡 ユースケース - 💰 コスト削減: 長いシステムプロンプトの繰り返し送信コストを削減 - 🚀 レイテンシ改善: キャッシュヒット時のプリフィル処理が高速化 - 👥 マルチユーザー最適化: 同じプロンプトを使う複数ユーザーでキャッシュを共有 - 🏢 マルチテナント: テナント共通部分のコンテキストを効率的にキャッシュ - 📚 大規模ツール定義: 多数のツールを持つエージェントのツール定義コストを最適化 ## ⚠️ 注意点 - Context Cachingはモデルプロバイダーのサポートに依存します。利用可能なモデルを事前に確認してください - キャッシュのTTL(有効期限)が短すぎるとヒット率が下がり、長すぎるとメモリを消費します。アクセスパターンに応じて調整してください - システムプロンプトやツール定義を頻繁に変更する場合、キャッシュの恩恵は限定的です - キャッシュのコスト自体も発生する場合があります。プロバイダーの料金体系を確認し、トータルコストで判断してください - 動的なコンテキスト(ユーザー固有の情報など)はキャッシュ対象外です。静的部分と動的部分を明確に分離して設計しましょう ✨ Context Cachingは「同じことを何度も言わない」をインフラレベルで実現します。マルチユーザー環境でのコスト最適化に大きな効果を発揮します! #ADK# #AIAgent#
もっと見る
# Codexの機能と実践的な使い方 🔌 Codex を「コードしか触れないエージェント」から「課題管理・DB・デザインツールまで直接操作できる相棒」へ。その鍵が MCP(Model Context Protocol)接続です。 🏷️ タイトル: 外部ツール接続(MCP) 🔗 URL: 📘 概要 MCP は Codex を外部のツールやコンテキストにつなぐ標準プロトコルです。MCP サーバーを登録すると、Codex がそのツールを直接呼び出して読み書きできます。設定は CLI と IDE 拡張で共有され、クライアントを切り替えても同じ構成で動きます。 ⚙️ 機能の説明 ・最も手軽な追加方法は CLI です。`codex mcp add <名前> -- <起動コマンド>` の形で登録し、TUI 内では `/mcp` で稼働中のサーバーを確認できます。 ・トランスポートは2種類あります。ローカルプロセスを起動する STDIO サーバー(`command` / `args` / `env` / `cwd` を指定)と、URL でアクセスする Streamable HTTP サーバー(`url` / `bearer_token_env_var` / `http_headers` を指定)です。 ・認証は環境変数経由の Bearer トークン、または OAuth に対応します。OAuth 対応サーバーは `codex mcp login <名前>` でログインします。 ・ツール単位の制御も可能で、`enabled_tools` / `disabled_tools` で許可・拒否リストを、`default_tools_approval_mode`(`auto`/`prompt`/`approve`)で承認方式を指定できます。 ・`startup_timeout_sec`(既定10秒)や `tool_timeout_sec`(既定60秒)、`required`(起動失敗時に Codex 自体を失敗させる)などの調整項目もあります。 🛠️ 実践的な使い方 ・例えば最新の開発ドキュメントを引ける Context7 を入れるなら `codex mcp add context7 -- npx -y @/upstash/context7-mcp` の1行です。 ・細かく制御したいときは `~/.codex/config.toml`(信頼済みプロジェクトなら `.codex/config.toml`)の `[mcp_servers.<名前>]` セクションに `url` と `bearer_token_env_var`、必要なら `http_headers` を書きます。 💡 ユースケース 課題管理ツールから仕様を読み取り、DB のスキーマを参照しながら実装し、Figma のデザインを取り込んで UI を作る、といった一連の流れを Codex 1つに任せられます。社内 API を MCP サーバー化すれば、独自業務ロジックも Codex から直接叩けます。 ⚠️ 注意点 ・外部ツールに読み書き権限を渡すことになるため、`disabled_tools` や承認モードで権限を絞るのが安全です。 ・トークンは設定ファイルに直書きせず、`bearer_token_env_var` で環境変数から読む形にしましょう。 ・プラグイン提供の MCP サーバーは起動コマンドをユーザーが指定するのではなく、`plugins..mcp_servers.` 配下で有効状態とツールポリシーを制御します。 #OpenAICodex# #MCP#
もっと見る
# ADK 2.0の便利だけど知られていない機能 🌍 毎回同じシステムプロンプトやツール定義をLLMに送信するのは、コストもレイテンシも無駄だと感じませんか? ADK 2.0のコンテキストキャッシュ(ContextCacheConfig)は、繰り返し送信されるコンテキストデータをキャッシュし、LLMの呼び出しコストとレイテンシを削減する機能です。Gemini 2.0以降、Python v1.15.0以降、Java v0.1.0以降で利用可能です。 📌 タイトル:コンテキストキャッシュ (ContextCacheConfig) 🔗 URL: 🧩 概要 ContextCacheConfigは、LLMに送信するコンテキスト(システムプロンプト、ツール定義、会話履歴の固定部分など)をキャッシュすることで、トークン消費を削減します。3つの主要パラメータがあります。min_tokensはキャッシュを有効にするための最小トークン数のしきい値(デフォルト0)、ttl_secondsはキャッシュの有効期限(デフォルト1800秒=30分)、cache_intervalsはキャッシュの最大再利用回数(デフォルト10回)です。これらをAppオブジェクトに設定することで、自動的にキャッシュが適用されます。 🛠 使い方 ContextCacheConfigを作成し、Appに設定します。 ```python from import App from google.adk.context import ContextCacheConfig cache_config = ContextCacheConfig( min_tokens=1000, # 1000トークン以上でキャッシュ有効 ttl_seconds=3600, # 1時間キャッシュを保持 cache_intervals=20, # 最大20回再利用 ) app = App( agent=my_agent, context_cache_config=cache_config, ) ``` min_tokensを適切に設定することで、小さなコンテキストでは通常送信し、大きなコンテキストのみキャッシュするように制御できます。 🏗 本番システムへの組み込み方 ・大きなシステムプロンプトや多数のツール定義を持つエージェントで特にコスト効果が高い ・ttl_secondsをワークロードのパターンに合わせて調整する(短い会話→短いTTL、長い会話→長いTTL) ・cache_intervalsをリクエスト頻度に応じて設定し、キャッシュの鮮度とコスト削減のバランスを取る ・コスト削減効果をモニタリングし、パラメータを継続的に最適化する 💡 ユースケース 💰 大規模なシステムプロンプトを持つエージェントのAPI呼び出しコストを削減 ⚡ 繰り返しのツール定義送信を省略してレスポンスレイテンシを改善 🔁 高頻度のリクエストが発生するチャットボットでトークン消費を最適化 📋 固定的なコンテキスト(ルール、ガイドライン等)の再送信を効率化 ⚠️ 注意点 Gemini 2.0以降のモデルでのみ利用可能です。キャッシュが有効な間はコンテキストの変更が反映されないため、頻繁にシステムプロンプトを変更する場合はttl_secondsを短く設定してください。また、cache_intervalsを超えると新しいキャッシュが作成されるため、コスト最適化の効果が変動する可能性があります。 ✨ コンテキストキャッシュは、特にコンテキストが大きく頻繁にリクエストされるシナリオで、コストとパフォーマンスの両面で大きな改善をもたらします。 #ADK# #AIAgent#
もっと見る
# Claude Agent SDKの便利で実践的な使い方 🔌 MCP で Playwright・DB・GitHub 等の外部ツールをエージェントに接続して、能力を無限に拡張できます。 MCP(外部ツール接続)は、Model Context Protocol を介して外部の MCP サーバー(ブラウザ・DB・API 等)をエージェントに接続する機能です。 📌 タイトル:MCP を使用して外部ツールに接続する 🔗 URL: 🧩 概要 `mcp_servers` に stdio / HTTP / SSE トランスポートで外部 MCP サーバーを指定します。`allowedTools` でアクセス可能なツールを制御し、`env` や `headers` で認証情報を注入します。 🛠 使い方 `mcp_servers` に stdio / HTTP / SSE トランスポートでサーバーを指定します。例えば Playwright は `{"command": "npx", "args": ["@playwright/mcp@latest"]}`、Postgres は `"env": {"DATABASE_URL": "..."}` で接続情報を注入します。`allowed_tools=["mcp__postgres__query"]` で利用可能なツールを制御します。 🏗 実践的な使い方 ・Playwright MCP サーバーを接続し「 を開いて内容を説明して」で E2E テストや Web スクレイピングエージェントを構築します。 ・Postgres MCP サーバーに接続し「先週のサインアップ数を日別で」と尋ねると、Claude がスキーマ検出→ SQL 生成→実行します。`allowedTools: ["mcp__postgres__query"]` で読み取りのみ許可。 ・GitHub MCP サーバーで Issue トリアージや自動対応ボットを構築します。 ・`system/init` メッセージの `mcp_servers[].status` で接続状態を起動前に検証します。 💡 ユースケース 🌐 Playwright によるブラウザ自動化 🗄 自然言語での DB クエリ実行 📋 GitHub Issue の自動トリアージ ⚠️ 注意点 `permissionMode: "acceptEdits"` は MCP ツールを自動承認しません。`allowedTools` のワイルドカード(`mcp__github__*`)で必要なサーバーのみ許可するのが安全です。接続タイムアウトはデフォルト 60 秒です。 #ClaudeAgentSDK# #AI#
もっと見る