{"id":"2e1a3868-44a6-459d-a103-ad55bf3fbadf","slug":"crewai-webpro255-crewai-agentlock","name":"crewai-agentlock","description":"Per-tool authorization for CrewAI agents. Every tool call gated, logged, and cryptographically signed.","canonicalUrl":"https://www.xpersona.co/skill/crewai-webpro255-crewai-agentlock","sourceUrl":"https://github.com/webpro255/crewai-agentlock","homepage":null,"source":"GITHUB_OPENCLEW","vendor":{"slug":"webpro255","label":"Webpro255","url":"https://github.com/webpro255/crewai-agentlock"},"protocols":["OPENCLEW"],"capabilities":["crewai","multi-agent"],"trustScore":null,"trustConfidence":"unknown","artifactCount":0,"benchmarkCount":0,"lastRelease":null,"freshnessAt":"2026-05-18T06:45:04.185Z","freshnessLabel":"May 18, 2026","securityReviewed":true,"openapiReady":false,"stats":[{"label":"Trust score","value":"Unknown"},{"label":"Compatibility","value":"OpenClaw"},{"label":"Freshness","value":"May 18, 2026"},{"label":"Vendor","value":"Webpro255"},{"label":"Artifacts","value":"0"},{"label":"Benchmarks","value":"0"},{"label":"Last release","value":"Unpublished"}],"factsPreview":[{"factKey":"vendor","label":"Vendor","value":"Webpro255","category":"vendor","href":"https://github.com/webpro255/crewai-agentlock","sourceUrl":"https://github.com/webpro255/crewai-agentlock","sourceType":"profile","confidence":"medium","observedAt":"2026-05-18T06:45:04.186Z","isPublic":true,"metadata":{}},{"factKey":"protocols","label":"Protocol compatibility","value":"OpenClaw","category":"compatibility","href":"https://www.xpersona.co/api/v1/agents/crewai-webpro255-crewai-agentlock/contract","sourceUrl":"https://www.xpersona.co/api/v1/agents/crewai-webpro255-crewai-agentlock/contract","sourceType":"contract","confidence":"medium","observedAt":"2026-05-18T06:45:04.186Z","isPublic":true,"metadata":{}},{"factKey":"docs_crawl","label":"Crawlable docs","value":"6 indexed pages on the official domain","category":"integration","href":"https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar","sourceUrl":"https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar","sourceType":"search_document","confidence":"medium","observedAt":"2026-04-15T05:03:46.393Z","isPublic":true,"metadata":{}},{"factKey":"handshake_status","label":"Handshake status","value":"UNKNOWN","category":"security","href":"https://www.xpersona.co/api/v1/agents/crewai-webpro255-crewai-agentlock/trust","sourceUrl":"https://www.xpersona.co/api/v1/agents/crewai-webpro255-crewai-agentlock/trust","sourceType":"trust","confidence":"medium","observedAt":null,"isPublic":true,"metadata":{}}],"highlights":["Trust evidence available"],"agentCard":{"name":"crewai-agentlock","description":"Per-tool authorization for CrewAI agents. Every tool call gated, logged, and cryptographically signed.","source":"GITHUB_OPENCLEW","sourceId":"crewai:1222560853","repository":"https://github.com/webpro255/crewai-agentlock","documentation":"https://www.xpersona.co/skill/crewai-webpro255-crewai-agentlock/agent/crewai-webpro255-crewai-agentlock","protocols":["OPENCLEW"],"capabilities":["crewai","multi-agent"],"languages":["python"],"install":{"command":"git clone https://github.com/webpro255/crewai-agentlock.git","ecosystem":"git"},"examples":[{"kind":"example","language":"bash","snippet":"pip install crewai-agentlock"},{"kind":"example","language":"python","snippet":"from agentlock import AgentLockPermissions, AuthorizationGate\nfrom crewai import Agent, Crew, Task\nfrom crewai.tools import tool\nfrom crewai_agentlock import agentlock_session, lock_crew\n\n@tool\ndef web_search(query: str) -> str:\n    \"\"\"Search the web.\"\"\"\n    return f\"results for {query}\"\n\n@tool\ndef write_summary(topic: str) -> str:\n    \"\"\"Write a summary.\"\"\"\n    return f\"summary of {topic}\"\n\nresearcher = Agent(role=\"researcher\", goal=\"research\", backstory=\"A researcher.\",\n                   tools=[web_search, write_summary], allow_delegation=False)\nwriter = Agent(role=\"writer\", goal=\"write\", backstory=\"A writer.\",\n               tools=[write_summary], allow_delegation=False)\n\ncrew = Crew(\n    agents=[researcher, writer],\n    tasks=[\n        Task(description=\"research\", expected_output=\"notes\", agent=researcher),\n        Task(description=\"write\", expected_output=\"text\", agent=writer),\n    ],\n)\n\ngate = AuthorizationGate()\nlock_crew(crew, gate, permissions={\n    \"web_search\": AgentLockPermissions(\n        risk_level=\"medium\",\n        allowed_roles=[\"researcher\"],\n        rate_limit={\"max_calls\": 5, \"window_seconds\": 60},\n        scope={\"data_boundary\": \"authenticated_user_only\", \"max_records\": 50},\n    ),\n    \"write_summary\": AgentLockPermissions(\n        risk_level=\"low\",\n        allowed_roles=[\"researcher\", \"writer\"],\n    ),\n})\n\nwith agentlock_session(user_id=\"u1\", role=\"researcher\", session_id=\"s1\"):\n    crew.kickoff()"}]}}