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

検索結果 BigQuery
BigQuery コミュニティ
1つのキーワードが1つのコミュニティです。
コミュニティ作成
アカウント
見つかりません
BigQuery を含む検索結果
BigQuery が進化! 自然言語によるコード生成、複雑なクエリの要約、データ探索や準備を劇的に簡素化する BigQuery 最新機能を解説。 エージェンティック時代のデータ活用最前線をぜひチェックしましょう🙌 Data & AI Summit '26 Spring 🟦 5 月 29 日(金) 13 時〜
もっと見る
【RDS(PostgreSQL)のデータをDatastreamでBigQueryへリアルタイム連携し、分析を効率化】 #Datastream# #findy_tools# 🔗
SAP Business Data Cloud Connect for BigQuery ゼロコピーでアクセス可能に → サイロを削減し、貴重なビジネス コンテキストを保持したまま、分析や AI を高速化。豊富な最新データを両方の環境で利用することで、AI エージェントがより複雑なビジネス タスクを実行します。
もっと見る
「QA ZEROって、GA4 + Clarity + サーバーサイド + BigQueryの4つが全部入りですよね?しかもCookieレス対応。すごく楽なソフトだと思いますよ」運営堂の森野さんが言ってくれた一言が、記事を書くきっかけになりました。 面倒くさいは悪だ!AI時代のQA ZEROのオールインワン設計思想
もっと見る
【Google Analyticsでは難しかったデータ活用を、BigQueryで自社データ基盤に移行】 #BigQuery# #findy_tools# 🔗
🎥今年の Google Cloud Next や Google I/O における、DA / AI の最新アップデートをお届け! データのつながりを解き明かす BigQuery Graph、正確な指標を標準化する BigQuery Measures など、注目のデータ基盤の進化を学びましょう✏️
もっと見る
# ADKの便利で実践的な使い方 ## 🔌 全エージェントに一括適用!ADKのPlugins機能 個別のエージェントにコールバックを設定するのは面倒…ADKの **Plugins** なら、Runnerレベルで全エージェント・全ツール・全LLM呼び出しに横断的な制御を一括適用できます!🎯 ## 📌 タイトル Plugins(プラグイン) ## 🔗 URL ## 🧩 概要 Pluginsは、Runnerレベルで動作するクロスエージェントモジュールです。エージェント個別のCallbacksとは異なり、**一度登録するだけで全エージェント・全ツール・全LLM呼び出しに適用**されます。セキュリティガードレール、ロギング、レート制限などの横断的関心事に最適です。 プラグインはエージェントレベルのコールバックよりも**先に実行される**ため、グローバルポリシーの適用に適しています。 ADKには組み込みプラグインも用意されています:Reflect and Retry Tools、BigQuery Analytics、Context Filter、Global Instruction、Logging Pluginなど。 ## 🛠 使い方 `BasePlugin` を `google.adk.plugins.base_plugin` からインポートし、`InMemoryRunner` を `google.adk.runners` からインポートします。`SecurityGuardPlugin` クラスを `BasePlugin` のサブクラスとして定義し、`__init__` で `super().__init__(name="security_guard")` を呼びます。`before_model_callback` メソッドでは `llm_request.contents[-1].parts[0].text` からユーザー入力を取得し、`detect_injection()` でインジェクションを検出した場合に拒否メッセージ入りの `LlmResponse` を返します。`before_tool_callback` メソッドでは `is_authorized( で権限チェックを行い、未認可ならエラー辞書を返します。いずれも問題なければ `None` を返して通常続行します。最後に `InMemoryRunner` を作成し、`plugins=[SecurityGuardPlugin()]` を渡すだけで全エージェントにこのセキュリティガードが適用されます。 ## 🏗 実践的な使い方 **「Gemini as a Judge」パターンでのインジェクション検出:** `InjectionDetectorPlugin` は `BasePlugin` を継承し、`name="injection_detector"` で初期化します。`self.judge_model = "gemini-flash-lite"` をジャッジモデルとして保持し、`before_model_callback` で `llm_request.contents[-1].parts[0].text` からユーザー入力を取得して `judge_with_flash_lite()` に渡します。判定結果が `"INJECTION"` であれば `audit_log()` で記録し、拒否メッセージ入りの `LlmResponse` を返してブロックします。問題なければ `None` を返します。 `RateLimitPlugin` は `BasePlugin` を継承し、`max_calls_per_minute` パラメータ(デフォルト60)で初期化します。` リストで呼び出し履歴を管理し、`before_model_callback` で直近60秒間の呼び出し回数をカウントします。上限に達していればレート制限メッセージ入りの `LlmResponse` を返し、そうでなければ現在時刻を `call_log` に追加して `None` を返します。 最後に `InMemoryRunner` の `plugins` パラメータに `InjectionDetectorPlugin()` と `RateLimitPlugin(max_calls_per_minute=30)` を渡して、複数プラグインを組み合わせて登録します。 ## 💡 ユースケース - 🛡️ **セキュリティガードレール**:全エージェントに対するインジェクション検出・PII保護を一元管理 - 📊 **統合ロギング**:BigQuery Analyticsプラグインで全エージェントの実行ログを集約 - ⏱️ **レート制限**:API呼び出し回数を制御してコスト爆発を防止 - 🔄 **自動リトライ**:Reflect and Retry Toolsプラグインでツール失敗時のインテリジェントなリトライ - 📝 **グローバルインストラクション**:全エージェントに共通のポリシーや指示を注入 ## ⚠️ 注意点 - プラグインはエージェントレベルのコールバックより**先に**実行されます(優先順位に注意) - プラグインで値を返すと、対応するエージェントレベルのコールバックも含めてスキップされます - 全エージェントに適用されるため、特定エージェントだけに適用したいロジックはCallbacksを使ってください - `on_model_error_callback` / `on_tool_error_callback` フックでエラーハンドリングも可能です - Python v1.7.0+、TypeScript v0.2.5+、Go v0.4.0+、Java v0.3.0+ で利用可能です ## ✨ まとめ Pluginsは「一度書けば全エージェントに適用」を実現する強力な仕組みです。セキュリティ、ロギング、レート制限などの横断的関心事はPluginsに任せ、エージェント固有のロジックはCallbacksに集中させましょう。この分離により、保守性とセキュリティの両方が向上します! #ADK# #AIAgent#
もっと見る
# ADKの便利で実践的な使い方 ## 🏢 アプリケーション単位で状態を分離!ADKのApps機能 複数のエージェントワークフローを管理するとき、状態やアーティファクトが混ざってしまう…ADKの **Apps** を使えば、`app_name` によるネームスペースでState/Artifact/Memoryを完全に分離できます!🏗️ ## 📌 タイトル Apps(アプリケーション) ## 🔗 URL ## 🧩 概要 App クラスは、ADKエージェントワークフローのトップレベルコンテナです。ルートエージェントを中心に、ライフサイクル管理、共有リソースの一元設定、状態スコープの定義を担います。 主な役割: - **一元設定**:APIキーやDBクライアントなどの共有リソースを一箇所で管理 - **ライフサイクル管理**:スタートアップ/シャットダウンフック - **状態スコープ**:`app:*` プレフィックスで明示的なデータ境界 - **デプロイ単位**:バージョニングとテストの正式な単位 さらに、Context Caching、Context Compaction、Resumability、Pluginsの設定もAppレベルで行えます。 ## 🛠 使い方 `google.adk.agents.llm_agent` から `Agent`、`google.adk.apps` から `App`、`google.adk.runners` から `InMemoryRunner` をインポートします。`Agent` を `model='gemini-flash-latest'`、`name='assistant'`、`description='汎用アシスタント'` で作成します。次に `App` を `name="my_app"` で作成し、`root_agent` を渡します。オプションで `plugins`、`context_cache_config`、`events_compaction_config`、`resumability_config` も指定可能です。最後に `InMemoryRunner(app=app)` でランナーを作成し、`await "こんにちは!")` で実行します。 ## 🏗 実践的な使い方 **マルチテナントSaaSでのデータ分離:** `app_name` をテナントごとに変えることで、State/Artifact/Memoryの完全な分離を実現できます。 `create_tenant_app(tenant_id: str, root_agent: Agent) -> App` 関数を定義し、テナントごとに独立した `App` を作成します。`name=f"saas_{tenant_id}"` でテナント固有のネームスペースを設定し、`plugins` に全テナント共通の `SecurityGuardPlugin()` とテナント別の `TenantLoggingPlugin(tenant_id)` を渡します。テナントAでは `create_tenant_app("tenant_a", support_agent)` で App を作成し `InMemoryRunner` で実行すると、State は `"app:saas_tenant_a:*"` に保存されテナントBからは見えません。テナントBも同様に `"app:saas_tenant_b:*"` に保存され、テナントAからは見えません。 **環境別の設定分離:** 開発環境では `App` を `name="myservice_dev"` で作成し、`plugins` に `DebugLoggingPlugin()` を、`events_compaction_config` に `EventsCompactionConfig(compaction_interval=10, overlap_size=3)` を設定します。本番環境では `name="myservice_prod"` で作成し、`plugins` に `SecurityGuardPlugin()`、`BigQueryAnalyticsPlugin()`、`RateLimitPlugin()` を設定し、`events_compaction_config` は `EventsCompactionConfig(compaction_interval=5, overlap_size=2)` とより頻繁なコンパクションを行います。 ## 💡 ユースケース - 🏢 **マルチテナントSaaS**:テナントごとにAppを分離し、データの混在を完全防止 - 🔧 **環境分離**:dev/staging/prodで異なるプラグインと設定を適用 - 📦 **マイクロサービス**:サービスごとに独立したAppとしてデプロイ・バージョニング - 🧪 **A/Bテスト**:同じエージェントを異なるApp設定で実行し、効果を比較 - 🔄 **ライフサイクル管理**:DB接続プールやキャッシュの初期化/クリーンアップを一元管理 ## ⚠️ 注意点 - `app_name` はState/Artifact/Memoryのネームスペースに使われるため、一意で変更しないようにしてください - App名を変更すると、過去のStateやArtifactにアクセスできなくなります - 複数のAppが同じルートエージェントを共有する場合、エージェントのステートレス性を確保してください - PluginsはAppレベルで設定するため、テナント共通とテナント固有のプラグインを適切に分離しましょう ## ✨ まとめ Appクラスは、ADKエージェントのデプロイと運用における「境界」を明確にする仕組みです。マルチテナント分離、環境別設定、ライフサイクル管理…Appを適切に設計することで、スケーラブルで安全なエージェントアプリケーションを構築できます! #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#
もっと見る
# ADK 2.0の便利だけど知られていない機能 🌍 エージェントの実行フロー全体にフックを仕掛けて、監視・介入・拡張できたら便利だと思いませんか? ADK 2.0のプラグイン機能は、`BasePlugin` を拡張してRunnerに登録することで、エージェントのライフサイクル全体にわたるコールバックをグローバルに適用できる仕組みです。個別エージェントのコールバックとは異なり、全エージェントに横断的に作用します。 📌 タイトル:プラグイン (Plugins) 🔗 URL: 🧩 概要 プラグインは `BasePlugin` を継承して作成し、Runnerに登録します。エージェント個別のコールバックとは異なり、グローバルスコープで全エージェントに適用されます。ライフサイクルフックは多岐にわたり、ユーザーメッセージの受信、Runner開始、エージェント実行、モデル呼び出し、ツール実行、イベント処理、Runner終了の各タイミングに介入できます。動作モードは3種類あり、Observe(監視のみ)、Intervene(処理を変更・中断)、Amend(結果を後から修正)です。プラグインのコールバックはエージェントのコールバックよりも先に実行されます。 🛠 使い方 `BasePlugin` を継承し、必要なライフサイクルフックをオーバーライドします。 ```python from adk.plugins import BasePlugin class LoggingPlugin(BasePlugin): def __init__(self): super().__init__(name="logging_plugin") async def on_before_model_call(self, callback_context, llm_request): print(f"Model call: {llm_request.model}") return None # Noneを返すと通常の処理が続行 async def on_after_tool_call(self, tool_context, tool_response): print(f"Tool executed: {tool_context.tool_name}") return None # Runnerに登録 runner = Runner( agent=my_agent, plugins=[LoggingPlugin()] ) ``` Interveneモードではコールバックから値を返すことで処理を置き換え、Amendモードではイベント処理後に結果を修正できます。 🏗 本番システムへの組み込み方 ・ログ収集やメトリクス記録をObserveモードのプラグインとして実装し、エージェントコードを汚さない ・ガードレールやコンテンツフィルタリングをInterveneモードで実装し、不適切な入出力をブロックする ・分析用データの収集をAmendモードで後処理として組み込む ・プリビルトプラグイン(Reflect/Retry、BigQuery Analytics、Context Filtering、Global Instructions等)を活用して開発を効率化する 💡 ユースケース 📊 全エージェントのモデル呼び出しとツール実行をBigQueryに記録する 🛡 入力内容のガードレールをプラグインで一元管理し、有害なリクエストをブロックする 🔄 モデル呼び出し失敗時のリトライロジックをReflect/Retryプラグインで実装する 📋 グローバルな指示(コンプライアンスルール等)をGlobal Instructionsプラグインで全エージェントに適用する ⚠️ 注意点 プラグインのコールバックはエージェントのコールバックよりも先に実行されるため、プラグインで処理をブロックするとエージェントのコールバックは呼ばれません。Interveneモードで不適切な値を返すとエージェントの動作が壊れる可能性があるため、返り値の型と意味を正確に理解してから使用してください。また、プラグインの実行順序はRunnerへの登録順に依存します。 ✨ プラグインを活用することで、横断的な関心事(ログ、セキュリティ、分析)をエージェントのコアロジックから分離でき、保守性の高いシステムを構築できます。 #ADK# #AIAgent#
もっと見る