🧪 Skills
AgentGuard Tech
Installs AgentGuard to secure your AI agent by wrapping tools with evaluate() to block prompt injections, tool abuse, and malicious commands.
v2.0.0
Description
agent-security SKILL
Skill Name: agent-security
Description: Installs AgentGuard security protection for your AI agent. Wraps tools with evaluate() to prevent prompt injection, tool abuse, and malicious commands.
Version: 1.0.0
Author: ClawHub
Manifest
{
"name": "agent-security",
"version": "1.0.0",
"description": "Secure your agent with AgentGuard protection",
"triggers": [
"secure my agent",
"add security to my agent",
"protect my agent",
"enable agent security",
"make my agent safe",
"add agentguard"
],
"inputs": {
"apiKey": {
"type": "string",
"description": "AgentGuard API key (optional - will create free tier account if not provided)",
"required": false
},
"tier": {
"type": "string",
"description": "Security tier: 'free', 'pro', or 'enterprise'",
"default": "free",
"required": false
}
},
"requires": ["npm", "internet"],
"tags": ["security", "protection", "agentguard", "safety"]
}
What It Does
When invoked, this skill:
- Installs
@the-bot-club/agentguardSDK via npm - Creates a free tier AgentGuard account (if no API key provided)
- Wraps all registered tools with
evaluate()security layer - Configures security policies (prompt injection detection, tool access controls)
- Reports security status and next steps
Installation Flow
User: "secure my agent"
Skill Response:
"I'll install AgentGuard security for your agent. This will:
1. Install the @the-bot-club/agentguard SDK
2. Create a free tier account (or use your API key)
3. Wrap your tools with evaluate() protection
4. Enable prompt injection & tool abuse detection
Let me get started..."
→ Step 1: npm install @the-bot-club/agentguard
→ Step 2: Initialize AgentGuard with security config
→ Step 3: Wrap tools with evaluate()
→ Step 4: Verify protection is active
→ Done!
Edge Cases & Handling
Already Has Security
// Check if agentguard already installed
const hasAgentGuard = await checkPackageInstalled('@the-bot-club/agentguard');
if (hasAgentGuard) {
return "AgentGuard is already installed! Running reconfiguration instead.";
}
No Internet Access
if (!hasInternet) {
return "No internet detected. Manual installation required:\n" +
"1. npm install @the-bot-club/agentguard\n" +
"2. Copy the config below into your agent...";
}
Paid Tier Required
if (tier === 'enterprise' && !apiKey) {
return "Enterprise tier requires an API key. " +
"Get one at https://agentguard.thebot.club/enterprise";
}
No npm Available
if (!hasNpm) {
return "npm not found. Please install Node.js first: https://nodejs.org";
}
Implementation Code
Main Skill Handler
// skills/agent-security/index.js
const { exec } = require('child_process');
const path = require('path');
const SKILL_NAME = 'agent-security';
async function execute(context) {
const { userMessage, config, tools } = context;
const args = parseArgs(userMessage);
// Edge case: Check internet
if (!await hasInternet()) {
return handleNoInternet();
}
// Edge case: Check npm
if (!await hasNpm()) {
return handleNoNpm();
}
// Edge case: Check existing installation
if (await isAgentGuardInstalled()) {
return handleAlreadyInstalled();
}
// Step 1: Install SDK
await installAgentGuardSDK();
// Step 2: Initialize (create account or use provided key)
const apiKey = await initializeAgentGuard(args);
// Step 3: Wrap tools with evaluate()
const wrappedTools = wrapToolsWithEvaluate(tools);
// Step 4: Write security config
await writeSecurityConfig(apiKey, args.tier);
return {
success: true,
message: "✅ AgentGuard security installed and active!\n\n" +
"Your agent is now protected against:\n" +
"• Prompt injection attacks\n" +
"• Tool abuse attempts\n" +
"• Malicious command execution\n\n" +
`API Key: ${apiKey.substring(0, 8)}...\n` +
"View dashboard: https://agentguard.thebot.club/dashboard",
wrappedTools,
config: { securityEnabled: true, apiKey }
};
}
async function installAgentGuardSDK() {
return new Promise((resolve, reject) => {
exec('npm install @the-bot-club/agentguard --save',
{ cwd: process.cwd() },
(error, stdout, stderr) => {
if (error) reject(error);
else resolve(stdout);
});
});
}
function wrapToolsWithEvaluate(tools) {
const { evaluate } = require('@the-bot-club/agentguard');
return tools.map(tool => ({
...tool,
execute: async (...args) => {
// Security check before execution
const result = await evaluate(tool.name, args, {
strict: true,
timeout: 5000
});
if (!result.allowed) {
throw new Error(`Security blocked: ${result.reason}`);
}
return tool.execute(...args);
}
}));
}
async function initializeAgentGuard(args) {
const { AgentGuard } = require('@the-bot-club/agentguard');
if (args.apiKey) {
return args.apiKey;
}
// Create free tier account
const account = await AgentGuard.createAccount({
tier: 'free',
email: args.email || 'user@agent.local'
});
return account.apiKey;
}
module.exports = { execute, SKILL_NAME };
Security Configuration
// skills/agent-security/security-config.js
module.exports = {
// Security policies
policies: {
// Prompt injection detection
promptInjection: {
enabled: true,
action: 'block',
sensitivity: 'high'
},
// Tool access controls
toolAccess: {
// Dangerous tools require explicit approval
dangerous: ['exec', 'write', 'delete', 'sudo'],
requireApproval: true,
maxExecutionsPerHour: 100
},
// Command validation
commandValidation: {
enabled: true,
blockPatterns: [
/rm\s+-rf/i,
/curl.*\|\s*sh/i,
/wget.*\|\s*sh/i
]
},
// Rate limiting
rateLimit: {
enabled: true,
maxRequests: 50,
windowMs: 60000
}
},
// Free tier limits
free: {
promptInjectionDetection: true,
toolAccessControl: true,
commandValidation: true,
maxTools: 10,
maxDailyRequests: 1000
},
// Pro tier (requires paid API key)
pro: {
...this.free,
maxTools: 100,
maxDailyRequests: 100000,
customPolicies: true,
prioritySupport: true
},
// Enterprise tier
enterprise: {
...this.pro,
unlimited: true,
customIntegrations: true,
dedicatedSupport: true,
sla: '99.99%'
}
};
Usage Examples
Basic - Free Tier (No API Key)
User: "secure my agent"
→ Installs AgentGuard free tier
→ Creates account automatically
→ Wraps all tools with evaluate()
With API Key
User: "secure my agent with API key xxx"
→ Uses provided API key
→ Skips account creation
→ Applies tier based on key
Reconfiguration
User: "update agent security settings"
→ Reads existing config
→ Updates policies
→ Reloads without reinstall
Files Created
When installed, this skill creates:
| File | Purpose |
|---|---|
node_modules/@the-bot-club/agentguard/ |
Security SDK |
.agentguard/config.json |
API key & settings |
.agentguard/policies.json |
Security policies |
.agentguard/logs/ |
Security event logs |
Verification
After installation, verify protection is active:
const { AgentGuard } = require('@the-bot-club/agentguard');
const guard = new AgentGuard();
const status = await guard.getStatus();
console.log(status);
// { protected: true, tier: 'free', toolsSecured: 12 }
Troubleshooting
| Issue | Solution |
|---|---|
| Installation fails | Check npm/node versions; try npm cache clean |
| Tools not wrapping | Ensure tools are registered before calling skill |
| API key invalid | Regenerate at https://agentguard.thebot.club/keys |
| Too many false positives | Adjust sensitivity in policies.json |
Uninstallation
User: "remove agent security"
→ Removes @the-bot-club/agentguard from package.json
→ Deletes .agentguard/ directory
→ Restores original tool functions
async function uninstall() {
exec('npm uninstall @the-bot-club/agentguard');
fs.rmSync('.agentguard/', { recursive: true });
return "AgentGuard removed. Your agent is no longer protected.";
}
Reviews (0)
Sign in to write a review.
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!