Skip to main content

TrustGuard security integration for CrewAI agents

Project description

CrewAI TrustGuard Integration

Protect your CrewAI agents from prompt injection, malicious web content, and other AI security threats.

Installation

pip install crewai-trustguard

Quick Start

1. Add Security Tools to Your Agents

from crewai import Agent, Task, Crew
from crewai_trustguard import TrustGuardURLTool, TrustGuardDocumentTool

# Create protected tools
url_scanner = TrustGuardURLTool(api_key="ta_xxx...")
doc_scanner = TrustGuardDocumentTool(api_key="ta_xxx...")

# Add to your agents
researcher = Agent(
    role="Research Analyst",
    goal="Research topics safely from the web",
    backstory="An expert researcher who always verifies content safety.",
    tools=[url_scanner, doc_scanner],
    verbose=True
)

# Your agent will now scan web content for threats before processing

2. Use Convenience Factory Functions

from crewai_trustguard import create_protected_scraper

# One-liner to create a secure web scraper
scraper = create_protected_scraper(api_key="ta_xxx...")

researcher = Agent(
    role="Researcher",
    tools=[scraper],
    ...
)

3. Use Middleware for Custom Workflows

from crewai_trustguard import TrustGuardMiddleware, ThreatDetectedError

middleware = TrustGuardMiddleware(api_key="ta_xxx...")

# Scan any content
result = middleware.scan(web_content, source_type="web")
if result.is_safe:
    process(web_content)
else:
    print(f"Threat detected: {result.threats}")

# Or scan and raise on threat
try:
    safe_content = middleware.scan_or_raise(document_text, source_type="document")
    process(safe_content)
except ThreatDetectedError as e:
    print(f"Blocked: {e.reasoning}")

Available Tools

Tool Description
TrustGuardURLTool Fetch URL and scan for threats in one step
TrustGuardWebTool Scan web page content (HTML/text)
TrustGuardDocumentTool Scan documents (PDFs, text files, etc.)
TrustGuardMemoryTool Scan content before storing in memory
TrustGuardRAGTool Scan content before RAG indexing

Configuration Options

Tool Options

url_tool = TrustGuardURLTool(
    api_key="ta_xxx...",          # Your TrustGuard API key
    timeout=30.0,                  # Request timeout in seconds
    on_threat="report",            # "report", "raise", or "sanitize"
)

Middleware Options

middleware = TrustGuardMiddleware(
    api_key="ta_xxx...",
    strict_mode=False,             # True = block on MEDIUM threats
    on_threat="log",               # "log", "raise", or "silent"
    on_scan_error="warn",          # "warn", "raise", or "allow"
)

Example: Protected Research Crew

from crewai import Agent, Task, Crew
from crewai_trustguard import (
    TrustGuardURLTool,
    TrustGuardDocumentTool,
    TrustGuardRAGTool,
)

# Set up protected tools
url_tool = TrustGuardURLTool(api_key="ta_xxx...")
doc_tool = TrustGuardDocumentTool(api_key="ta_xxx...")
rag_tool = TrustGuardRAGTool(api_key="ta_xxx...")

# Create agents with security tools
researcher = Agent(
    role="Security-Aware Researcher",
    goal="Research topics while protecting against malicious content",
    backstory="A thorough researcher who always scans content for threats.",
    tools=[url_tool],
    verbose=True
)

analyst = Agent(
    role="Document Analyst",
    goal="Analyze documents safely",
    backstory="An analyst who verifies document safety before processing.",
    tools=[doc_tool, rag_tool],
    verbose=True
)

# Create tasks
research_task = Task(
    description="Research the latest AI security threats from trusted sources.",
    expected_output="A summary of current AI security threats.",
    agent=researcher
)

analysis_task = Task(
    description="Analyze the research findings and identify key patterns.",
    expected_output="Key patterns and recommendations.",
    agent=analyst
)

# Run the crew
crew = Crew(
    agents=[researcher, analyst],
    tasks=[research_task, analysis_task],
    verbose=True
)

result = crew.kickoff()

Wrapping Custom Functions

You can also wrap existing functions to add automatic scanning:

from crewai_trustguard import TrustGuardMiddleware
import requests

middleware = TrustGuardMiddleware(api_key="ta_xxx...")

# Original function
def fetch_webpage(url):
    return requests.get(url).text

# Wrap it for automatic scanning
protected_fetch = middleware.wrap_function(
    fetch_webpage,
    source_type="web",
    scan_output=True
)

# Now all fetches are automatically scanned
content = protected_fetch("https://example.com")  # Auto-scanned!

Threat Types Detected

TrustGuard detects multiple threat categories:

  • Prompt Injection: Hidden instructions attempting to manipulate agents
  • Jailbreak Attempts: Attempts to bypass agent restrictions
  • Data Exfiltration: Patterns designed to leak sensitive data
  • Memory Poisoning: Malicious content targeting agent memory
  • RAG Poisoning: Document content designed to corrupt vector stores
  • Tool Description Poisoning: Malicious tool descriptions
  • Identity Manipulation: Attempts to override agent identity

API Reference

See TrustAgents Documentation for full API reference.

Support

License

MIT License - see LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

crewai_trustguard-0.1.0.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

crewai_trustguard-0.1.0-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file crewai_trustguard-0.1.0.tar.gz.

File metadata

  • Download URL: crewai_trustguard-0.1.0.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for crewai_trustguard-0.1.0.tar.gz
Algorithm Hash digest
SHA256 395a7dc08cc3320d305d5c39bedd3606bf09c7b8ef7c06b333643f48bd4a5d0f
MD5 814ae6ffc5df2e6a3538a94bf3d76c13
BLAKE2b-256 75212491fa9293067b5d708ac9a54cfaabbb77678c9971575d1e95d0680592d5

See more details on using hashes here.

File details

Details for the file crewai_trustguard-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for crewai_trustguard-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 813f6de4dd6771dc0744ea6fb68e35c37bb088b01104982be64faaed88d34b64
MD5 b4a37a218b58d4b9f4bad791a8c85c78
BLAKE2b-256 b8eeaa4886c20de0f023f7ca38f0949ce474f4d3b0012507c7353a13d09ed219

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page