Introduction
In the rapidly evolving landscape of AI, companies are deploying AI agents at unprecedented speeds, often without proper oversight or security measures. NeuralTrust's $20M funding reflects the growing need for AI agent security. This tutorial will guide you through creating a basic AI agent monitoring system that can track and analyze AI agent behavior using Python and common AI libraries. You'll learn how to implement a simple agent behavior analyzer that can detect anomalies in agent actions.
Prerequisites
- Basic understanding of Python programming
- Python 3.8 or higher installed
- Knowledge of machine learning concepts
- Installed libraries: pandas, scikit-learn, numpy
Step-by-step instructions
Step 1: Setting up the environment
First, we need to create a virtual environment and install the required packages. This ensures we have a clean, isolated environment for our project.
1.1 Create a virtual environment
python -m venv ai_monitoring_env
1.2 Activate the virtual environment
source ai_monitoring_env/bin/activate # On Linux/Mac
# or
ai_monitoring_env\Scripts\activate # On Windows
1.3 Install required packages
pip install pandas scikit-learn numpy
Why: Creating a virtual environment isolates our project dependencies, preventing conflicts with other Python projects on your system. Installing the required packages gives us the tools we need for data analysis and machine learning.
Step 2: Creating a mock AI agent data generator
We'll create a simple data generator that simulates AI agent behavior patterns, which we can later use to detect anomalies.
2.1 Create the data generator
import pandas as pd
import numpy as np
import random
from datetime import datetime, timedelta
def generate_agent_data(n_samples=1000):
"""Generate mock AI agent behavior data"""
data = []
start_time = datetime.now() - timedelta(days=30)
for i in range(n_samples):
timestamp = start_time + timedelta(hours=i)
# Simulate different agent actions
action = random.choice(['query', 'analyze', 'generate', 'summarize', 'classify'])
# Simulate processing time
processing_time = random.uniform(0.1, 5.0)
# Simulate confidence score
confidence = random.uniform(0.5, 1.0)
# Simulate resource usage
cpu_usage = random.uniform(0.1, 0.9)
memory_usage = random.uniform(0.1, 0.8)
# Simulate error rate
error_rate = random.uniform(0.0, 0.05)
data.append({
'timestamp': timestamp,
'action': action,
'processing_time': processing_time,
'confidence': confidence,
'cpu_usage': cpu_usage,
'memory_usage': memory_usage,
'error_rate': error_rate
})
return pd.DataFrame(data)
Why: This step creates a realistic dataset that mimics how AI agents might behave in production. The data includes various metrics that would be important for monitoring agent performance and detecting anomalous behavior.
Step 3: Implementing basic anomaly detection
Now we'll implement a simple anomaly detection system that can identify unusual patterns in agent behavior.
3.1 Create the anomaly detection class
from sklearn.ensemble import IsolationForest
from sklearn.preprocessing import StandardScaler
import warnings
warnings.filterwarnings('ignore')
class AgentAnomalyDetector:
def __init__(self):
self.model = IsolationForest(contamination=0.1, random_state=42)
self.scaler = StandardScaler()
self.is_fitted = False
def fit(self, data):
"""Fit the anomaly detection model"""
# Select numerical features for anomaly detection
features = ['processing_time', 'confidence', 'cpu_usage', 'memory_usage', 'error_rate']
X = data[features]
# Scale the features
X_scaled = self.scaler.fit_transform(X)
# Fit the model
self.model.fit(X_scaled)
self.is_fitted = True
return self
def predict(self, data):
"""Predict anomalies in the data"""
if not self.is_fitted:
raise ValueError("Model must be fitted before prediction")
features = ['processing_time', 'confidence', 'cpu_usage', 'memory_usage', 'error_rate']
X = data[features]
X_scaled = self.scaler.transform(X)
predictions = self.model.predict(X_scaled)
return predictions
def detect_anomalies(self, data):
"""Detect and return anomalous records"""
predictions = self.predict(data)
anomalies = data[predictions == -1]
return anomalies
Why: We're using Isolation Forest, a powerful unsupervised learning algorithm for anomaly detection. It's particularly effective for identifying outliers in high-dimensional datasets, which is perfect for monitoring AI agent behavior where multiple metrics can indicate abnormal performance.
Step 4: Putting it all together
Now we'll create a complete monitoring workflow that generates data, trains the model, and detects anomalies.
4.1 Create the main monitoring script
def main():
# Generate mock agent data
print("Generating AI agent data...")
df = generate_agent_data(1000)
print(f"Generated {len(df)} records")
# Initialize and train the anomaly detector
print("Training anomaly detection model...")
detector = AgentAnomalyDetector()
detector.fit(df)
# Detect anomalies
print("Detecting anomalies...")
anomalies = detector.detect_anomalies(df)
print(f"Found {len(anomalies)} anomalies")
# Display results
if len(anomalies) > 0:
print("\nAnomalous records detected:")
print(anomalies[['timestamp', 'action', 'processing_time', 'cpu_usage', 'error_rate']])
else:
print("\nNo anomalies detected")
return df, anomalies
# Run the main function
if __name__ == "__main__":
df, anomalies = main()
Why: This final step ties everything together into a cohesive monitoring workflow. The script demonstrates how you would integrate data generation, model training, and anomaly detection in a real-world scenario.
Step 5: Enhancing the monitoring system
Let's add some additional features to make our monitoring system more robust and useful.
5.1 Add logging and reporting capabilities
import logging
from datetime import datetime
# Configure logging
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s',
handlers=[
logging.FileHandler('agent_monitoring.log'),
logging.StreamHandler()
]
)
def enhanced_main():
logger = logging.getLogger(__name__)
logger.info("Starting AI agent monitoring system")
# Generate mock agent data
df = generate_agent_data(1000)
logger.info(f"Generated {len(df)} records")
# Initialize and train the anomaly detector
detector = AgentAnomalyDetector()
detector.fit(df)
# Detect anomalies
anomalies = detector.detect_anomalies(df)
logger.info(f"Found {len(anomalies)} anomalies")
# Generate report
report = {
'timestamp': datetime.now().isoformat(),
'total_records': len(df),
'anomalies_found': len(anomalies),
'anomaly_percentage': (len(anomalies) / len(df)) * 100,
'anomaly_details': anomalies.to_dict('records') if len(anomalies) > 0 else []
}
logger.info(f"Monitoring report generated: {report}")
return df, anomalies, report
Why: Adding logging and reporting capabilities makes our system production-ready. Proper logging helps with debugging and monitoring, while structured reporting provides a clear summary of what the system has detected.
Summary
This tutorial demonstrated how to build a basic AI agent monitoring system using Python. We created a data generator that simulates AI agent behavior, implemented anomaly detection using Isolation Forest, and structured the system with proper logging and reporting capabilities.
The system we've built provides a foundation for more complex AI agent security solutions. In a real-world scenario, you would expand this by integrating with actual AI agent APIs, using more sophisticated detection algorithms, and implementing automated alerting systems. NeuralTrust's funding highlights the growing importance of such security measures, and this tutorial gives you a starting point for building similar systems.



