0Pricing
AI Agents · Lekcja

Definiowanie schematów narzędzi (JSON Schema)

Pisz definicje JSON Schema dla parametrów narzędzi, uwzględniając typy, opisy, wartości enum oraz pola wymagane.

Definiowanie schematów narzędzi (JSON Schema) to bezpłatna lekcja AI Agents na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej AI Agents, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Agents zawiera 4 lekcji w sumie.

Schematy narzędzi to JSON Schema

OpenAI, Anthropic i większość pozostałych dostawców używa JSON Schema dla parametrów narzędzi.

Jeśli używali Państwo OpenAPI / Swagger, znają już Państwo 90% tego zagadnienia.

Trzy wymagane pola

Każda definicja narzędzia zawiera:

  1. name — unikalny identyfikator (snake_case)
  2. description — opis działania narzędzia i sytuacji, w których należy go użyć
  3. parameters — JSON Schema danych wejściowych

Minimalny schemat

Obiekt z jednym wymaganym polem tekstowym:

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))

Typy JSON Schema

  • string — tekst
  • integer, number — liczby
  • boolean — prawda/fałsz
  • array — lista (wymaga również items)
  • object — słownik (wymaga również properties)

Enumy dla zamkniętych zbiorów

Należy użyć enum, gdy istnieje dokładnie N dozwolonych wartości:

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'])

Parametry tablicowe

W przypadku danych wejściowych w postaci listy należy ustawić items:

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

Obiekty zagnieżdżone

Obiekty można zagnieżdżać, ale dla niezawodności modelu schematy powinny być płytkie (maksymalnie 2–3 poziomy):

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

Pola description mają kluczowe znaczenie

Model wybiera narzędzia i uzupełnia argumenty na podstawie description. Opisy należy traktować jak dokumentację 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'])

Tablica required

Wymagane pola należy oznaczać jawnie. Model będzie je zawsze uzupełniać, a pola opcjonalne tylko wtedy, gdy będzie to istotne:

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 Schema

Schematy można automatycznie generować na podstawie modeli 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()

Tryb ścisły (OpenAI Structured Outputs)

Dodanie strict: true i additionalProperties: false gwarantuje, że dane wyjściowe modelu będą dokładnie zgodne ze schematem:

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))

Znaczenie opisu

Dlaczego description narzędzia ma tak duże znaczenie?

Podsumowanie

Schematy sterują działaniem modelu. Dobre opisy, enumy dla zamkniętych zbiorów, tablice required i tryb ścisły to mechanizmy zwiększające niezawodność.

Często zadawane pytania

Czy lekcja „Definiowanie schematów narzędzi (JSON Schema)” jest bezpłatna?

Tak — pełny tekst „Definiowanie schematów narzędzi (JSON Schema)” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu AI Agents, przejdź na CoddyKit PRO. Kurs AI Agents zawiera 4 lekcji w sumie.

Co nauczysz się w „Definiowanie schematów narzędzi (JSON Schema)”?

Pisz definicje JSON Schema dla parametrów narzędzi, uwzględniając typy, opisy, wartości enum oraz pola wymagane. Ćwiczysz AI Agents z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć AI Agents?

Nie wymagamy żadnego doświadczenia. AI Agents w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Definiowanie schematów narzędzi (JSON Schema)”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji AI Agents?

Tak. Każda lekcja AI Agents zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Jak działa wywoływanie funkcji
  2. Definiowanie schematów narzędzi (JSON Schema)
  3. Wybór narzędzi w czasie działania
  4. Zwracanie wyników do modelu
← Powrót do AI Agents