Skip to main content

The doloop resistance machine: deterministic checks for AI output, from the CLI.

Project description

doloop machine

An external, deterministic check you put between your AI and your users. Send it an output, get back an objective verdict — the same verdict every time. You bring your own model; the machine never touches it.

Docs only. No product code lives here — just how to call the machine and copy-paste examples.

Base URL: https://api.doloop.io

Use doloop when…

Your problem Call What you get
Your agent loops or repeats itself POST /v1/check findings flag the repetition; verdict: fail (a model in a loop can't see its own loop — doloop can)
Output drifts or slides back to a bug it just fixed POST /v1/check the drift caught from outside
The model pads with slop, hedges, jargon POST /v1/check each tell flagged with a line
A number isn't in the source, a total won't reconcile documents donkey tie-out failure
You need the same verdict every time (audit) POST /v1/check input_sha256 — reproducible, provable
You want a human to review only the failures gate on verdict triage, not every line

The four donkeys

A donkey is a deterministic check for one kind of output.

Donkey Catches Surface
writing de-slop: dead prose, jargon, self-management tics, flat cadence https://writing.doloop.io
conversations de-sycophant, de-loop: agreement drift, dialogue going in circles https://conversations.doloop.io
presentations land-the-finding: slides that bury the point or don't match the data https://presentations.doloop.io
documents tie-out: a number not in the source, a total that won't reconcile https://documents.doloop.io
curl https://api.doloop.io/v1/donkeys

Quickstart

curl https://api.doloop.io/v1/check \
  -H 'content-type: application/json' \
  -d '{"text": "the answer your model just produced"}'
{ "verdict": "pass", "finding_count": 0, "findings": [], "input_sha256": "..." }

Same text in, same verdict out, every time. input_sha256 proves it: identical input gives an identical hash gives an identical verdict. Objective, not subjective — unlike an AI judge that scores the same answer 77% one run and 63% the next.

How people use it

  1. Gate before ship — check the output; if verdict: fail, don't ship it.
  2. Self-heal loop (the "doloop") — check → on fail, feed findings back to your model → re-check → ship on pass. See examples/loop.py.
  3. In-agent self-check — the agent checks its own step output to catch the loop/drift it can't see itself. See examples/agent_check.py.
  4. BYOL proxy — point an OpenAI-compatible base_url at the machine; the verdict rides back on every response. See examples/proxy.py.
  5. CI gate — run a corpus through the donkeys; fail the build on a regression. See examples/ci_check.sh.

Endpoints

Method Path Does
POST /v1/check deterministic verdict on text
GET /v1/donkeys list the four donkeys
POST /v1/chat/completions OpenAI-compatible BYOL proxy with the verdict attached
GET /health liveness

Machine-readable spec: openapi.json. LLM index: llms.txt. Pricing and the loop calculator: PRICING.md.

What it is

doloop is the Deterministic Objective Loop: the external checker a model can't be for itself, because a model in a loop can't see its own loop. Bring your model; doloop returns the verdict it can't give itself.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

doloopio-0.1.0.tar.gz (5.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

doloopio-0.1.0-py3-none-any.whl (5.7 kB view details)

Uploaded Python 3

File details

Details for the file doloopio-0.1.0.tar.gz.

File metadata

  • Download URL: doloopio-0.1.0.tar.gz
  • Upload date:
  • Size: 5.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for doloopio-0.1.0.tar.gz
Algorithm Hash digest
SHA256 2aae8df1bb2a052046086876333aca8f8bc559aa37846b7268da30a8271178bf
MD5 5b39313b219d167aa63f9e2a8967b3ff
BLAKE2b-256 79042bbdedae9aa5f7da8fed7941e7bb2543140b1c43182e533b78a24e2d06fe

See more details on using hashes here.

File details

Details for the file doloopio-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: doloopio-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 5.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for doloopio-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 322b47e9e652200b55398a4dbd52af5e813853ca1d551aa24067d16fb628dc53
MD5 81b6258370f93d54c7f0ac5ae4fe4ffa
BLAKE2b-256 4808666d7ef5c0e3461be2e4396a03f90d07bc818c7f6542f727e6278dabe58c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page