holo4-27b, holo4-35b-a3b) and Holo3.1 (holo3-1-35b-a3b) speak the standard OpenAI tool-calling API, so they plug into agent frameworks that already do.
Read Core concepts first: reasoning, coordinates, observations, and the trim_to_last_n_images helper used below.
Declare tools
Pass tool schemas viatools, and set tool_choice="required" so the model acts on every step. Do not put tool-format examples in the system prompt. The model renders the call in its own native format from tools alone, and a conflicting example degrades quality. The example ships two tools (click, answer) for illustration. Real agents register a wider toolbox the same way, and the tools need not touch a screen: see Mix screen, code, and MCP tools.
Chat layout
Tool results go back astool-role messages keyed by tool_call_id:
A complete loop
The action comes back inmessage.tool_calls; each call carries a function.name, a JSON function.arguments string, and a unique id. There is no note field in this format: anything the model must carry across turns goes in the assistant content. Highlighted lines are the ones specific to function calling; everything else is the shared loop from Core concepts. Plug in your own screenshot() (browser, OS, emulator) and execute(name, args) dispatcher.
Mix screen, code, and MCP tools
Holo4 is trained on tasks that cross interfaces, so one toolbox can hold screen actions, a code runner, and the tools of an MCP server. The model picks one per step: it reads a page withclick, then switches to run_python for the arithmetic. Nothing else in the loop changes. MCP tools already carry a JSON schema, so they convert one to one:
Python
run_python to a sandbox, and MCP tool names to session.call_tool(name, args). Screenshots stay under the same 3-image budget whichever tool ran.
Browser agent
Playwright, screenshots in, clicks out.
Code agent
A Python runner as the only tool.
MCP agent
Any MCP server’s tools, passed as functions.
Hybrid agent
Browser and code in one loop.
Format-specific pitfalls
Next steps
Element localization
Get click coordinates from a screenshot.
API reference
Endpoint, models, parameters, and limits.