---
title: "decide_workflow_items: Decide workflow items"
description: "Answer an engine run paused on `items`: for every failed item the run is waiting on, retry it, edit its prompt and retry, or skip it."
canonical_url: "https://meetkuro.com/agents/tools/decide_workflow_items/"
updated: 2026-11-03
locale: "en"
tool: "decide_workflow_items"
scopes: ["generation.write"]
---

# decide_workflow_items

**Decide workflow items**

Answer an engine run paused on `items`: for every failed item the run is waiting on, retry it, edit its prompt and retry, or skip it. Read the open positions and the current revision from get_workflow_run's `recovery.items`; the decisions must cover exactly those positions, once each. quote=true prices the decisions and changes nothing.

## Scope

- `generation.write` — Makes, edits, imports, shares and deletes media in the account.

## Behaviour

- **Writes**: Creates or changes items in the caller's own account.
- **Can delete or overwrite**: Can delete, overwrite, cancel or withdraw something the caller already has, so a host should confirm it.
- **Stays in the account**: Stays inside the caller's private Kuro account: any media provider it calls acts on Kuro's account, and the result is visible to no one else.

## Inputs

| Name | Type | Required | Details |
| --- | --- | --- | --- |
| `run_id` | string | yes | uuid |
| `step_id` | string | yes | matches ^[a-z][a-z0-9_]*$ |
| `revision` | integer | yes | ≥ 0 |
| `decisions` | array of object | yes | at least 1 item |
| `quote` | boolean | no | — |

## Example call

A `tools/call` request with the required arguments only, each a placeholder read off the schema. Replace them before sending.

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "decide_workflow_items",
    "arguments": {
      "run_id": "00000000-0000-4000-8000-000000000000",
      "step_id": "<step_id>",
      "revision": 0,
      "decisions": [
        {
          "position": 0,
          "action": "retry"
        }
      ]
    }
  }
}
```

## Input schema

As the server sends it in `tools/list`:

```json
{
  "type": "object",
  "properties": {
    "run_id": {
      "type": "string",
      "format": "uuid"
    },
    "step_id": {
      "type": "string",
      "pattern": "^[a-z][a-z0-9_]*$"
    },
    "revision": {
      "type": "integer",
      "minimum": 0
    },
    "decisions": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "position": {
            "type": "integer",
            "minimum": 0
          },
          "action": {
            "type": "string",
            "enum": [
              "retry",
              "edit",
              "skip"
            ]
          },
          "prompt": {
            "type": "string",
            "minLength": 1,
            "maxLength": 6000
          }
        },
        "required": [
          "position",
          "action"
        ],
        "additionalProperties": false
      },
      "minItems": 1
    },
    "quote": {
      "type": "boolean"
    }
  },
  "required": [
    "run_id",
    "step_id",
    "revision",
    "decisions"
  ],
  "additionalProperties": false
}
```

## Related tools

- [`get_workflow_run`](https://meetkuro.com/agents/tools/get_workflow_run.md): Read a workflow run, its recorded steps, generations, and current checkpoint.

---

## About Kuro

Kuro is an AI picture studio: prompt-driven images, clips, voice-overs and music, and storyboard-backed films with consistent characters across every scene.

Agents connect over MCP and can generate directly:

```
claude mcp add kuro https://api.meetkuro.com/mcp --transport http
```

The app is at https://app.meetkuro.com and requires an account.

Each guide, model page, comparison and free tool page on this site (not a tool's variants, and not the index pages) has a Markdown twin at its own URL plus `.md`, and so do /benchmarks/, the English /agents/ page (as /agents.md) and the MCP tool reference. Every tool: https://meetkuro.com/agents/tools/
