Skip to main content

A deterministic, configurable control policy for agent workflows.

Project description

Agents that know when good enough is enough.

CI PyPI version Python versions License

BOUND

Coding agents are good at continuing. They are less good at knowing when to stop.

BOUND adds a deterministic control layer between agent execution and the next decision.

BOUND deterministic control loop for agent workflows

Put BOUND in your agent

Install BOUND:

Open the integration prompt for your agent and paste it into the agent's instructions, skills, rules, or planning context.

Recommended setup flow:

1. Install bound-policy
2. Open the integration prompt for your agent
3. Paste it into the agent
4. Let the agent inspect its own workflow and available hooks
5. Let it wire BOUND into meaningful execution boundaries
6. Run a real task

For the initial setup, use your agent's strongest architecture / planning mode or a stronger model if available.

That first pass should focus on:

current goal
        ↓
plan and meaningful step boundaries
        ↓
what success means for each step
        ↓
what evidence can actually be observed
        ↓
where BOUND should evaluate
        ↓
how ACCEPT / RETRY / REPLAN / ROLLBACK affect control flow

Once that integration is in place, normal execution can use the resulting contracts, evidence, and BOUND decisions deterministically.

BOUND does not decide what code the agent should write.

It decides whether the result of the current step is good enough to move on.


What happens inside the agent?

BOUND belongs after a meaningful execution step and before the agent decides whether to keep optimizing the same objective.

result = workflow.evaluate_step(
    contract=contract,
    evidence=evidence,
    criteria=criteria,
)

match result.decision:
    case "ACCEPT":
        continue_to_next_step()

    case "RETRY":
        retry_current_approach()

    case "REPLAN":
        choose_new_strategy()

    case "ROLLBACK":
        rollback()

The agent still owns:

  • planning
  • reasoning
  • tool use
  • code changes
  • execution

BOUND owns the control decision.


What BOUND uses

BOUND can evaluate observable evidence such as:

  • tests
  • lint and type checks
  • acceptance checks
  • expected and unexpected files
  • retries
  • tool calls
  • tokens
  • runtime
  • rollback availability

Next steps including more looking into semantic varibles.


Decisions

ACCEPT    Good enough. Continue.
RETRY     Make one focused correction.
REPLAN    Choose a materially different strategy.
ROLLBACK  Return to a safe state.

The goal is not to optimize forever.

The goal is to know when the current result is sufficient to continue.

Good enough is enough. Keep progressing.


Why BOUND?

A common agent loop looks like this:

task solved
    ↓
tests pass
    ↓
agent keeps refining
    ↓
more calls and changes
    ↓
possible regression

BOUND adds an explicit stopping policy:

task solved
    ↓
evidence collected
    ↓
BOUND evaluates
    ↓
ACCEPT
    ↓
continue

Learn how BOUND works

The scoring model, evidence mapping, thresholds, weights, and decision rules are documented separately:


Current status

BOUND is experimental.

The formula, heuristics, weights, and thresholds still need validation on real agent workloads.

The next milestone is dogfooding BOUND inside real coding agents and measuring whether it reduces unnecessary steps, calls, tokens, retries, and regressions without reducing task success.

License

MIT © Danny de Bree

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

bound_policy-0.4.0.tar.gz (1.6 MB view details)

Uploaded Source

Built Distribution

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

bound_policy-0.4.0-py3-none-any.whl (72.2 kB view details)

Uploaded Python 3

File details

Details for the file bound_policy-0.4.0.tar.gz.

File metadata

  • Download URL: bound_policy-0.4.0.tar.gz
  • Upload date:
  • Size: 1.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for bound_policy-0.4.0.tar.gz
Algorithm Hash digest
SHA256 57064ef878b64ab528c7b516817c73cbd93cc14c443b9c1e9aa5c53bfa44a5d8
MD5 7c72d509654bb3c75cf16d09ec030b6f
BLAKE2b-256 dd3f130b8b51c6ed87da85c6a6ecea62cc22add1ed93ab32da3e7685cfb6b5c5

See more details on using hashes here.

Provenance

The following attestation bundles were made for bound_policy-0.4.0.tar.gz:

Publisher: publish.yml on Danny-de-bree/bound

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bound_policy-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: bound_policy-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 72.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for bound_policy-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6d57cb66b7d602293769956711106e0076620daa72be573f306ded4d2fbe2cbd
MD5 10895fd5556fc7fb1e226e8ebe4b4421
BLAKE2b-256 c3cc3ea62524c5118225fb5c3588b0a7aa40aae6d711ba7b77a2c5467af55bf8

See more details on using hashes here.

Provenance

The following attestation bundles were made for bound_policy-0.4.0-py3-none-any.whl:

Publisher: publish.yml on Danny-de-bree/bound

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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