DEV Community

sijan gautam
sijan gautam

Posted on

How I built an intent drift detector for LLM agents

The Problem

AI agents fail silently.

You give an agent a clear instruction:
"Refund user 123, $50 within 7 days"

The agent returns:
"User refunded $500 immediately"

No error. No warning. Just wrong output.

This is semantic drift — when LLM output
diverges from original intent.

What I Built

SIP (State Integrity Protocol) is a lightweight
Python SDK that detects and flags drift in
LLM outputs before they cause damage.

How It Works

from sip.middleware import SIPMiddlewarePipeline

pipeline = SIPMiddlewarePipeline()
pipeline.anchor("Refund user 123 $50")

result = pipeline.run(
    output="Refund user 123 $500"
)

print(result.status)  # repair_required
Enter fullscreen mode Exit fullscreen mode

Three checks run automatically:

  1. Semantic drift (TF-IDF + cosine similarity)
  2. Intent alignment (sentence-transformers)
  3. Numeric drift ($50 vs $500 caught)

Real Test Results

Test Status
Exact match accepted
Same meaning different words accepted
Wrong output repair_required
Numbers changed repair_required
Injection attempt repair_required

Install

pip install state-integrity-protocol
Enter fullscreen mode Exit fullscreen mode

GitHub

github.com/sijan324/state-integrity-protocol

Looking for feedback from anyone building
LLM pipelines or AI agents.

What drift problems have you seen in production?

Top comments (3)

Collapse
 
sanreds profile image
sanreds

Intent drift detection is one of the parts most agent frameworks pretend doesn't exist. Quick question, are you detecting drift per-step, or over a rolling window of N steps? Single step works for a chat agent but seems to miss the slow cook failures where each step looks locally fine but the goal has shifted three turns ago.

Collapse
 
sijan324 profile image
sijan gautam

Hey — really appreciate this question, it's exactly the gap I've been thinking about.
Right now SIP anchors to the original intent and checks each step against that.
So yes, per-step only. The slow-cook problem you described is real and honestly not solved yet in SIP. Each step looks fine locally but the goal
has quietly shifted — that's dangerous.Rolling window is something I want to build next.

Would love your thoughts on how you'd approach it.
If you want to try the current version:

pip install state-integrity-protocol

Or see it live:
state-integrity-protocol-jxvjzwbhe...

Would genuinely appreciate your feedback —
you clearly think about this stuff deeply.

Collapse
 
sanreds profile image
sanreds

Sure, happy to try it out! And yes, I myself am pondering alot on these issues while building my OSS. I will remember to comeback here and share it with you to try it out as well once I launch the stable version (in ~2 weeks).