What problem does it solve? Python LangChain agents can call risky tools, accept prompt-injected input, and leak PII without any enforcement layer. This Skill guides you through adding Arcjet Guard to LangChain so tool calls are rate-limited, denied, or observed according to explicit policies. ## Core Features & Use Cases - Guard individual tools: Wrap any BaseTool you call yourself with guard_tool so DENY decisions raise ArcjetToolDeniedError before execution. - Policy-driven agents: Attach ArcjetMiddleware with ToolPolicy entries to create_agent so model-selected tools are gated by rules like TokenBucket rate limits. - Inbound screening and observability: Screen user messages for prompt injection with core guard() before ainvoke, and record decisions with ArcjetCaptureHandler for audit. - Use Case: You have a LangChain agent with a send_email tool. Wrap it with guard_tool and a per-user TokenBucket rule so each user can send at most 10 emails per minute, and screen inbound messages for prompt injection before invoking the agent. ## Quick Start Ask your AI agent to add Arcjet Guard to my Python LangChain agent by wrapping the send_email tool with guard_tool and a per-user rate limit.