Strahl Developer Docs¶
Strahl is an information-flow control layer for AI agents. It tracks where data comes from, enforces policies before tool calls execute, and returns typed, auditable decisions — without modifying your agent code.
Choose your SDK¶
| SDK | Install | Status |
|---|---|---|
| Python | pip install strahl |
Available |
| Node | npm install strahl |
Coming soon |
How Strahl works¶
Data leakage — information belonging to one user, customer, or context ends up influencing output visible somewhere else. The model has no way to reason about tenancy or confidentiality across its context window.
Strahl makes that boundary explicit. You attach labels to every source of information — user messages, system prompts, retrieved documents, tool results — and declare a flow policy for every tool. That policy says what labels may control the call and what label the tool result produces. Before your app executes a tool call, Strahl checks whether the information that drove the call satisfies the tool's flow policy. If it does not, Strahl denies the call and tells you why.
How it works¶
- You label every piece of information entering the conversation.
- You declare a flow policy for every sensitive tool.
- After each assistant response, you call
strahl.analyze(messages). - Strahl returns a typed decision: permitted or denied, with the tool-call part that was affected, the earlier message or tool result that influenced it, and the excerpt Strahl selected.
If a tool call is denied, you get a structured explanation you can log, surface to the user, or raise as an exception — before any tool executes.