agent holds the configuration a run needs: the environment it acts in, the model that drives it, and optional skills and instructions. Start with a pre-built agent from H, or create your own.
H’s pre-built agents and environments live under the reserved h/ namespace (for example h/web-surfer-flash and h/browser). They are H-maintained, read-only, and available to every organization. Agents you create have no prefix and are private to your org. See Authentication for how names are scoped.
Configure an agent
| Field | Required | Description |
|---|---|---|
name | Yes | Identifies the agent in your catalog and is the value you pass as agent when creating a session. |
environments | Conditional | The surfaces it acts on, like a browser. Required unless the agent is a pure manager that only delegates to subagents. |
description | Yes | A one-line summary of what the agent does. Also used for delegation: a parent agent reads it to decide whether to hand off a task. |
model | No | The Holo model that runs the agent. Defaults to holo3-122b-a10b; pass any Holo model id (for example holo3-1-35b-a3b for the faster Holo3.1) from the Models API. The choice also fixes the agent’s runtime profile (reasoning effort, concurrency, context window), which is not separately tunable. |
instructions | No | Appended to the system prompt to steer behavior. |
skills | No | Reusable instruction fragments the agent loads on demand. |
tools | No | Extra tools the agent can call from your own code. See Custom tools. |
subagents | No | Specialist agents this one can delegate to. Each runs as its own child session, in parallel, and returns a single answer the manager folds into its own. See Multi-agent. |
answer_format | No | A JSON Schema the final answer must conform to. When set, the agent returns structured output matching the schema instead of free-form text. Leave it unset for free-form text; override it per run with session overrides. |
environments, skills, or subagents entry is either a string catalog id or an inline object. A reference keeps the definition central and reusable; an inline object is handy for one-offs. For exact field constraints, see Create an agent.
Create your own
Create an agent once, then reference it byname in every session:
Pre-built agents
H maintains a catalog of configured agents under theh/ namespace. You can run them as-is, with no setup.
List them anytime with GET /api/v2/agents:
Endpoints
| Method | Path | Description |
|---|---|---|
POST | /api/v2/agents | Create an agent |
GET | /api/v2/agents | List agents |
GET | /api/v2/agents/{name} | Retrieve an agent |
PUT | /api/v2/agents/{name} | Update an agent |
DELETE | /api/v2/agents/{name} | Delete an agent |