Skip to main content

First Tool Call

The goal of this step is not to cover the entire tool system, but to first let you know:

  • What the "first tool call" in AI4J is really about
  • Why Function Call, Skill, and MCP must be kept distinct
  • Which topic tree you should follow next

1. Which kind of Tool this page focuses on​

This page first covers the most common first tool track:

  • Local Java Function Call / Tool

That is:

  • tool schema is declared inside your local application
  • tool execution happens inside your local application
  • the model decides whether to use it via tool-call semantics

This is usually the best entry point for most Java users to understand the "first Tool Call".

2. First, tell these three things apart​

  • Function Call: local Java tool declaration and invocation
  • Skill: discoverable, on-demand-read methodology resource
  • MCP: protocol-based integration of external capabilities

They are all foundation capabilities, but they are not the same concept.

3. What the first Tool Call actually proves​

Once the first local tool call works, what you have actually verified is:

  • the model has seen an invocable tool
  • the model can decide to call it
  • the tool-call arguments can reach the execution layer
  • the execution result can return to the model's main flow

So the "first Tool Call" is not just an extra function name — it is the moment the model's call chain first enters the "invocable capability" stage.

4. The shortest Function Call example​

ChatCompletion req = ChatCompletion.builder()
.model("gpt-4o-mini")
.message(ChatMessage.withUser("Look up Beijing weather and give a suggestion"))
.functions("queryWeather")
.build();

ChatCompletionResponse resp = chatService.chatCompletion(req);

This pipeline goes through tool exposure and execution by default.

5. Why Skill is not a tool​

A Skill itself is not called directly by the model.

It is more like:

  • a SKILL.md file
  • an on-demand-read method description

Typically the model first sees the skill list, then reads the relevant SKILL.md via read_file.

In other words, a Skill is more like:

  • a documentation asset
  • a template asset
  • a methodology asset

rather than the structured, executable capability itself.

6. Why MCP is not a subset of local tools either​

MCP is not only about tools — it also covers:

  • resource
  • prompt
  • transport
  • gateway
  • server publish

So in the documentation structure it sits at the same level as Tools.

More precisely:

  • Function Call first solves "how local tools are exposed and executed"
  • MCP then solves "how external capabilities are integrated by protocol"

If you want to keep following the local-tool track next, read on:

  1. Core SDK / Tools
  2. Core SDK / Function Calling
  3. Core SDK / Tool Execution Model

If you want to nail down the conceptual boundaries next, read:

  1. Core SDK / Skills
  2. Core SDK / Skills / Skill vs Tool vs MCP
  3. MCP

If the first tool call did not fire here, go back to: