Wrap LangChain tools with brin before they clone repos, fetch pages, or install packages
LangChain tools are regular functions behind a tool interface. That means you can make brin part of the tool path itself: check the artifact first, then run the external action only when the verdict allows it.
Put a shared brin helper in front of any DynamicStructuredTool or tool() callback that reaches outside your system. That keeps the enforcement deterministic even if the model ignores natural-language guidance.
browsing or scraping tools: domain/<domain> or page/<domain/path>
MCP and skill loaders: mcp/<owner>/<repo> and skill/<owner>/<repo>
If you use LangChain's tool() helper instead of DynamicStructuredTool, keep the same pattern: call brin first inside the tool function, then execute the side effect.