コンテンツにスキップ

ADK 用 Cisco AI Defense プラグイン

ADKでサポートPython

Cisco AI Defense ランタイム ガードレールを提供するエンタープライズ AI セキュリティ プラットフォームです。 プロンプトインジェクション、データ漏洩、有害な脅威などの脅威から保護します。 内容。 ADK plugin は、 これらのガードレールは ADK Runner ライフサイクルに直接組み込まれます。プロンプトを検査し、 モデル応答とツール呼び出しを実行し、構成可能な条件に基づいてそれらを許可またはブロックします。 セキュリティポリシー。

使用例

  • モデル呼び出しのランタイム保護: モデルの前にユーザー プロンプトを検査します 生成後に呼び出しとモデル出力を実行し、ポリシーに基づいて許可またはブロックします (monitor または enforce)。
  • ツールおよび MCP 呼び出しの検査: 実行前にツール呼び出しリクエストを検査します。 および実行後のツールの応答を監視し、安全でないツールの動作をブロックします。 明確なメタデータを備えた enforce モード。
  • 監査可能な意思決定トレースとアラート: 意思決定コンテキスト (アクション、 重大度、分類、request_id/event_id)、オプションでトリガー モニタリングとインシデント対応のための on_violation コールバック。

前提条件

インストール

pip install cisco-aidefense-google-adk

AI_DEFENSE_API_KEY 環境変数 (および AI_DEFENSE_MCP_API_KEY) を設定します。 工具検査用)。

エージェントと一緒に使用する

クイックスタート

次の 1 行で Cisco AI Defense を任意の ADK エージェントに追加します。

from aidefense_google_adk import defend

agent = defend(agent, mode="enforce")

または、アプリ全体のプラグインを取得します。

from aidefense_google_adk import defend

plugin = defend(mode="enforce")
app = App(name="my_app", root_agent=agent, plugins=[plugin])

グローバルプラグイン

CiscoAIDefensePlugin を使用して、インスペクションをすべてのエージェントにグローバルに適用します。 ランナー:

from google.adk.agents import LlmAgent
from google.adk.apps import App
from google.adk.runners import Runner
from google.adk.sessions import InMemorySessionService

from aidefense_google_adk import CiscoAIDefensePlugin

agent = LlmAgent(
    model="gemini-flash-latest",
    name="assistant",
    instruction="You are a helpful assistant.",
)

app = App(
    name="my_app",
    root_agent=agent,
    plugins=[
        CiscoAIDefensePlugin(mode="enforce"),
    ],
)
runner = Runner(app=app, session_service=InMemorySessionService())

エージェントごとのコールバック

make_aidefense_callbacks を使用して、検査を特定のエージェントに接続します。

from google.adk.agents import LlmAgent
from aidefense_google_adk import make_aidefense_callbacks

cbs = make_aidefense_callbacks(mode="enforce")

agent = LlmAgent(
    model="gemini-flash-latest",
    name="assistant",
    instruction="You are a helpful assistant.",
)
cbs.apply_to(agent)  # wires all 4 callbacks

モード

プラグインは 3 つの動作モードをサポートしています。

モード 行動
monitor すべてのトラフィックを検査し、違反をログに記録し、ブロックしない (デフォルト)
enforce すべてのトラフィックを検査し、ポリシーに違反するリクエスト/レスポンスをブロックします。
off 検査を完全にスキップする

モードはグローバルまたはチャネルごとに設定できます。

CiscoAIDefensePlugin(
    mode="monitor",      # default for both
    llm_mode="enforce",  # override for LLM only
    mcp_mode="off",      # override for tools only
)

違反コールバック

on_violation コールバックを使用して、すべての違反の通知を受け取ります。 monitor モードと enforce モードの両方:

def handle_violation(result):
    print(f"Violation: {result.action} / {result.severity}")

CiscoAIDefensePlugin(
    mode="monitor",
    on_violation=handle_violation,
)

再試行とフェールオープンのサポート

指数関数的バックオフ、フェールオープン/フェールクローズのセマンティクスを使用した自動再試行の場合、 および構造化された Decision オブジェクトの場合は、AgentsecPlugin バリアントを使用します。

from aidefense_google_adk import AgentsecPlugin

app = App(
    name="my_app",
    root_agent=agent,
    plugins=[
        AgentsecPlugin(
            mode="enforce",
            fail_open=True,
            retry_total=3,
            retry_backoff=0.5,
        ),
    ],
)

またはエージェントごとのレベルで:

from aidefense_google_adk import make_agentsec_callbacks

cbs = make_agentsec_callbacks(mode="enforce", fail_open=True)
cbs.apply_to(agent)

追加のリソース