0Pricing
AI Agents · Урок

Определение схем инструментов (JSON Schema)

Создавайте определения JSON Schema для параметров инструментов, указывая типы, описания, допустимые значения и обязательные поля.

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

Схемы инструментов — это схема JSON

OpenAI, Anthropic и большинство других систем используют схему JSON для параметров инструментов.

Если Вы работали с OpenAPI / Swagger, то уже знаете 90% необходимого.

Три обязательных поля

Каждое определение инструмента содержит:

  1. name — уникальный идентификатор (в формате snake_case)
  2. description — что делает инструмент и когда его использовать
  3. parameters — схема JSON для входных данных

Минимальная схема

Объект с одним обязательным полем строкового типа:

schema = {
    'name': 'search_orders',
    'description': 'Find orders by customer email',
    'parameters': {
        'type': 'object',
        'properties': {
            'email': {
                'type': 'string',
                'description': 'Customer email address'
            }
        },
        'required': ['email']
    }
}
import json
print(json.dumps(schema, indent=2))

Типы схемы JSON

  • string — текст
  • integer, number — числа
  • boolean — true или false
  • array — список (также требует items)
  • object — словарь (также требует properties)

Перечисления для закрытых наборов

Используйте enum, когда существует ровно N допустимых значений:

unit_param = {
    'unit': {
        'type': 'string',
        'enum': ['C', 'F'],
        'description': 'Temperature unit'
    }
}
# The model will only ever output C or F
print(unit_param)
print("Allowed values:", unit_param['unit']['enum'])

Параметры-массивы

Для входных списков задайте items:

tags_param = {
    'tags': {
        'type': 'array',
        'items': {'type': 'string'},
        'description': 'List of tags to filter by'
    }
}
print(tags_param)

Вложенные объекты

Объекты можно вкладывать друг в друга, но для надёжности работы модели сохраняйте схемы неглубокими — не более 2–3 уровней:

filter_param = {
    'filter': {
        'type': 'object',
        'properties': {
            'min_price': {'type': 'number'},
            'in_stock': {'type': 'boolean'}
        }
    }
}
print(filter_param)

Поля описания имеют решающее значение

Модель выбирает инструменты и заполняет аргументы на основе description. Относитесь к описаниям как к документации API:

# Bad
bad = {'description': 'gets data'}

# Good
good = {'description': 'Fetch the most recent 50 orders for the given customer email. Returns order_id, status, total. Use this when the user asks about their order history or order status.'}
print("Bad description:", bad['description'])
print("Good description:", good['description'])

Массив required

Явно отмечайте обязательные поля. Модель будет заполнять их всегда, а необязательные — только при необходимости:

tool_params = {
    'parameters': {
        'properties': {
            'city': {'type': 'string'},
            'unit': {'type': 'string', 'enum': ['C', 'F']}
        },
        'required': ['city']
    }
}
print(tool_params)
print("Required fields:", tool_params['parameters']['required'])

Pydantic → схема JSON

Схемы можно автоматически создавать из моделей Pydantic:

from pydantic import BaseModel, Field

class SearchArgs(BaseModel):
    email: str = Field(description='Customer email')
    limit: int = Field(50, description='Max orders to return')

schema = SearchArgs.model_json_schema()

Строгий режим (структурированные выводы OpenAI)

Добавление strict: true и additionalProperties: false гарантирует, что вывод модели будет точно соответствовать схеме:

tools = [{
    'type': 'function',
    'function': {
        'name': 'get_weather',
        'strict': True,
        'parameters': {
            'type': 'object',
            'properties': {'city': {'type': 'string'}},
            'required': ['city'],
            'additionalProperties': False
        }
    }
}]
import json
print(json.dumps(tools, indent=2))

Важность описания

Почему description инструмента имеет такое большое значение?

Итоги

Схемы управляют поведением модели. Качественные описания, перечисления для закрытых наборов, массивы required и строгий режим — Ваши инструменты повышения надёжности.

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

Урок «Определение схем инструментов (JSON Schema)» бесплатный?

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

Чему я научусь в уроке «Определение схем инструментов (JSON Schema)»?

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

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

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

Сколько времени занимает урок «Определение схем инструментов (JSON Schema)»?

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

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

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

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

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