Guardrails Filter Tackles Complex LLM Streaming and Tool Call Challenges to Protect Sensitive Data
Developers at Cloud.ru have shared the technical challenges encountered while building Guardrails Filter, a dedicated protection layer that prevents personal data from reaching large language models. The filter scans incoming JSON requests, locates phone numbers, email addresses, passport numbers, SNILS and names using regular expressions, and replaces them with stable placeholders such as <PHONE_1> or <PERSON_1>.
A simple substitution approach quickly proved inadequate. When two different phone numbers appear in the same conversation, replacing both with the generic token <PHONE> makes it impossible to restore the correct values after the model replies. The team therefore maintains an internal mapping table that guarantees the same real value always receives the same placeholder throughout the dialogue history.
Because LLMs are stateless between requests, Guardrails Filter must re-process the entire conversation history on every turn, rebuild the mapping table, mask the data, and then restore original values once the response arrives. With ordinary non-streaming JSON responses the task is manageable, yet streaming via SSE introduces far greater complexity.
In streaming mode, responses arrive in small chunks that may split a placeholder across multiple events. The filter therefore buffers several events until enough characters accumulate to determine whether a complete placeholder is present. Once a placeholder is identified, the original value is substituted and a new chunk is emitted to the client. This buffering adds a small latency but prevents broken placeholders from reaching users.
Tool calling adds another layer of difficulty. Model-generated function calls may contain masked values inside JSON arguments that themselves are serialized inside another JSON object. The filter must fully reconstruct each tool-call argument, validate that all braces are closed, and only then perform demasking. Failure to do so can produce invalid JSON that breaks downstream agent pipelines.
Support for the Anthropic Messages API required a completely separate implementation because its event format differs significantly from OpenAI’s Chat Completions streaming. The Messages API uses explicit lifecycle events for tool calls, while Chat Completions delivers deltas inside larger JSON objects. Separate code paths and approximately 1,000 additional lines of tests were written to handle both providers consistently.
In total, the streaming logic alone grew to roughly 1,500 lines of code, backed by more than 3,000 lines of tests. The engineering effort focused on correctly identifying the end of reasoning blocks, the completion of tool-call arguments, and the safe delivery of any remaining buffered data once the model signals the end of a response.
Related articles
Taming the LLM Dragon: Corporate AI Gateway Architecture Addresses Classic Proxy Shortcomings
Spontaneous adoption of generative AI across enterprises has created shadow AI risks, prompt leaks, and uncontrolled token consumption that standard L7 proxies cannot mitigate. Traditional solutions built on Nginx, Envoy or Kong lack the ability to inspect Server-Sent Events streams, classify sensitive content inside prompts, or enforce token-based quotas in real time. The AI Optimum platform introduces a specialized AI gateway layer that sits between internal consumers and both local inference clusters and external APIs such as GigaChat and YandexGPT. It performs inline PII masking, routes traffic according to data sensitivity, supports OpenAI-compatible endpoints, and maintains detailed audit logs required under 152-FZ. The gateway adds only tens of milliseconds of latency while enabling granular billing, context caching optimization, and protection against runaway agent loops. Subsequent articles in the series will examine real corporate AI spend and further regulatory controls.
Why We Banned Our AI Manager from Writing Code and Assigned the Task to Claude Opus
The team behind an AI-powered marketplace manager for Wildberries initially built the system using regular updates, then migrated it to an autonomous agent. After implementing multiple layers of restrictions, they ultimately removed the agent entirely and rebuilt the solution from scratch. The new architecture relies on a single tool that handles the complete Wildberries API along with internet access while respecting all platform limits. The decision to prohibit the original AI manager from generating code stemmed from concerns over reliability and security in production environments. Instead, the developers turned to Claude Opus to handle coding tasks. This case highlights practical challenges of deploying AI agents in e-commerce automation and information security contexts.
Developer Builds MCP Linter and Discovers Security Issues in Anthropic Official Servers
A developer has released mcp-linter, a lightweight security and compliance tool for the Model Context Protocol used by Anthropic's Claude ecosystem. The linter detects critical problems such as stdout pollution that breaks JSON-RPC framing, missing destructiveHint annotations that allow autonomous agents to execute dangerous actions without human confirmation, prompt injection vectors hidden inside tool descriptions, and incomplete input schemas that increase model hallucinations. When run against Anthropic's reference servers, the tool assigned low health scores to server-memory and especially server-filesystem, highlighting dozens of parameters lacking descriptions. The utility runs with zero dependencies, supports SARIF output for GitHub Security, and can generate automatic JSON patches. The project is open source under MIT license and already integrates into CI pipelines via a dedicated GitHub Action.
Pentesting AI Components: Key Vulnerabilities CISOs Must Address in RAG and AI Agents
The article examines how AI integration into corporate systems dramatically expands the attack surface beyond traditional web application testing. It details risks associated with chatbots, RAG-enabled systems that pull from internal documents, and autonomous AI agents capable of executing real actions via APIs. Yuri Grishaev, an OSCP+ certified specialist and top Standoff 365 hacker, explains how prompt injection can bypass access controls and lead to data leaks or unauthorized operations. The piece stresses that service accounts often hold broad privileges, allowing AI components to serve as indirect paths to sensitive data even when direct user access is restricted. It also covers how AI-generated output can trigger classic vulnerabilities such as XSS if not properly sanitized. Recommendations include inventorying all AI tools, enforcing least-privilege principles, and validating user permissions before any model processes or acts on retrieved content. ABP2B provides free checklists and policy templates to help organizations prepare for secure AI adoption.