0Pricing
AI Agents · Урок

Выбор инструментов во время выполнения

Позвольте модели выбирать инструмент, принудительно задавайте конкретный инструмент или предоставляйте только инструменты, актуальные для текущего состояния.

«Выбор инструментов во время выполнения» — бесплатный урок AI Agents на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AI Agents, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AI Agents содержит 4 уроков всего.

Позвольте модели выбрать

По умолчанию Вы передаёте модели список инструментов, и она решает, какой из них вызвать или не вызывать вовсе. Это стандартный режим, который хорошо работает, когда:

  • у Вас от 5 до 15 инструментов;
  • у инструментов ясные и непохожие друг на друга описания;
  • подходящий инструмент зависит от входных данных пользователя.

tool_choice: auto

Режим по умолчанию: модель принимает решение:

response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=messages,
    tools=tools,
    tool_choice='auto',  # default; can be omitted
)

tool_choice: required

Заставьте модель вызвать SOME инструмент — любой из них:

response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=messages,
    tools=tools,
    tool_choice='required',
)
# Model must return a tool_call, never a free-form answer

Принудительный выбор конкретного инструмента

Чтобы принудительно выбрать один конкретный инструмент, укажите его имя:

response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=messages,
    tools=tools,
    tool_choice={'type': 'function', 'function': {'name': 'extract_entities'}},
)

tool_choice: none

Отключите инструменты на один ход:

# After a tool result, you might want a pure text response:
response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=messages,
    tools=tools,
    tool_choice='none',
)

Сокращение списка инструментов по контексту

При выборе из больших наборов модели работают хуже. Предоставляйте только инструменты, актуальные для текущего состояния:

def relevant_tools(state):
    if state == 'authenticated':
        return [search_orders, refund_order, escalate]
    elif state == 'guest':
        return [search_products, contact_support]
    return []

Двухэтапный выбор инструментов

Для 50 и более инструментов используйте иерархию:

  1. Внешний агент выбирает область (заказы / платежи / доставка)
  2. Внутренний агент выбирает конкретный инструмент в этой области

Каждый вызов видит только около 10 инструментов.

Векторный поиск по инструментам

Создайте векторное представление описания каждого инструмента; во время выполнения создайте векторное представление запроса пользователя и выберите K наиболее подходящих инструментов:

from openai import OpenAI
import numpy as np

query_emb = embed(user_query)
sims = [cosine(query_emb, tool.emb) for tool in all_tools]
top = [t for _, t in sorted(zip(sims, all_tools), reverse=True)[:10]]
# Send only these 10 to the model

tool_choice в Anthropic

Anthropic использует ту же концепцию, но в другой форме:

tool_choice = {'type': 'auto'}
print("auto:", tool_choice)
tool_choice = {'type': 'any'}                              # required
print("any (required):", tool_choice)
tool_choice = {'type': 'tool', 'name': 'get_weather'}      # specific
print("specific tool:", tool_choice)
tool_choice = {'type': 'none'}
print("none:", tool_choice)

Зачем принудительно выбирать конкретный инструмент?

Это полезно в следующих случаях:

  • проверка — извлечение одного конкретного структурированного поля;
  • маршрутизация — пользователь нажал «возврат», поэтому нужно вызвать refund_order;
  • структурированный вывод — использование вызова инструмента для получения JSON.

Пустые списки инструментов

Если передать tools=[] вместе с tool_choice="required", возникнет ошибка. Всегда проверяйте список инструментов перед отправкой.

Принудительный вывод JSON

Зачем может понадобиться принудительно вызвать конкретный инструмент?

Итоги

Используйте автоматический выбор в большинстве случаев. Принудительно выбирайте инструменты для маршрутизации и структурированного извлечения данных. Сокращайте список инструментов в зависимости от состояния, чтобы выбор оставался точным.

Часто задаваемые вопросы

Урок «Выбор инструментов во время выполнения» бесплатный?

Да — полный текст урока «Выбор инструментов во время выполнения» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AI Agents, подпишись на CoddyKit PRO. Курс AI Agents содержит 4 уроков всего.

Чему я научусь в уроке «Выбор инструментов во время выполнения»?

Позвольте модели выбирать инструмент, принудительно задавайте конкретный инструмент или предоставляйте только инструменты, актуальные для текущего состояния. Ты практикуешь AI Agents с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать AI Agents?

Предыдущий опыт не требуется. AI Agents на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Выбор инструментов во время выполнения»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке AI Agents?

Да. Каждый урок AI Agents включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Как работает вызов функций
  2. Определение схем инструментов (JSON Schema)
  3. Выбор инструментов во время выполнения
  4. Возврат результатов модели
← Назад к AI Agents