Ports
Creating agents
An agent is a named, versioned configuration over the shared harness. You define which model it uses, which tools it may call, what slice of the KB it can see, and the hard budgets and guardrails it runs under. Manage agents at /w/<workspace>/agents. The runtime is described in Agents & the harness.
Create an agent
Name it
Give the agent a name and description. The name is slugified (lowercase, dashes) into theslugused in URLs and the API — e.g. "Budget Analyst" →budget-analyst.Choose a model slot
Pickagent(the default, top-tier) orchat. The slot resolves to whatever provider/model your workspace has bound to it — the agent config doesn't hard-code a model, so swapping providers is a one-line change. See Multi-provider AI.Pick tools
Select from the allowlist. The default is all five read-only KB tools:kb_search,kb_doc_read,kb_list_docs,kb_entity_lookup,kb_graph_query. Enabled MCP tools (namedmcp:<server>:<tool>) can be added; they require approval on every call.Scope the KB (optional)
Restrict what this agent can read withkbScope:folders,tags, and/orentityTypes. Scope is injected into every tool call by the registry — the model can't widen it.Set budgets & guardrails
Configure per-run budgets and whether citations are required, then save.
The config shape
A config is validated (and clamped) on every write. Budgets can never exceed the env-level ceilings (MAX_AGENT_STEPS, MAX_AGENT_COST_USD).
Budgets & guardrails, explained
maxSteps— model-call iterations before a graceful stop.maxTokens/maxCostUsd— token and dollar ceilings; every harness call (retries, judge) draws them down, so the cap is real.maxWallClockMs— wall-clock limit (default 180s).guardrails.citations.required— when true, an answer without valid citations is retried and then blocked. The groundedness judge always runs but only flags.
Immutable versions
Every save publishes a new immutable agent_version (v1, v2, …). Runs pin the version they used, so an eval regression compares like-for-like and every improvement is attributable to a specific config. You never mutate a version — you publish a new one.
Ownership
Run it
Start a run from the agent's page, from the run view, or programmatically via POST /api/v1/agents/:slug/runs. Schedule recurring runs in Cost & schedules.
Endpoints
GET/POST /api/w/:workspaceId/agents— list / create.GET /api/w/:workspaceId/agents/:slug— the agent with its latest version.POST /api/w/:workspaceId/agents/:slug/versions— publish a new version.