Перейти к основному содержимому

For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://docs.nvidia.com/dynamo/llms.txt. For full content including API reference and SDK examples, see https://docs.nvidia.com/dynamo/llms-full.txt.

Вызов инструментов

简体中文

Dynamo может подключать модели к внешним инструментам и сервисам, разбирая синтаксис вызова инструментов из сырого вывода модели и представляя его как совместимые с OpenAI tool_calls в ответе. Вызов инструментов управляется параметрами запроса tool_choice и tools в API chat completions.

В Dynamo есть два способа разбора вызовов инструментов, в зависимости от того, находится ли парсер в собственном реестре Dynamo или во frontend движка выше по стеку (vllm serve, sglang serve или trtllm-serve).

Выберите путь разбора

ПутьКогда использоватьСтраница
DynamoDynamo поставляет независимый от фреймворка Rust-парсер для формата вызова инструментов модели. Путь по умолчанию.Разбор вызовов инструментов (Dynamo)
Engine FallbackИспользуйте реализацию парсера фреймворка (сегодня это vLLM или SGLang; TRTLLM в работе) для предварительной и последующей обработки, включая разбор вызовов инструментов и reasoning, чтобы сохранить поведение фреймворка.Разбор вызовов инструментов (резервный путь движка)

Сначала используйте путь Dynamo. Переходите к пути движка только тогда, когда реестр Dynamo не содержит парсер для вашей модели.

Почему Dynamo реализует парсеры вызовов инструментов и reasoning

В vllm serve, sglang serve и trtllm-serve разбор вызовов инструментов и разбор reasoning выполняются во frontend-сервере движка, причем поведение между ними имеет тонкие различия. Ради производительности Dynamo управляет маршрутизацией и токенизацией, передает токены напрямую в каждый LLM-движок и обходит frontend OpenAI API сервера каждого движка, чтобы избежать дублирования работы на каждый запрос.

Поэтому Dynamo реализует разбор вызовов инструментов и reasoning во frontend в виде независимого от фреймворка Rust-слоя. Это дает Dynamo один проверенный OpenAI-совместимый контракт для vLLM, SGLang, TRTLLM и других воркеров, при этом сохраняется высококонкурентный и масштабируемый hot path обслуживания без узких мест Python GIL.

Устранение неполадок

Если вызов инструмента возвращается некорректно, добавьте logprobs: true в один запрос для воспроизведения и поделитесь ответом. См. Устранение неполадок при вызовах инструментов, чтобы понять, что собирать и включать в отчет о проблеме.

Дополнительно: structural tags

При необходимости можно включить xgrammar structural tags, чтобы guided decoding на уровне токенов совпадал с форматом вызова инструментов парсера. См. Structural tag (guided decoding for tool calls).

См. также

  • Устранение неполадок при вызовах инструментов -- снимайте сырой вывод модели с logprobs, чтобы локализовать проблемы с вызовом инструментов.
  • Reasoning -- отделяет reasoning_content от содержимого assistant для моделей chain-of-thought. Некоторым моделям нужно одновременно настроить и парсер вызовов инструментов, и парсер reasoning.
  • Frontend Configuration Reference -- полный справочник по флагам CLI.
  • Structural tag (guided decoding) — необязательные ограничения xgrammar, согласованные с парсерами вызовов инструментов Dynamo.