Skip to main content
POST
Create an agent
Creates a new custom agent in your catalog. Once created, reference it by name (e.g. "agent": "my-research-bot") when creating a session, and its environments, skills, and subagents are pulled from the stored configuration. Returns 201 with the created Agent object.

Request body

The body is the Agent object. See that page for the full meaning of each field; the constraints that matter when creating one are below.
name
string
required
Catalog identifier, kebab-case with an optional single org/ namespace prefix. The h/ prefix is reserved for H’s catalog (rejected with 403) and marks the agent as reserved; any other name creates a custom agent, private to your organization. 1 to 127 characters, immutable after creation.
description
string
required
What the agent does. Read by parent agents to decide what to delegate.
environments
array
At most one per kind. Each item is a string catalog id or an inline Browser environment spec. Required unless the agent only delegates to subagents (a pure manager needs none).
model
string
Holo model that runs the agent. Defaults to holo3-122b-a10b; pass any Holo model id (for example holo3-1-35b-a3b) listed in the Models API. Omit to take the default.
instructions
string
Steering text appended to the system prompt.
skills
array
Skills available to the agent, as catalog id strings or inline Skill specs.
subagents
array
Agents this one can delegate to, as catalog id strings or inline agent specs.
answer_format
object
A JSON Schema the agent’s final answer must conform to. When set, the agent returns structured output matching the schema instead of free-form text. Omit it for free-form text; callers can also set or override it per run with session overrides.
tools
array
Custom tools the agent can call from your own code.

Examples

Response

Errors