All tools
ToolWrite

Checkpoint research task

checkpoint_research_task

After each meaningful step, save the updated plan, cursor, new findings with exact evidence ids, and tool calls used; pass expectedVersion from the latest read.

When to use it

After each meaningful step, save the updated plan, cursor, new findings with exact evidence ids, and tool calls used; pass expectedVersion from the latest read.

Typical workflow

List existing Threads first, inspect the case file, then add exact evidence, propose a revision, or start one bounded run and poll it to a terminal state.

What it returns

The updated task and new version. Budget limits are enforced here and return a visible error when exceeded.

Avoid using it when

Do not checkpoint hidden reasoning or unverified claims; store findings as evidence-linked observations.

Advanced input contract

Agent hosts use this JSON Schema to validate the exact input shape.

View full registry notes

Save progress on a research task: replace the plan or cursor, append evidence-linked findings, and report tool calls used. Pass expectedVersion from your latest read; budgets are enforced and exceeded limits return a visible error. Use when: After each meaningful step, save the updated plan, cursor, new findings with exact evidence ids, and tool calls used; pass expectedVersion from the latest read. Avoid when: Do not checkpoint hidden reasoning or unverified claims; store findings as evidence-linked observations.

View JSON Schema
{
  "type": "object",
  "properties": {
    "taskId": {
      "type": "string",
      "format": "uuid"
    },
    "expectedVersion": {
      "type": "integer",
      "minimum": 1
    },
    "plan": {
      "type": "array",
      "maxItems": 30,
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          },
          "label": {
            "type": "string",
            "minLength": 1,
            "maxLength": 300
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "running",
              "complete",
              "failed",
              "skipped"
            ]
          }
        },
        "required": [
          "id",
          "label"
        ],
        "additionalProperties": false
      }
    },
    "cursor": {
      "type": "object",
      "additionalProperties": true
    },
    "findings": {
      "type": "array",
      "maxItems": 50,
      "items": {
        "type": "object",
        "properties": {
          "summary": {
            "type": "string",
            "minLength": 1,
            "maxLength": 4000
          },
          "stance": {
            "type": "string",
            "enum": [
              "supports",
              "challenges",
              "context"
            ],
            "default": "context"
          },
          "evidence": {
            "type": "array",
            "maxItems": 20,
            "items": {
              "type": "object",
              "properties": {
                "sourceType": {
                  "type": "string",
                  "enum": [
                    "file",
                    "document",
                    "artifact",
                    "claim",
                    "thread",
                    "observation",
                    "url"
                  ]
                },
                "sourceId": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "url": {
                  "type": "string",
                  "format": "uri",
                  "maxLength": 2000
                },
                "excerpt": {
                  "type": "string",
                  "maxLength": 2000
                }
              },
              "required": [
                "sourceType"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "summary"
        ],
        "additionalProperties": false
      }
    },
    "toolCallsUsed": {
      "type": "integer",
      "minimum": 0,
      "maximum": 5000
    },
    "note": {
      "type": "string",
      "maxLength": 2000
    }
  },
  "required": [
    "taskId"
  ],
  "additionalProperties": false
}

Useful next tools