JavaRush
AI Academy
new
Promotion
Learning
Courses
Tasks
Quizzes
Games
Help
Schedule of nudges
Internship
Community
Users
Forum
Chat
Articles
Success stories
Activities
Reviews
Subscriptions
Light theme

Lectures

  • Reviews
  • About us
  • CS50
Start
Start learning
Start learning
  • My progress
  • Courses
  • Quest map
  • Lectures
  • How GPT decides to call a tool: the tool-call model and the role of descriptions

    ChatGPT Apps
    4 level,0 lecture
    In this lecture, we examine the “brain” of ChatGPT Apps: how the model chooses between a regular text reply and a tool call ( tool-call), what exactly it sees (system prompt, the list of tools, the conversation history), why name/ description/ inputSchema are critical, what a call looks like at the API level ( tool_calls, finish_reason), and how permissions/annotations ( readOnly, destructive) influence model behavior and UX.
    Open
  • Describing tools: JSON Schema, typing, annotations

    ChatGPT Apps
    4 level,1 lecture
    In this lecture, we cover how to describe tools in MCP and ChatGPT Apps using JSON Schema: how inputSchema is structured, why it is part of the model’s “prompt,” how to write a good description, when to use enum and constraints ( minItems, format). Then we build a “single source of truth” in TypeScript via Zod + zod-to-json-schema, discuss issues with optional fields, and show the role of _meta/annotations (for example, readOnlyHint, destructiveHint, openai/outputTemplate) for UX and safety.
    Open
  • Server-side implementation of tools: from call to response

    ChatGPT Apps
    4 level,2 lecture
    We walk through the server path of tool invocations in the Apps SDK + MCP ecosystem: how ChatGPT calls a tool via JSON-RPC, where the MCP server lives in the Next.js template ( app/mcp/route.ts), how to design the inputSchema and return the result via content and structuredContent, how to bind the UI through _meta and openai/outputTemplate, as well as how to do validation, authorization, work with external APIs, logging, and error handling.
    Open
  • Handling tool results in the widget: ToolOutput → UI

    ChatGPT Apps
    4 level,3 lecture
    We break down the full data path from the server tool to the React UI in ChatGPT Apps: how ToolOutput arrives in the widget via the Apps SDK, how structuredContent, content, and _meta differ, how to safely read toolOutput via hooks ( useWidgetProps) instead of directly accessing window, and how to build UI states (loading/empty/error) around the tool call result.
    Open
  • Errors, idempotency, and designing “safe” tools

    ChatGPT Apps
    4 level,4 lecture
    In this lecture, we discuss why in ChatGPT Apps the same tool can be invoked more than once (retries, Regenerate, network glitches), how to design idempotent operations via idempotency_key, how to return errors so that both the model and the UI understand them consistently ( ok/ error, code, retryable), and how to safely configure a widget via text/html+skybridge and _meta (CSP, domain, visual flags).
    Open
Learn
  • Registration
  • Java course
  • Help with tasks
  • Pricing
Community
  • Users
  • Articles
  • Forum
  • Chat
  • Success stories
  • Activities
Company
  • About us
  • Contacts
  • Reviews
  • FAQ
  • Support
JavaRushJavaRush — is an interactive online course for learning Java programming from scratch. It contains 1200 practical tasks with one-click solution checking, the necessary minimum of theory on Java basics, and motivating features that help you complete the course: games, quizzes, interesting projects and articles on effective learning and the career of a Java developer.
Follow us
Язык интерфейса
Русский
English
Українська
"Programmers are not born" © 2026 JavaRush
MastercardVisa
"Programmers are not born" © 2026 JavaRush