exoclaw-loop-detection
Pattern-based loop detection for exoclaw — replaces hard iteration caps with smart termination.
Why
The default max_iterations=40 cap kills productive runs that happen to use many tools. This plugin detects degenerate patterns instead:
- Repeat — same tool + same args called N times in a row
- Ping-pong — alternating between two identical calls (A→B→A→B…)
- Circuit breaker — absolute safety net (default 200)
Productive runs with many different tool calls are never interrupted.
Install
pip install exoclaw-loop-detection
Usage
from exoclaw import Exoclaw
from exoclaw_loop_detection import LoopDetectionPolicy, LoopDetectionConfig
policy = LoopDetectionPolicy(LoopDetectionConfig(
critical_threshold=20, # stop after 20 identical repeats
global_circuit_breaker=200, # absolute safety net
))
app = Exoclaw(
provider=provider,
conversation=conversation,
iteration_policy=policy,
)
The policy records tool calls automatically when the loop invokes should_continue. To also track arguments for fingerprinting, call policy.record(name, args) from an on_tool_calls hook or a custom executor's execute_tool.
Configuration
| Parameter | Default | Description |
|---|---|---|
history_size |
30 | Tool calls retained for pattern matching |
warning_threshold |
10 | (Reserved) threshold for injecting a warning |
critical_threshold |
20 | Repeated calls to trigger termination |
global_circuit_breaker |
200 | Absolute iteration cap |
detect_repeat |
True | Enable same-tool-same-args streak detection |
detect_ping_pong |
True | Enable alternating pattern detection |
Metadata
Release files for exoclaw-loop-detection 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| exoclaw_loop_detection-0.1.0.tar.gz | 3.2 kB | Without provenance | Details for exoclaw_loop_detection-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| exoclaw_loop_detection-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for exoclaw_loop_detection-0.1.0-py3-none-any.whl |
Total release size: 7.8 kB
Release files / exoclaw_loop_detection-0.1.0.tar.gz
| Download URL | exoclaw_loop_detection-0.1.0.tar.gz |
|---|---|
| Size | 3.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d3b15126494b372ba05056545d51d4fb1a6d68988b22c9633364e830454a3280
|
|
BLAKE2b-256 checksum How to use checksums |
7f7c18f947f89d36b0401365dbd65c32c83348532ec72342de25cb63aaded970
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.10 {"installer":{"name":"uv","version":"0.10.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / exoclaw_loop_detection-0.1.0-py3-none-any.whl
| Download URL | exoclaw_loop_detection-0.1.0-py3-none-any.whl |
|---|---|
| Size | 4.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2bc56f04c401d7ed1e62137ecd2f875261722e04a7b2fbc896813d58bb487963
|
|
BLAKE2b-256 checksum How to use checksums |
f49afc02cd70292acbd9f8923be3b4b2adaf41b1c6e26e419638984922a287dd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.10 {"installer":{"name":"uv","version":"0.10.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for exoclaw-loop-detection 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.