Чтобы получить чистый Markdown любой страницы, добавьте .md к URL страницы.
Для полного индекса документации см. https://api.vega.chat/docs/llms.txt.
Для полного содержания документации см. https://api.vega.chat/docs/llms-full.txt.
Для интеграции AI‑клиентов (Claude Code, Cursor и др.) подключитесь к MCP‑серверу по адресу https://api.vega.chat/docs/_mcp/server.

Применить патч

MD версия

Инструменты сервера находятся в бета‑версии. API и поведение могут измениться.

Инструмент сервера apply patch доступен только через Responses API. Он не поддерживается через Chat Completions API.

Только модели OpenAI передают результаты apply patch потоково, инкрементно через события response.apply_patch_call_operation_diff.delta. Все остальные модели возвращают полный патч как единый вывод инструмента.

Серверный инструмент openrouter:apply_patch позволяет моделям предлагать изменения файлов с помощью патчей V4A diff. Это строительный блок для кодирующих агентов — модель генерирует патч, описывающий создание, обновление или удаление файлов, VEGA проверяет синтаксис diff, а ваше приложение применяет его.

Как это работает

  1. Вы включаете { "type": "openrouter:apply_patch" } в массив tools при вызове Responses API.
  2. Исходя из диалога, модель решает, что файл необходимо создать, обновить или удалить, и генерирует патч V4A diff.
  3. VEGA проверяет синтаксис патча (правильные префиксы строк, допустимые маркеры, непустые пути).
  4. Если проверка проходит, вызов инструмента возвращается вашему приложению как элемент вывода apply_patch_call — ваше приложение применяет патч к файловой системе и возвращает результат обратно как apply_patch_call_output на следующем шаге.
  5. Если проверка не проходит, ошибка возвращается модели, чтобы она могла исправить себя.

Это инструмент с человеческим участием: VEGA проверяет diff, но никогда не применяет его. Ваше приложение отвечает за выполнение операции с файлом.

Быстрый старт

typescript
const response = await fetch('https://api.vega.chat/api/v1/responses', {
  method: 'POST',
  headers: {
    Authorization: 'Bearer {{API_KEY_REF}}',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    model: '{{MODEL}}',
    input: 'Create a hello.py file that prints "Hello, world!"',
    tools: [
      { type: 'openrouter:apply_patch' }
    ]
  }),
});

const data = await response.json();
// The response contains an apply_patch_call output item
// with the operation (create_file, update_file, or delete_file)
console.log(data.output);
python
import requests

response = requests.post(
  "https://api.vega.chat/api/v1/responses",
  headers={
    "Authorization": f"Bearer {{API_KEY_REF}}",
    "Content-Type": "application/json",
  },
  json={
    "model": "{{MODEL}}",
    "input": "Create a hello.py file that prints 'Hello, world!'",
    "tools": [
      {"type": "openrouter:apply_patch"}
    ]
  }
)

data = response.json()
# The response contains an apply_patch_call output item
# with the operation (create_file, update_file, or delete_file)
print(data["output"])
bash
curl https://api.vega.chat/api/v1/responses \
  -H "Authorization: Bearer {{API_KEY_REF}}" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "{{MODEL}}",
    "input": "Create a hello.py file that prints \"Hello, world!\"",
    "tools": [
      {"type": "openrouter:apply_patch"}
    ]
  }'

Операции патча

Инструмент поддерживает три типа операций, каждый из которых передаётся в поле operation элемента вывода apply_patch_call:

create_file

Создаёт новый файл. Каждая строка содержимого в diff должна начинаться с +:

json
{
  "type": "apply_patch_call",
  "call_id": "call_abc123",
  "status": "completed",
  "operation": {
    "type": "create_file",
    "path": "/src/hello.py",
    "diff": "+print(\"Hello, world!\")\n"
  }
}

update_file

Обновляет существующий файл, используя V4A diff с контекстными строками ( префикс), добавлениями (+) и удалениями (-):

json
{
  "type": "apply_patch_call",
  "call_id": "call_def456",
  "status": "completed",
  "operation": {
    "type": "update_file",
    "path": "/src/main.ts",
    "diff": "@@ function main() {\n-  console.log(\"old\");\n+  console.log(\"new\");\n }"
  }
}

delete_file

Удаляет файл. Diff не требуется — нужен только путь к файлу:

json
{
  "type": "apply_patch_call",
  "call_id": "call_ghi789",
  "status": "completed",
  "operation": {
    "type": "delete_file",
    "path": "/src/deprecated.ts"
  }
}

Отправка результатов

После того как ваше приложение применит (или отклонит) патч, отправьте результат обратно на следующем шаге как элемент ввода apply_patch_call_output:

json
{
  "model": "openai/codex-mini",
  "input": [
    {
      "type": "apply_patch_call_output",
      "call_id": "call_abc123",
      "status": "completed",
      "output": "Applied patch to /src/hello.py"
    }
  ],
  "tools": [
    { "type": "openrouter:apply_patch" }
  ]
}
ПолеТипОписание
call_idstringДолжен совпадать с call_id из apply_patch_call
status"completed" или "failed"Указывает, был ли патч успешно применён
outputstring (optional)Человекочитаемый журнал того, что произошло

Конфигурация

Инструмент apply patch принимает необязательный параметр engine:

json
{
  "type": "openrouter:apply_patch",
  "parameters": {
    "engine": "auto"
  }
}
ПараметрТипПо умолчаниюОписание
enginestringautoauto — использует нативный пропуск, когда конечная точка поддерживает потоковую передачу diff, иначе переходит к валидатору HITL VEGA. native — принудительно использует нативный пропуск (при отсутствии поддержки переходит к HITL). openrouter — всегда использует валидатор HITL, даже на конечных точках с нативной поддержкой.

Поведение движка

  • Native passthrough передаёт diff инкрементно через события response.apply_patch_call_operation_diff.delta, соответствуя формату потоковой передачи OpenAI. В настоящее время поддерживается на конечных точках OpenAI.
  • HITL (human-in-the-loop) буферизует полный diff и доставляет его как единый атомарный элемент вывода apply_patch_call.

Ценообразование

Инструмент apply patch не имеет дополнительных расходов сверх стандартного использования токенов.

Следующие шаги