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

# Server tool Apply patch

> Permita que um modelo proponha alterações validadas em arquivos enquanto a aplicação mantém o controle das gravações no sistema de arquivos.

A ferramenta `orq:apply_patch` permite que um modelo proponha alterações em arquivos. O **Toqan Router** valida a operação, o caminho e o diff. A aplicação recebe cada patch válido como uma chamada de função pendente e decide se vai aplicá-lo.

Esta é uma ferramenta com human-in-the-loop. O **Toqan Router** nunca grava no sistema de arquivos da aplicação.

## Início rápido

Os exemplos usam a configuração de cliente da [Visão geral das server tools](/docs/pt-BR/ai-gateway/features/server-tools.md). A Responses API é usada aqui porque expõe diretamente a chamada pendente e a saída seguinte.

```bash cURL theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl -X POST https://router.toqan.ai/eu/v3/router/responses \
  -H "Authorization: Bearer $TOQAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-5.4-mini",
    "input": "Create hello.txt containing the line Hello from Toqan Router",
    "tools": [
      { "type": "orq:apply_patch" }
    ]
  }'
```

```typescript TypeScript theme={"theme":{"light":"github-light","dark":"github-dark"}}
const response = await client.responses.create({
  model: 'openai/gpt-5.4-mini',
  input: 'Create hello.txt containing the line Hello from Toqan Router',
  tools: [{ type: 'orq:apply_patch' }] as any,
});

console.log(response.output);
```

```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
response = client.responses.create(
    model="openai/gpt-5.4-mini",
    input="Create hello.txt containing the line Hello from Toqan Router",
    tools=[{"type": "orq:apply_patch"}],
)

print(response.output)
```

## Operações de patch

O modelo fornece três argumentos na chamada pendente:

| Argumento | Tipo | Descrição |
| - | - | - |
| `operation` | string | `create_file`, `update_file` ou `delete_file`. |
| `path` | string | Caminho do arquivo. Caminhos que contêm `..` são rejeitados. |
| `diff` | string | Diff no estilo V4A. Use uma string vazia para `delete_file`. |

A validação depende da operação:

* `create_file`: toda linha não vazia do diff precisa começar com `+`.
* `update_file`: as linhas podem começar com um espaço, `+`, `-` ou `@@`, e o diff precisa conter uma adição ou uma remoção.
* `delete_file`: o diff precisa estar vazio.

Patches malformados são devolvidos ao modelo para correção dentro do loop de ferramentas. Apenas um patch válido chega à aplicação.

## Aplicar o patch

Leia a chamada de função `orq_apply_patch` pendente, revise-a e aplique-a na aplicação e, em seguida, envie uma saída de chamada de função padrão. Consulte [Tool calling e execução de funções](/docs/pt-BR/ai-gateway/features/tool-calling.md) para o loop de resposta.

O Apply patch não tem cobrança adicional além dos tokens do modelo. As chamadas não são incluídas em `usage.server_tool_use`.


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