Trustworthy Adk banner
sondera-ai sondera-ai

Trustworthy Adk

Security community

Description

Security-focused plugins and examples for Google's Agent Development Kit (ADK) demonstrating trustworthy AI agents with patterns.

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

Trustworthy Agent Development Kit (ADK) Extensions

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/)

A comprehensive toolkit for building secure, trustworthy AI agents using Google's Agent Development Kit (ADK). This package provides security-focused plugins, defensive mechanisms, and analysis tools to help developers create robust autonomous systems that resist prompt injection attacks and other security threats.

🎯 Overview

This material supports the talk first presented at [2025 BSides Philadelphia](https://bsidesphilly.org/): **"Your AI Agent Just Got Pwned: A Security Engineer's Guide to Building Trustworthy Autonomous Systems"**. The slides are available [here](docs/2025-12%20-%20Your%20AI%20Agent%20Just%20Got%20Pwned.pdf).

The toolkit implements proven security patterns and defensive mechanisms to protect AI agents from:

  • Prompt injection attacks
  • Unauthorized tool execution
  • Data exfiltration attempts
  • Social engineering attacks
  • Indirect prompt injection (IPI)

🚀 Quick Start

Installation

# Clone the repository
git clone https://github.com/yourusername/trustworthy-adk.git
cd trustworthy-adk

# Install uv if you haven't already
pip install uv

# Install the package in editable mode
uv pip install -e .

Basic Usage

from trustworthy import ActionSelectorAgent, HITLToolPlugin

# Create a secure action selector agent
def check_order_status(order_id: str) -> str:
    """Check the status of a customer order"""
    return f"Order {order_id} is being processed"

def delete_user(user_id: str) -> str:
    """Delete a user account - SENSITIVE OPERATION"""
    return f"User {user_id} deleted"

# Create agent with Action-Selector Pattern (no plugins needed)
agent = ActionSelectorAgent(
    model="gemini-2.5-flash",
    name="secure_agent",
    description="Secu