Catalog PyPI
PACKAGE EXPLORERView in registry

agent-loop-breaker-py

PyPI

Detect repeated agent steps and stop runaway loops. Python port of @mukundakatta/agent-loop-breaker.

agentdetectionllmloopsafety
Versions collected1
Direct dependencies1From release 0.1.0
Last observed20 Oct, 22:37 UTC

README

Version 0.1.0 documentation

agent-loop-breaker-py

Detect repeated agent steps and stop runaway loops. Pure Python, zero deps. Python port of @mukundakatta/agent-loop-breaker.

pip install agent-loop-breaker-py
from agent_loop_breaker import detect_loop, should_stop

events = [{"tool": "search"}, {"tool": "fetch"}] * 4
res = detect_loop(events, window=2, repeat_threshold=3)
# LoopDetection(looping=True, pattern="search>fetch", count=4)

if should_stop(events):
    raise RuntimeError("agent stuck in a loop")

API

detect_loop(events, *, window=4, repeat_threshold=3) -> LoopDetection

Scans events for a repeating window of length window. Returns the first window seen repeat_threshold times or more.

Each event is reduced to a signature via event.get("tool") or event.get("name") or event.get("type") (or str(event) for non-dicts).

should_stop(events, *, window=4, repeat_threshold=3) -> bool

Convenience wrapper returning the looping flag.

License

MIT

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.1.027 Apr 20261

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
mukundakatta/agent-loop-breaker-py

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 22:37 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:21f2151512678a39b7a7c83992384fa26ece16935739d654685b3a1c96e8ea86