> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zeus.agentspro.cn/llms.txt
> Use this file to discover all available pages before exploring further.

# Resume Agent

> Resume an interrupted Agent execution — continue after HITL approval

When a tool triggers an HITL (Human-in-the-Loop) interrupt during Agent execution, the frontend collects the user's approval decision and uses this endpoint to resume execution.

Returns an **SSE streaming response**, continuing execution from the interruption point.

`user_id` is automatically extracted from the JWT Token and does not need to be passed in the body.

<ParamField header="Authorization" type="string" required>
  Bearer JWT Token (`user_id` is automatically extracted)
</ParamField>

<ParamField body="session_id" type="string" required>
  The interrupted session ID
</ParamField>

<ParamField body="llm_config" type="object" required>
  LLM model configuration (same as invoke)

  <Expandable title="llm_config">
    <ParamField body="baseUrl" type="string" required>
      API base URL
    </ParamField>

    <ParamField body="apiKey" type="string" required>
      API key
    </ParamField>

    <ParamField body="modelName" type="string" required>
      Model name
    </ParamField>

    <ParamField body="temperature" type="number" default="0.7">
      Temperature parameter
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="tool_call_results" type="array" required>
  List of tool call approval results

  <Expandable title="tool_call_result">
    <ParamField body="tool_call_id" type="string" required>
      Tool call ID
    </ParamField>

    <ParamField body="tool_name" type="string" required>
      Tool name
    </ParamField>

    <ParamField body="decision" type="string" required>
      Approval decision: `approved` | `rejected` | `modified` | `timeout`
    </ParamField>

    <ParamField body="result" type="string">
      Custom tool return value (used with `modified`)
    </ParamField>

    <ParamField body="original_parameters" type="object">
      Original tool parameters
    </ParamField>

    <ParamField body="modified_parameters" type="object">
      Modified tool parameters (used with `modified`)
    </ParamField>

    <ParamField body="rejection_reason" type="string">
      Rejection reason (used with `rejected`)
    </ParamField>

    <ParamField body="is_error" type="boolean" default="false">
      Whether to mark as an error
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="human_order" type="string">
  Human instruction — additional instructions passed to the Agent along with the approval result
</ParamField>

<ParamField body="hitl_config" type="object">
  Tool interrupt configuration (subsequent tool calls may still trigger interrupts)
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl --request POST \
    --url https://zeus-api.agentspro.cn/api/agent/resume \
    --header 'Authorization: Bearer <token>' \
    --header 'Content-Type: application/json' \
    --data '{
      "session_id": "sess_456",
      "llm_config": {
        "baseUrl": "https://api.openai.com/v1",
        "apiKey": "sk-...",
        "modelName": "gpt-4o"
      },
      "tool_call_results": [
        {
          "tool_call_id": "call_abc",
          "tool_name": "sandbox_exec",
          "decision": "approved"
        }
      ],
      "human_order": "Make sure to back up the files before executing"
    }'
  ```
</RequestExample>

<ResponseExample>
  ```text SSE Stream theme={null}
  data: {"type": "tool_result", "tool_name": "sandbox_exec", "result": "..."}
  data: {"type": "message_chunk", "content": "Operation completed. Files have been backed up."}
  data: {"type": "done", "session_id": "sess_456"}
  ```
</ResponseExample>
