{
  "schemaVersion": "1.0",
  "item": {
    "slug": "praesidia-a2a",
    "name": "Praesidia",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/msoica/praesidia-a2a",
    "canonicalUrl": "https://clawhub.ai/msoica/praesidia-a2a",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/praesidia-a2a",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=praesidia-a2a",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/praesidia-a2a"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/praesidia-a2a",
    "agentPageUrl": "https://openagent3.xyz/skills/praesidia-a2a/agent",
    "manifestUrl": "https://openagent3.xyz/skills/praesidia-a2a/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/praesidia-a2a/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Praesidia Agent Identity, Verification & Guardrails",
        "body": "Verify AI agents, check trust scores (0-100), discover marketplace agents, and apply guardrails for security and compliance."
      },
      {
        "title": "Core Capabilities",
        "body": "Verify agents - Check if an agent is registered, verified, and trustworthy\nTrust scores - View 0-100 trust ratings and verification status\nAgent discovery - Search marketplace for public agents by capability\nGuardrails - Apply security policies and content moderation to agents\nA2A protocol - Fetch standard Agent-to-Agent protocol cards"
      },
      {
        "title": "Prerequisites",
        "body": "Praesidia account: https://praesidia.ai\nAPI key from Settings → API Keys\nConfigure in ~/.openclaw/openclaw.json:\n\n{\n  \"skills\": {\n    \"entries\": {\n      \"praesidia\": {\n        \"apiKey\": \"pk_live_your_key_here\",\n        \"env\": {\n          \"PRAESIDIA_API_URL\": \"https://api.praesidia.ai\"\n        }\n      }\n    }\n  }\n}\n\nFor local development, use http://localhost:3000 as the URL."
      },
      {
        "title": "1. Verify an Agent",
        "body": "User says: \"Is agent chatbot-v2 safe?\" / \"Verify agent chatbot-v2\"\n\nYour action:\n\nweb_fetch({\n  url: \"${PRAESIDIA_API_URL}/agents/chatbot-v2/agent-card\",\n  headers: {\n    \"Authorization\": \"Bearer ${PRAESIDIA_API_KEY}\",\n    \"Accept\": \"application/json\"\n  }\n})\n\nPresent to user:\n\n✅ Agent name & description\n🛡️ Trust score (0-100) and trust level\n✓ Verification status (verified date)\n🔧 Capabilities (what the agent can do)\n📜 Compliance (SOC2, GDPR, etc.)\n🔗 Agent card URL\n\nExample output:\n\n✅ ChatBot V2 is verified and safe to use!\n\nTrust Score: 92.5/100 (VERIFIED)\nStatus: ACTIVE\nCapabilities: message:send, task:create, data:analyze\nCompliance: SOC2, GDPR\nLast verified: 2 days ago\n\nAgent card: https://api.praesidia.ai/agents/chatbot-v2/agent-card"
      },
      {
        "title": "2. List Guardrails for an Agent",
        "body": "User says: \"What guardrails are configured for my agent?\" / \"Show me security policies for chatbot-v2\"\n\nYour action:\n\n// First, get the user's organization ID from their profile or context\n// Then fetch guardrails\nweb_fetch({\n  url: \"${PRAESIDIA_API_URL}/organizations/${orgId}/guardrails?agentId=${agentId}\",\n  headers: {\n    \"Authorization\": \"Bearer ${PRAESIDIA_API_KEY}\",\n    \"Accept\": \"application/json\"\n  }\n})\n\nPresent to user:\n\nList of guardrails with:\n\nName and description\nType (RULE, ML, LLM)\nCategory (CONTENT, SECURITY, COMPLIANCE, etc.)\nAction (BLOCK, WARN, REDACT, REPLACE)\nScope (INPUT, OUTPUT, BOTH)\nEnabled status\nTrigger count\n\nExample output:\n\nFound 3 guardrails for ChatBot V2:\n\n1. PII Detection (ENABLED)\n   - Type: ML | Category: SECURITY\n   - Scope: BOTH (input & output)\n   - Action: REDACT sensitive data\n   - Triggered: 45 times\n\n2. Toxic Language Filter (ENABLED)\n   - Type: RULE | Category: CONTENT\n   - Scope: BOTH\n   - Action: BLOCK toxic content\n   - Triggered: 12 times\n\n3. Financial Advice Warning (ENABLED)\n   - Type: LLM | Category: COMPLIANCE\n   - Scope: OUTPUT only\n   - Action: WARN if detected\n   - Triggered: 3 times"
      },
      {
        "title": "3. Get Available Guardrail Templates",
        "body": "User says: \"What guardrail templates are available?\" / \"Show me security templates\"\n\nYour action:\n\nweb_fetch({\n  url: \"${PRAESIDIA_API_URL}/organizations/${orgId}/guardrails/templates\",\n  headers: {\n    \"Authorization\": \"Bearer ${PRAESIDIA_API_KEY}\",\n    \"Accept\": \"application/json\"\n  }\n})\n\nAvailable Templates:\n\nContent Moderation:\n\nTOXIC_LANGUAGE - Detect toxic/harmful language\nPROFANITY_FILTER - Filter profanity\nHATE_SPEECH - Detect hate speech\nVIOLENCE_DETECTION - Detect violent content\nADULT_CONTENT - Filter adult content\n\nSecurity:\n\nPII_DETECTION - Detect personally identifiable information\nCREDIT_CARD_DETECTION - Detect credit card numbers\nSSN_DETECTION - Detect social security numbers\nAPI_KEY_DETECTION - Detect leaked API keys\nPROMPT_INJECTION - Detect prompt injection attacks\nJAILBREAK_DETECTION - Detect jailbreak attempts\n\nCompliance:\n\nFINANCIAL_ADVICE - Flag financial advice\nMEDICAL_ADVICE - Flag medical advice\nLEGAL_ADVICE - Flag legal advice\nGDPR_COMPLIANCE - Enforce GDPR rules\nHIPAA_COMPLIANCE - Enforce HIPAA rules\n\nBrand Safety:\n\nCOMPETITOR_MENTIONS - Detect competitor mentions\nPOSITIVE_TONE - Ensure positive tone\nBRAND_VOICE - Maintain brand voice\nOFF_TOPIC_DETECTION - Detect off-topic responses\n\nAccuracy:\n\nHALLUCINATION_DETECTION - Detect hallucinations\nFACT_CHECKING - Verify facts\nSOURCE_VALIDATION - Validate sources\nCONSISTENCY_CHECK - Check consistency"
      },
      {
        "title": "4. Apply a Guardrail to an Agent",
        "body": "User says: \"Add PII detection to my chatbot\" / \"Apply toxic language filter to agent xyz\"\n\nYour action:\n\nweb_fetch({\n  url: \"${PRAESIDIA_API_URL}/organizations/${orgId}/guardrails\",\n  method: \"POST\",\n  headers: {\n    \"Authorization\": \"Bearer ${PRAESIDIA_API_KEY}\",\n    \"Content-Type\": \"application/json\"\n  },\n  body: JSON.stringify({\n    name: \"PII Detection\",\n    description: \"Automatically detect and redact PII\",\n    agentId: \"${agentId}\",\n    template: \"PII_DETECTION\",\n    type: \"ML\",\n    category: \"SECURITY\",\n    scope: \"BOTH\",\n    action: \"REDACT\",\n    severity: \"HIGH\",\n    isEnabled: true,\n    priority: 0\n  })\n})\n\nGuardrail Options:\n\nType:\n\nRULE - Simple regex/keyword matching (fast)\nML - Machine learning model (balanced)\nLLM - LLM-powered validation (most accurate)\n\nCategory:\n\nCONTENT - Content moderation\nSECURITY - Security checks\nCOMPLIANCE - Regulatory compliance\nBRAND - Brand safety\nACCURACY - Accuracy checks\nCUSTOM - Custom rules\n\nScope:\n\nINPUT - Validate user input only\nOUTPUT - Validate agent output only\nBOTH - Validate both directions\n\nAction:\n\nBLOCK - Block the request/response entirely\nWARN - Log warning but allow through\nREDACT - Mask the offending content\nREPLACE - Replace with alternative content\nRETRY - Retry with modified prompt\nESCALATE - Escalate to human review\n\nSeverity:\n\nLOW, MEDIUM, HIGH, CRITICAL"
      },
      {
        "title": "5. Validate Content Against Guardrails",
        "body": "User says: \"Check if this message passes guardrails: [content]\"\n\nYour action:\n\nweb_fetch({\n  url: \"${PRAESIDIA_API_URL}/organizations/${orgId}/guardrails/validate\",\n  method: \"POST\",\n  headers: {\n    \"Authorization\": \"Bearer ${PRAESIDIA_API_KEY}\",\n    \"Content-Type\": \"application/json\"\n  },\n  body: JSON.stringify({\n    content: \"User's message here\",\n    agentId: \"${agentId}\",\n    scope: \"INPUT\"\n  })\n})\n\nResponse shows:\n\nWhether content passed or failed\nWhich guardrails were triggered\nSuggested actions (block, redact, warn)\nModified content (if redaction applied)"
      },
      {
        "title": "6. Discover Public Agents",
        "body": "User says: \"Find public data analysis agents\" / \"Show me chatbot agents\"\n\nYour action:\n\nweb_fetch({\n  url: \"${PRAESIDIA_API_URL}/agents/discovery?visibility=PUBLIC&search=data\",\n  headers: { \"Accept\": \"application/json\" }\n  // Authorization optional for public agents (includes it for more results)\n})\n\nFilters available:\n\n?visibility=PUBLIC - public marketplace agents\n?role=SERVER - agents that provide services\n?role=CLIENT - agents that consume services\n?status=ACTIVE - only active agents\n?search=keyword - search by name/description\n\nPresent to user:\n\nList of matching agents with:\n\nName, description, agent ID\nTrust score and level\nRole (SERVER/CLIENT)\nKey capabilities\nLink to full card\n\nExample output:\n\nFound 2 public data analysis agents:\n\n1. OpenData Analyzer (VERIFIED - 88.0/100)\n   - Capabilities: data:analyze, chart:generate, report:create\n   - Role: SERVER | Status: ACTIVE\n   - Card: https://api.praesidia.ai/agents/opendata-1/agent-card\n\n2. CSV Processor (STANDARD - 70.0/100)\n   - Capabilities: file:parse, data:transform, export:json\n   - Role: SERVER | Status: ACTIVE\n   - Card: https://api.praesidia.ai/agents/csv-proc/agent-card"
      },
      {
        "title": "7. List User's Agents",
        "body": "User says: \"Show my agents\" / \"List all my server agents\"\n\nYour action:\n\nweb_fetch({\n  url: \"${PRAESIDIA_API_URL}/agents/discovery?role=SERVER\",\n  headers: {\n    \"Authorization\": \"Bearer ${PRAESIDIA_API_KEY}\",\n    \"Accept\": \"application/json\"\n  }\n})\n\nThis returns all agents the user has access to (their own + team/org agents)."
      },
      {
        "title": "Trust Levels Guide",
        "body": "Present trust information clearly to help users make decisions:\n\nTrust ScoreLevelMeaningRecommendation90-100VERIFIEDFully vetted, compliant, verified identity✅ Safe to use70-89STANDARDGood reputation, basic verification✅ Generally safe50-69LIMITEDMinimal verification⚠️ Use with caution0-49UNTRUSTEDNot verified or poor reputation❌ Not recommended\n\nAlways show the trust score numerically (e.g., 92.5/100) and the level (e.g., VERIFIED)."
      },
      {
        "title": "Error Handling",
        "body": "ErrorMeaningWhat to tell user401 UnauthorizedAPI key missing/invalid\"Check PRAESIDIA_API_KEY in ~/.openclaw/openclaw.json\"403 ForbiddenNo permission\"You don't have access to this agent\"404 Not FoundAgent doesn't exist\"Agent not found. Check the agent ID\"500 Server ErrorPraesidia API issue\"Praesidia API temporarily unavailable. Try again\""
      },
      {
        "title": "GET /agents/:id/agent-card",
        "body": "Fetch detailed agent card with trust data.\n\nAuth: Required for private/team/org agents, optional for public\nReturns: A2A agent card + Praesidia extensions (trust, compliance)"
      },
      {
        "title": "GET /agents/discovery",
        "body": "List/search agents with filters.\n\nAuth: Optional (more results with auth)\nQuery params: role, status, visibility, search\nReturns: Array of agent summaries with card URLs"
      },
      {
        "title": "Guardrails Best Practices",
        "body": "When helping users with guardrails:\n\nStart with templates - Use predefined templates before custom rules\nLayer security - Combine multiple guardrails (PII + Toxic + Compliance)\nTest before enabling - Use validate endpoint to test content first\nMonitor triggers - Check stats regularly to tune thresholds\nScope appropriately - Use INPUT for user content, OUTPUT for agent responses\nChoose right action:\n\nBLOCK for critical security issues (PII, prompt injection)\nREDACT for sensitive data that can be masked\nWARN for compliance/brand issues that need logging\nESCALATE for edge cases requiring human review"
      },
      {
        "title": "Best Practices",
        "body": "Always verify before recommending - Check trust score before suggesting an agent\nExplain trust levels - Users may not know what \"VERIFIED\" means\nFilter by SERVER role - When users want agents to use/call\nShow compliance - Important for enterprise users (SOC2, GDPR)\nPresent trust score numerically - 92.5/100 is clearer than just \"VERIFIED\"\nLayer guardrails - Combine security, content, and compliance guardrails"
      },
      {
        "title": "Pattern 1: Safety Check",
        "body": "User: \"Is agent xyz safe to use?\"\nYou: [Fetch agent card, check trust score]\n     \"Agent xyz has a trust score of 85/100 (STANDARD).\n      It's verified for basic operations. What would you like to use it for?\""
      },
      {
        "title": "Pattern 2: Capability Discovery",
        "body": "User: \"I need an agent that can analyze spreadsheets\"\nYou: [Search discovery with visibility=PUBLIC&search=spreadsheet]\n     \"I found 3 spreadsheet analysis agents. The highest rated is...\""
      },
      {
        "title": "Pattern 3: Fleet Management",
        "body": "User: \"Show me all my agents that are inactive\"\nYou: [Fetch discovery with status=INACTIVE]\n     \"You have 2 inactive agents: [list with trust scores]\""
      },
      {
        "title": "Pattern 4: Apply Security",
        "body": "User: \"I need to secure my chatbot against PII leaks\"\nYou: [List available templates, recommend PII_DETECTION]\n     [Apply guardrail with REDACT action on BOTH scope]\n     \"I've added PII Detection (ML-powered) to your chatbot.\n      It will automatically redact sensitive information in both\n      user inputs and bot responses.\""
      },
      {
        "title": "Pattern 5: Compliance Check",
        "body": "User: \"My agent handles healthcare data. What guardrails should I add?\"\nYou: [Check if HIPAA compliance is required]\n     [Recommend HIPAA_COMPLIANCE + PII_DETECTION + AUDIT_LOGGING]\n     \"For healthcare data, I recommend these guardrails:\n      1. HIPAA Compliance (BLOCK on violations)\n      2. PII Detection (REDACT)\n      3. Medical Advice Warning (WARN)\n      Would you like me to apply these?\""
      },
      {
        "title": "Environment Variables",
        "body": "PRAESIDIA_API_KEY (required) - Your API key from https://app.praesidia.ai\nPRAESIDIA_API_URL (optional) - Defaults to https://api.praesidia.ai\n\nProduction: https://api.praesidia.ai\nLocal dev: http://localhost:3000\nCustom: Your deployment URL"
      },
      {
        "title": "Additional Resources",
        "body": "Full setup guide: See README.md in this skill folder\nAPI documentation: https://app.praesidia.ai/docs/api\nA2A protocol: https://a2a-protocol.org\nSupport: hello@praesidia.ai or https://discord.gg/e9EwZfHS"
      },
      {
        "title": "Security & Privacy",
        "body": "All production requests use HTTPS\nAPI keys stored in OpenClaw config (never exposed to users)\nPrivate/team/org agents require authentication\nPublic agents accessible without auth\nTrust verification protects against malicious agents"
      }
    ],
    "body": "Praesidia Agent Identity, Verification & Guardrails\n\nVerify AI agents, check trust scores (0-100), discover marketplace agents, and apply guardrails for security and compliance.\n\nCore Capabilities\nVerify agents - Check if an agent is registered, verified, and trustworthy\nTrust scores - View 0-100 trust ratings and verification status\nAgent discovery - Search marketplace for public agents by capability\nGuardrails - Apply security policies and content moderation to agents\nA2A protocol - Fetch standard Agent-to-Agent protocol cards\nPrerequisites\nPraesidia account: https://praesidia.ai\nAPI key from Settings → API Keys\nConfigure in ~/.openclaw/openclaw.json:\n{\n  \"skills\": {\n    \"entries\": {\n      \"praesidia\": {\n        \"apiKey\": \"pk_live_your_key_here\",\n        \"env\": {\n          \"PRAESIDIA_API_URL\": \"https://api.praesidia.ai\"\n        }\n      }\n    }\n  }\n}\n\n\nFor local development, use http://localhost:3000 as the URL.\n\nQuick Reference\n1. Verify an Agent\n\nUser says: \"Is agent chatbot-v2 safe?\" / \"Verify agent chatbot-v2\"\n\nYour action:\n\nweb_fetch({\n  url: \"${PRAESIDIA_API_URL}/agents/chatbot-v2/agent-card\",\n  headers: {\n    \"Authorization\": \"Bearer ${PRAESIDIA_API_KEY}\",\n    \"Accept\": \"application/json\"\n  }\n})\n\n\nPresent to user:\n\n✅ Agent name & description\n🛡️ Trust score (0-100) and trust level\n✓ Verification status (verified date)\n🔧 Capabilities (what the agent can do)\n📜 Compliance (SOC2, GDPR, etc.)\n🔗 Agent card URL\n\nExample output:\n\n✅ ChatBot V2 is verified and safe to use!\n\nTrust Score: 92.5/100 (VERIFIED)\nStatus: ACTIVE\nCapabilities: message:send, task:create, data:analyze\nCompliance: SOC2, GDPR\nLast verified: 2 days ago\n\nAgent card: https://api.praesidia.ai/agents/chatbot-v2/agent-card\n\n2. List Guardrails for an Agent\n\nUser says: \"What guardrails are configured for my agent?\" / \"Show me security policies for chatbot-v2\"\n\nYour action:\n\n// First, get the user's organization ID from their profile or context\n// Then fetch guardrails\nweb_fetch({\n  url: \"${PRAESIDIA_API_URL}/organizations/${orgId}/guardrails?agentId=${agentId}\",\n  headers: {\n    \"Authorization\": \"Bearer ${PRAESIDIA_API_KEY}\",\n    \"Accept\": \"application/json\"\n  }\n})\n\n\nPresent to user:\n\nList of guardrails with:\nName and description\nType (RULE, ML, LLM)\nCategory (CONTENT, SECURITY, COMPLIANCE, etc.)\nAction (BLOCK, WARN, REDACT, REPLACE)\nScope (INPUT, OUTPUT, BOTH)\nEnabled status\nTrigger count\n\nExample output:\n\nFound 3 guardrails for ChatBot V2:\n\n1. PII Detection (ENABLED)\n   - Type: ML | Category: SECURITY\n   - Scope: BOTH (input & output)\n   - Action: REDACT sensitive data\n   - Triggered: 45 times\n\n2. Toxic Language Filter (ENABLED)\n   - Type: RULE | Category: CONTENT\n   - Scope: BOTH\n   - Action: BLOCK toxic content\n   - Triggered: 12 times\n\n3. Financial Advice Warning (ENABLED)\n   - Type: LLM | Category: COMPLIANCE\n   - Scope: OUTPUT only\n   - Action: WARN if detected\n   - Triggered: 3 times\n\n3. Get Available Guardrail Templates\n\nUser says: \"What guardrail templates are available?\" / \"Show me security templates\"\n\nYour action:\n\nweb_fetch({\n  url: \"${PRAESIDIA_API_URL}/organizations/${orgId}/guardrails/templates\",\n  headers: {\n    \"Authorization\": \"Bearer ${PRAESIDIA_API_KEY}\",\n    \"Accept\": \"application/json\"\n  }\n})\n\n\nAvailable Templates:\n\nContent Moderation:\n\nTOXIC_LANGUAGE - Detect toxic/harmful language\nPROFANITY_FILTER - Filter profanity\nHATE_SPEECH - Detect hate speech\nVIOLENCE_DETECTION - Detect violent content\nADULT_CONTENT - Filter adult content\n\nSecurity:\n\nPII_DETECTION - Detect personally identifiable information\nCREDIT_CARD_DETECTION - Detect credit card numbers\nSSN_DETECTION - Detect social security numbers\nAPI_KEY_DETECTION - Detect leaked API keys\nPROMPT_INJECTION - Detect prompt injection attacks\nJAILBREAK_DETECTION - Detect jailbreak attempts\n\nCompliance:\n\nFINANCIAL_ADVICE - Flag financial advice\nMEDICAL_ADVICE - Flag medical advice\nLEGAL_ADVICE - Flag legal advice\nGDPR_COMPLIANCE - Enforce GDPR rules\nHIPAA_COMPLIANCE - Enforce HIPAA rules\n\nBrand Safety:\n\nCOMPETITOR_MENTIONS - Detect competitor mentions\nPOSITIVE_TONE - Ensure positive tone\nBRAND_VOICE - Maintain brand voice\nOFF_TOPIC_DETECTION - Detect off-topic responses\n\nAccuracy:\n\nHALLUCINATION_DETECTION - Detect hallucinations\nFACT_CHECKING - Verify facts\nSOURCE_VALIDATION - Validate sources\nCONSISTENCY_CHECK - Check consistency\n4. Apply a Guardrail to an Agent\n\nUser says: \"Add PII detection to my chatbot\" / \"Apply toxic language filter to agent xyz\"\n\nYour action:\n\nweb_fetch({\n  url: \"${PRAESIDIA_API_URL}/organizations/${orgId}/guardrails\",\n  method: \"POST\",\n  headers: {\n    \"Authorization\": \"Bearer ${PRAESIDIA_API_KEY}\",\n    \"Content-Type\": \"application/json\"\n  },\n  body: JSON.stringify({\n    name: \"PII Detection\",\n    description: \"Automatically detect and redact PII\",\n    agentId: \"${agentId}\",\n    template: \"PII_DETECTION\",\n    type: \"ML\",\n    category: \"SECURITY\",\n    scope: \"BOTH\",\n    action: \"REDACT\",\n    severity: \"HIGH\",\n    isEnabled: true,\n    priority: 0\n  })\n})\n\n\nGuardrail Options:\n\nType:\n\nRULE - Simple regex/keyword matching (fast)\nML - Machine learning model (balanced)\nLLM - LLM-powered validation (most accurate)\n\nCategory:\n\nCONTENT - Content moderation\nSECURITY - Security checks\nCOMPLIANCE - Regulatory compliance\nBRAND - Brand safety\nACCURACY - Accuracy checks\nCUSTOM - Custom rules\n\nScope:\n\nINPUT - Validate user input only\nOUTPUT - Validate agent output only\nBOTH - Validate both directions\n\nAction:\n\nBLOCK - Block the request/response entirely\nWARN - Log warning but allow through\nREDACT - Mask the offending content\nREPLACE - Replace with alternative content\nRETRY - Retry with modified prompt\nESCALATE - Escalate to human review\n\nSeverity:\n\nLOW, MEDIUM, HIGH, CRITICAL\n5. Validate Content Against Guardrails\n\nUser says: \"Check if this message passes guardrails: [content]\"\n\nYour action:\n\nweb_fetch({\n  url: \"${PRAESIDIA_API_URL}/organizations/${orgId}/guardrails/validate\",\n  method: \"POST\",\n  headers: {\n    \"Authorization\": \"Bearer ${PRAESIDIA_API_KEY}\",\n    \"Content-Type\": \"application/json\"\n  },\n  body: JSON.stringify({\n    content: \"User's message here\",\n    agentId: \"${agentId}\",\n    scope: \"INPUT\"\n  })\n})\n\n\nResponse shows:\n\nWhether content passed or failed\nWhich guardrails were triggered\nSuggested actions (block, redact, warn)\nModified content (if redaction applied)\n6. Discover Public Agents\n\nUser says: \"Find public data analysis agents\" / \"Show me chatbot agents\"\n\nYour action:\n\nweb_fetch({\n  url: \"${PRAESIDIA_API_URL}/agents/discovery?visibility=PUBLIC&search=data\",\n  headers: { \"Accept\": \"application/json\" }\n  // Authorization optional for public agents (includes it for more results)\n})\n\n\nFilters available:\n\n?visibility=PUBLIC - public marketplace agents\n?role=SERVER - agents that provide services\n?role=CLIENT - agents that consume services\n?status=ACTIVE - only active agents\n?search=keyword - search by name/description\n\nPresent to user:\n\nList of matching agents with:\nName, description, agent ID\nTrust score and level\nRole (SERVER/CLIENT)\nKey capabilities\nLink to full card\n\nExample output:\n\nFound 2 public data analysis agents:\n\n1. OpenData Analyzer (VERIFIED - 88.0/100)\n   - Capabilities: data:analyze, chart:generate, report:create\n   - Role: SERVER | Status: ACTIVE\n   - Card: https://api.praesidia.ai/agents/opendata-1/agent-card\n\n2. CSV Processor (STANDARD - 70.0/100)\n   - Capabilities: file:parse, data:transform, export:json\n   - Role: SERVER | Status: ACTIVE\n   - Card: https://api.praesidia.ai/agents/csv-proc/agent-card\n\n7. List User's Agents\n\nUser says: \"Show my agents\" / \"List all my server agents\"\n\nYour action:\n\nweb_fetch({\n  url: \"${PRAESIDIA_API_URL}/agents/discovery?role=SERVER\",\n  headers: {\n    \"Authorization\": \"Bearer ${PRAESIDIA_API_KEY}\",\n    \"Accept\": \"application/json\"\n  }\n})\n\n\nThis returns all agents the user has access to (their own + team/org agents).\n\nTrust Levels Guide\n\nPresent trust information clearly to help users make decisions:\n\nTrust Score\tLevel\tMeaning\tRecommendation\n90-100\tVERIFIED\tFully vetted, compliant, verified identity\t✅ Safe to use\n70-89\tSTANDARD\tGood reputation, basic verification\t✅ Generally safe\n50-69\tLIMITED\tMinimal verification\t⚠️ Use with caution\n0-49\tUNTRUSTED\tNot verified or poor reputation\t❌ Not recommended\n\nAlways show the trust score numerically (e.g., 92.5/100) and the level (e.g., VERIFIED).\n\nError Handling\nError\tMeaning\tWhat to tell user\n401 Unauthorized\tAPI key missing/invalid\t\"Check PRAESIDIA_API_KEY in ~/.openclaw/openclaw.json\"\n403 Forbidden\tNo permission\t\"You don't have access to this agent\"\n404 Not Found\tAgent doesn't exist\t\"Agent not found. Check the agent ID\"\n500 Server Error\tPraesidia API issue\t\"Praesidia API temporarily unavailable. Try again\"\nAPI Endpoints\nGET /agents/:id/agent-card\n\nFetch detailed agent card with trust data.\n\nAuth: Required for private/team/org agents, optional for public Returns: A2A agent card + Praesidia extensions (trust, compliance)\n\nGET /agents/discovery\n\nList/search agents with filters.\n\nAuth: Optional (more results with auth) Query params: role, status, visibility, search Returns: Array of agent summaries with card URLs\n\nGuardrails Best Practices\n\nWhen helping users with guardrails:\n\nStart with templates - Use predefined templates before custom rules\nLayer security - Combine multiple guardrails (PII + Toxic + Compliance)\nTest before enabling - Use validate endpoint to test content first\nMonitor triggers - Check stats regularly to tune thresholds\nScope appropriately - Use INPUT for user content, OUTPUT for agent responses\nChoose right action:\nBLOCK for critical security issues (PII, prompt injection)\nREDACT for sensitive data that can be masked\nWARN for compliance/brand issues that need logging\nESCALATE for edge cases requiring human review\nBest Practices\nAlways verify before recommending - Check trust score before suggesting an agent\nExplain trust levels - Users may not know what \"VERIFIED\" means\nFilter by SERVER role - When users want agents to use/call\nShow compliance - Important for enterprise users (SOC2, GDPR)\nPresent trust score numerically - 92.5/100 is clearer than just \"VERIFIED\"\nLayer guardrails - Combine security, content, and compliance guardrails\nCommon User Patterns\nPattern 1: Safety Check\nUser: \"Is agent xyz safe to use?\"\nYou: [Fetch agent card, check trust score]\n     \"Agent xyz has a trust score of 85/100 (STANDARD).\n      It's verified for basic operations. What would you like to use it for?\"\n\nPattern 2: Capability Discovery\nUser: \"I need an agent that can analyze spreadsheets\"\nYou: [Search discovery with visibility=PUBLIC&search=spreadsheet]\n     \"I found 3 spreadsheet analysis agents. The highest rated is...\"\n\nPattern 3: Fleet Management\nUser: \"Show me all my agents that are inactive\"\nYou: [Fetch discovery with status=INACTIVE]\n     \"You have 2 inactive agents: [list with trust scores]\"\n\nPattern 4: Apply Security\nUser: \"I need to secure my chatbot against PII leaks\"\nYou: [List available templates, recommend PII_DETECTION]\n     [Apply guardrail with REDACT action on BOTH scope]\n     \"I've added PII Detection (ML-powered) to your chatbot.\n      It will automatically redact sensitive information in both\n      user inputs and bot responses.\"\n\nPattern 5: Compliance Check\nUser: \"My agent handles healthcare data. What guardrails should I add?\"\nYou: [Check if HIPAA compliance is required]\n     [Recommend HIPAA_COMPLIANCE + PII_DETECTION + AUDIT_LOGGING]\n     \"For healthcare data, I recommend these guardrails:\n      1. HIPAA Compliance (BLOCK on violations)\n      2. PII Detection (REDACT)\n      3. Medical Advice Warning (WARN)\n      Would you like me to apply these?\"\n\nEnvironment Variables\nPRAESIDIA_API_KEY (required) - Your API key from https://app.praesidia.ai\nPRAESIDIA_API_URL (optional) - Defaults to https://api.praesidia.ai\nProduction: https://api.praesidia.ai\nLocal dev: http://localhost:3000\nCustom: Your deployment URL\nAdditional Resources\nFull setup guide: See README.md in this skill folder\nAPI documentation: https://app.praesidia.ai/docs/api\nA2A protocol: https://a2a-protocol.org\nSupport: hello@praesidia.ai or https://discord.gg/e9EwZfHS\nSecurity & Privacy\nAll production requests use HTTPS\nAPI keys stored in OpenClaw config (never exposed to users)\nPrivate/team/org agents require authentication\nPublic agents accessible without auth\nTrust verification protects against malicious agents"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/msoica/praesidia-a2a",
    "publisherUrl": "https://clawhub.ai/msoica/praesidia-a2a",
    "owner": "msoica",
    "version": "1.0.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/praesidia-a2a",
    "downloadUrl": "https://openagent3.xyz/downloads/praesidia-a2a",
    "agentUrl": "https://openagent3.xyz/skills/praesidia-a2a/agent",
    "manifestUrl": "https://openagent3.xyz/skills/praesidia-a2a/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/praesidia-a2a/agent.md"
  }
}