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

# The Tool call object

> One attempt by the agent to use a patch. Nested inside a turn in the trace.

```json theme={null}
{
  "patch_ref": "send_payment@3",
  "interaction": "silent",
  "gate": "confirm",
  "status": "ok",
  "args": { "amount": "50", "currency": "USDC", "to": "jane" },
  "result": { "reference": "NIP-4419" },
  "request": { },
  "risk": { "base": "high", "effective": "high" },
  "reliability": { "idempotent": false, "retry": "never" },
  "started_at": "2026-08-30T12:00:03.010Z",
  "duration_ms": 240,
  "cost_credits": 0.0,
  "outcome": null
}
```

## Attributes

<ResponseField name="patch_ref" type="string" required>
  The patch and version — `key@version`.
</ResponseField>

<ResponseField name="interaction" type="enum" required>
  `silent`, `interactive`, `handoff`, or `proposed_action`.
</ResponseField>

<ResponseField name="gate" type="string">
  `confirm` when the call was held for human approval. Null otherwise.
</ResponseField>

<ResponseField name="status" type="enum" required>
  `pending`, `ok`, or `failed`. `pending` means in flight or waiting at a gate.
</ResponseField>

<ResponseField name="args" type="object">
  What the model chose to send, validated against the patch's input schema.
</ResponseField>

<ResponseField name="result" type="object">
  What came back, after redaction. On a rejected write this is `{ "declined": true, "detail": … }`.
</ResponseField>

<ResponseField name="request" type="object">
  The egress we actually made — method, URL, headers, body.
</ResponseField>

<ResponseField name="risk" type="object">
  `base` from the patch declaration, `effective` after any agent-level raise.
</ResponseField>

<ResponseField name="reliability" type="object">
  `idempotent` and `retry` mode, from the declaration.
</ResponseField>

<ResponseField name="duration_ms" type="integer">
  Wall time for the call.
</ResponseField>

<ResponseField name="cost_credits" type="number">
  Credits charged for this call, for priced patches.
</ResponseField>

<ResponseField name="outcome" type="object">
  Present on a `proposed_action` that has been resolved. Carries `state`, `detail`, and `created_at`. See [the Outcome object](/api-reference/outcome).
</ResponseField>

<Note>
  The trace does not expose a tool call's own id. To resolve a pending call — approving a write or reporting an outcome — take the `tool_call_id` from `pending_confirmation` or `pending_action` on `GET /v1/loom/threads`.
</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.