Skip to content

Allow configurable continuation limits when max_iterations is reached #4560

Description

@topabomb

Description

Allow configurable continuation limits when max_iterations is reached

Version: Docker Agent v1.149.0
Usage: docker agent serve api with a custom web frontend

Problem

When an agent reaches max_iterations, approving continuation always grants exactly 10 additional iterations, regardless of the configured limit.

For example, with max_iterations: 500, the agent pauses after 500 iterations. Approving continuation raises the limit to 510, then 520, and so on. This requires frequent manual confirmation during legitimate long-running tasks, such as browser automation or multi-step coding work.

The initial limit is configurable, but the continuation increment is hardcoded:

newMax := iteration + 10

Source: [pkg/runtime/loop_steps.go](https://github.com/docker/docker-agent/blob/v1.149.0/pkg/runtime/loop_steps.go#L108-L115)

The [resume API request](https://github.com/docker/docker-agent/blob/v1.149.0/pkg/api/types.go#L176-L180) exposes no parameter for changing this behavior.

Steps to reproduce

  1. Configure an agent with max_iterations: 500.
  2. Run a task that reaches the limit.
  3. Approve continuation through the session resume API.
  4. Observe that the agent can execute only 10 additional iterations before requesting confirmation again.

Proposed behavior

Allow the user to choose between:

  • Continue for N additional iterations, with the original configured limit as a sensible default.
  • Continue without an iteration limit for the current run.

Ideally, expose this through optional parameters on the existing resume API so custom clients can offer these choices without repeatedly auto-approving 10-iteration extensions.

These choices should affect only the current run’s iteration budget. They should not change tool approval policies, future runs, or unrelated execution limits.

For backward compatibility, requests without the new parameters could retain the existing +10 behavior.

Why this matters

An iteration limit is a useful checkpoint. Once the user explicitly approves a longer continuation, a fixed increment of 10 creates unnecessary interruptions and makes the API difficult to use for long-running workflows.

Expected Behavior

No response

Actual Behavior

No response

Steps to Reproduce

No response

Docker Agent version

No response

OS & terminal

No response

Model used

No response

Error output

Screenshots

No response

Additional context

No response

Activity

  1. added theissue type on Oct 9, 2026
  2. added
    area/apiFor features/issues/fixes related to the usage of the cagent API
    area/runtimeRuntime engine, agent loop execution, tool dispatch, loop detection
    area/sessionsFor features/issues/fixes related to session lifecycle (resume, persistence, export)
    on Oct 9, 2026
  3. changed the issue type fromtoon Oct 9, 2026
  4. Bhavesh189 commented on Oct 10, 2026

    @Bhavesh189

    @topabomb can you assign this issue to me?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/apiFor features/issues/fixes related to the usage of the cagent APIarea/runtimeRuntime engine, agent loop execution, tool dispatch, loop detectionarea/sessionsFor features/issues/fixes related to session lifecycle (resume, persistence, export)

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions