Function calling
Function calling is the API pattern most modern language models expose for tool use. The model returns structured arguments to a registered function instead of free-form text. The runtime executes the function and feeds the result back.
Why it matters
Function calling is the lower-level mechanic underneath tool use. The model is presented with a JSON-schema description of available functions; when the model decides to call one, it returns a structured object naming the function and supplying typed arguments. The runtime parses the object, executes the function, and returns the result for the model to continue reasoning with.
The pattern matters because it makes tool use reliable. Free-form text is hard to parse; the model might describe the call in different ways across attempts, the runtime might mis-extract arguments, and the whole loop becomes brittle. Function calling collapses the parsing problem into a typed contract: the schema is the spec, the model fills it in, the runtime executes. Failures become tractable because the failure mode is "model returned invalid arguments" or "function returned an error," both of which are inspectable.
Most tool ecosystems today are built on function calling. The Model Context Protocol extends the pattern across processes, allowing tools to live in separate servers. Custom MCPs let any HTTPS endpoint participate in function calling without being baked into the agent.
How Ajeris handles this
Ajeris uses Anthropic's tool-use API as the underlying function-calling layer for its default Claude reasoning model. Each registered tool is described by a JSON schema; the model calls tools by name with typed arguments. The runtime executes, returns the result, and the agent loop continues. Custom MCP servers participate in the same loop through the MCP protocol.