Deprecated —
naive employees and /v1/employees. It drives the legacy orchestration runtime, which is FROZEN — it accepts no new capabilities. The durable runtime enforces policy at the tool boundary, not only at the gateway, and it is the only runtime new work is built on.Use instead: naive teams rosterThese routes keep answering. Nothing is removed and no response shape changes: the
deprecation is announced in headers only, which are purely additive. Every response
from this router carries Deprecation (RFC 9745 —
the value is a Structured Field Date, @ plus epoch seconds, not the boolean true
some pre-RFC clients look for),
Link rel="deprecation", Warning: 299 and X-Naive-Deprecation-Id: dep.primitive.employees.
There is no Sunset header, because this is frozen with no sunset date — a
Sunset on a frozen row would be a date the platform has not promised.Announced 2026-07-29. Level frozen. The freeze ends when
company_containers with provider='hermes' and status='running' reaches zero — not on a date.Replacement surface: the durable runtime API.curl -X POST https://api.usenaive.ai/v1/employees \
-H "Authorization: Bearer nv_sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"name": "Jordan Kim",
"role": "engineer",
"title": "Lead Engineer",
"department": "engineering"
}'
{
"employee": {
"id": "emp-abc-123",
"name": "Jordan Kim",
"role": "engineer",
"title": "Lead Engineer",
"department": "engineering",
"status": "idle",
"enabled": true,
"created_at": "2026-01-15T10:00:00Z"
}
}
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Employee display name — becomes the kanban assignee identifier |
role | string | No | Role: engineer, marketer, writer, sales, designer, researcher, support |
title | string | No | Job title |
department | string | No | Department |
metadata | object | No | Arbitrary metadata |
Behavior
Hiring creates a Hermes profile on disk withconfig.yaml, SOUL.md, and .env (LLM proxy credentials + Naive CLI access). The employee name is used as the kanban assignee — task assignment uses names, not UUIDs. The dispatcher automatically spawns workers for assigned tasks.