ADK 用 Cisco AI Defense プラグイン¶
ADKでサポートPython
Cisco AI Defense ランタイム ガードレールを提供するエンタープライズ AI セキュリティ プラットフォームです。 プロンプトインジェクション、データ漏洩、有害な脅威などの脅威から保護します。 内容。 ADK plugin は、 これらのガードレールは ADK Runner ライフサイクルに直接組み込まれます。プロンプトを検査し、 モデル応答とツール呼び出しを実行し、構成可能な条件に基づいてそれらを許可またはブロックします。 セキュリティポリシー。
使用例¶
- モデル呼び出しのランタイム保護: モデルの前にユーザー プロンプトを検査します
生成後に呼び出しとモデル出力を実行し、ポリシーに基づいて許可またはブロックします
(
monitorまたはenforce)。 - ツールおよび MCP 呼び出しの検査: 実行前にツール呼び出しリクエストを検査します。
および実行後のツールの応答を監視し、安全でないツールの動作をブロックします。
明確なメタデータを備えた
enforceモード。 - 監査可能な意思決定トレースとアラート: 意思決定コンテキスト (アクション、
重大度、分類、request_id/event_id)、オプションでトリガー
モニタリングとインシデント対応のための
on_violationコールバック。
前提条件¶
- Cisco AI Defense アカウントと API キー
- Python >= 3.10
- ADK >= 1.0.0
インストール¶
AI_DEFENSE_API_KEY 環境変数 (および AI_DEFENSE_MCP_API_KEY) を設定します。
工具検査用)。
エージェントと一緒に使用する¶
クイックスタート¶
次の 1 行で Cisco AI Defense を任意の ADK エージェントに追加します。
または、アプリ全体のプラグインを取得します。
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)