cd /news/ai-safety/show-hn-xtra-a-python-framework-for-… · home topics ai-safety article
[ARTICLE · art-40959] src=github.com ↗ pub= topic=ai-safety verified=true sentiment=· neutral

Show HN: Xtra – a Python framework for reasoning about AI system threats

Xtra, a Python framework from Tangible Research, detects conversational social engineering using a finite state machine that models conversation state transitions without LLMs or embeddings. It identifies attacks by analyzing patterns like flattery density, asymmetry spikes, and escalation velocity, flagging extraction attempts based on path through state space.

read1 min views1 publishedJun 26, 2026
Show HN: Xtra – a Python framework for reasoning about AI system threats
Image: source

Conversational social engineering detection using a Finite State Machine.

No LLMs. No embeddings. No semantic search. Pure algorithmic detection.

xtra models conversations as state transitions:

NEUTRAL → RAPPORT_BUILD → TRUST_ESTABLISHED → EXTRACTION_ATTEMPT → FLAGGED

Attacks are detected by their path through state space, not their content.

  • Flattery density and momentum across turns
  • Asymmetry spike (give/ask ratio collapse)
  • Escalation velocity
  • Reciprocity pressure
  • Decoy turn detection
  • Scope mismatch
from xtra import Xtra, TurnSignals

result = Xtra().analyze(turns)
if result.is_attack:
    print(result.flag_reason, result.confidence)

Making AI Tangible — github.com/TangibleResearch

── more in #ai-safety 4 stories · sorted by recency
── more on @xtra 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/show-hn-xtra-a-pytho…] indexed:0 read:1min 2026-06-26 ·