Skip to main content

Reflow (Python)

Part of LoopEngine — a runtime for defining and running AI agents through a transparent ReAct loop — handling retries for prompt-too-long / truncated-output model failures. Published to PyPI as reflowkit. Works standalone too, no dependency on LoopEngine itself.

Ported line-for-line from the TypeScript implementation. See the root README for the pitch, the prior-art table, and the scope decisions — this file only covers what's specific to running the Python code.

Install

pip install -e ".[dev]"

Quickstart

PYTHONPATH=src python3 examples/quickstart.py
from reflow import Reflow

async def on_prompt_too_long(messages):
    return (await context_clip.recover(messages)).messages

reflow = Reflow(
    on_prompt_too_long=on_prompt_too_long,
    on_media_too_large=lambda messages: strip_large_images(messages),
    on_truncated=lambda messages, attempt: [*messages, continue_message],
    max_truncation_retries=2,
)

result = await reflow.call(
    lambda messages: anthropic.messages.create(model=model, messages=messages, max_tokens=4096),
    initial_messages,
)
# result.value        — the response
# result.recoveries   — ordered log of what happened, e.g. ["prompt_too_long"]
# result.truncated    — True if still truncated after exhausting retries

Test

pytest

Status

Prompt-too-long recovery, media-too-large recovery, and bounded truncation recovery are real and tested, with default classifiers for common Anthropic/OpenAI-shaped errors. Published as reflowkit on PyPI — the bare reflow name is taken by an unrelated abandoned package.

Release files for reflowkit 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for reflowkit 0.0.3
File Size Uploaded
reflowkit-0.0.3.tar.gz 6.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for reflowkit 0.0.3
File Interpreter ABI Platform
reflowkit-0.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 12.0 kB

Release files / reflowkit-0.0.3.tar.gz

Download URL reflowkit-0.0.3.tar.gz
Size 6.2 kB
Tags Source
SHA-256 checksum
How to use checksums
d07f4038cb6599779eaf28e7c2c8efc9ebe8fcd39869d1dca8c17ac78d929cd2
BLAKE2b-256 checksum
How to use checksums
3d7bf6faa9dbf7cccdc39fbf7504212903153b4d61a2d53cf66ff442d35d3aed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.8

Release files / reflowkit-0.0.3-py3-none-any.whl

Download URL reflowkit-0.0.3-py3-none-any.whl
Size 5.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
54055b968d1b97be08893b8b2a46b96b91c5c8f068c8981c2267b64b6729482a
BLAKE2b-256 checksum
How to use checksums
878be27eac967cf98c36483e7ab6334919c7f98b2aaaf703f45cbb0483bef23e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.8

Release history Release notifications | RSS feed

This release

0.0.3 This release

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page