Why Stream Validation?
Traditional validation happens after the LLM finishes generating:Early Detection
Tool name detected at token 3-5, not 50+
Save Latency
Cancel bad requests 80% faster
Save Tokens
Stop generation before waste
Setup: Define Your Tools
First, create a tool registry with constraints:Basic Streaming Validation
Validate as tokens arrive:When Validation Cancels
The validator cancels at different stages:| Condition | When Detected | Action |
|---|---|---|
| Unknown tool name | Token ~3-5 | Cancel immediately |
| Wrong argument type | When type detected | Cancel when type mismatch found |
| Constraint violation | When value complete | Cancel after parsing full value |
| Missing required arg | At closing } | Error after full parse |
Example Timeline
For input:unknown_tool{query="test"}
search{query="test" max_results=1000}
Advanced: Timeline Analysis
The validator tracks detailed timing:Error Handling
Handle different error scenarios:Constraint Types
String Constraints
Numeric Constraints
Performance Tuning
Set limits to prevent DoS:Integration Examples
With Anthropic
With OpenAI
With LangChain
Testing Validation
Test your tool validators:Next Steps
State Management
Manage agent state with patches and fingerprinting
AI Agents
Complete agent patterns with ReAct and multi-agent