--- navigation: {"section":"Agents and reusable capabilities","sectionOrder":30,"order":10} --- # Hiring, configuration, and organization Operators hire agents, configure their identity and instructions, assign reporting relationships, and manage their lifecycle. Built-in agents have their own setup and lifecycle constraints. Feature ID: `agents`. Implementation: [hiring](../../ui/src/pages/NewAgent.tsx), [configuration](../../ui/src/components/AgentConfigForm.tsx), [organization](../../ui/src/pages/OrgChart.tsx). Agent access: [companion](../agent-access-map/agents.md). ## Sub-features - `hire`: `agents/hire` — choose identity, harness, model, and required account settings; edit reporting relationships through the agent configuration afterward. - `grok-bot`: `agents/grok-bot` — experimental existing-Bot agent setup through remote OAuth, routine credentials, and an authenticated two-way challenge; current contact, stop and explicit recovery. - `instructions`: `agents/instructions` — edit agent configuration and instruction files with durable revisions. - `organization`: `agents/organization` — inspect and change reporting relationships through supported controls. - `primary-agent`: `agents/primary-agent` — choose a personal primary agent for the company, confirm replacement, and inspect its roster/sidebar and task/chat defaults. - `lifecycle`: `agents/lifecycle` — pause/resume or retire an agent while preserving history. - `built-in`: `agents/built-in` — configure required agents without treating them as ordinary removable hires. - `api-keys`: `agents/api-keys` — create and inspect named agent credentials, copy a new token once, and revoke it without changing agent identity. - `managed-agent-setup`: `agents/managed-agent-setup` — probe, create, or adopt a qualified Anthropic managed-agent profile with pinned provider resources and retention acknowledgement. ## How to get to it (user POV) ### `hire-agent` Use New agent from the roster or `/agents/new`. Submitting the name creates an inactive record before adapter selection or account setup. A name-only draft returns to adapter selection when reopened. Save & exit keeps its configuration; Finish setup on the agent returns to the same record. Open an unfinished agent from the roster to reach its header. The header shows Finish setup instead of Run or Resume, including during computer preparation and verification. Terminating agents cannot reopen setup. Final submission requests approval when required, then follows the existing preparation and verification lifecycle. Agent-owned plugin environments prepare the saved draft in the background when their driver declares `requiresAgent`. The draft waits in `verifying` with its setup hold until hiring finishes. Changing environments keeps the selected account and Configure step, saves the selection, and invalidates its test. Preparation and failed-save retries remain visible without reconnecting. Companies requiring hire approval save the account with pending verification; resource allocation waits for approval. ### `agent-configuration` Open `/agents/:agentId` and the configuration/instruction surfaces it exposes. Open **Advanced** at `/agents/:agentId/advanced` for the complete agent [YAML configuration](../../doc/agent-configuration-yaml.md). Edit a name, budget, runtime setting, and adapter key; save, reload, and check the ordinary settings and Revisions. Try malformed YAML, a missing/unknown field, a removed nested key, and a concurrent settings edit. Errors must retain the draft; stale saves return a conflict. Unchanged secret markers must preserve their stored values. Navigating away with a draft must show the existing unsaved-change guard. **Reload saved** discards the draft. Also edit instruction text, skill pins, direct tool installs, channel settings/resources, permissions/trust/project boundaries, secret operations, and API key operations. Verify each result in its owning tab. Revision restore is an isolated save. Inherited access/history under `observed` is read-only. An interrupted multi-resource save must report partial progress, preserve returned one-time keys, and require reload before another save. Domain APIs retain their existing authorization; a multi-resource save is not atomic. For a low-trust agent, open **Permissions / Trust → Allowed projects**. An operator with agent-management permission can select additional projects and explicitly save them. Existing projects and other containment restrictions remain intact. Cancel discards the draft; a failed save retains it. Reload to verify persistence. This does not start or retry a task. In `/agents/all`, select roster checkboxes and choose **Edit connection & model**. A mixed selection offers one action per harness. Each field is opt-in. The editor previews each changed value and excludes agents already at the target value. Models must be compatible with every selected connection. Failed writes show per-agent errors; Retry touches only the remaining agents. Connection pools and externally managed agents are not editable through this shortcut. Verify connection-only, model-only, both fields, mixed-harness selection, hidden selections, no-op counts, incompatible models, partial failure and retry. Reload the roster and compare stored settings, including unrelated heartbeat and adapter fields. A concurrent configuration edit must return a conflict. Shared runtime validation, access checks, revisions and audit logging still apply. Live runs retain their existing settings; model changes can reset saved sessions. Connection adoption can require an explicit reset of existing sessions. ### `organization` Use the roster’s organization view; `/org` redirects to the roster in the streamlined shell. ### `personal-primary-agent` Open an agent profile and choose **Set as my primary**. Inspect its crown on the profile/roster and its position in the Agents sidebar, then open a new task or Chat. ### `agent-api-keys` Open `/agents/:agentId/api-keys` → **API Keys** with an authenticated person who can manage agents. The operator CLI also supports `paperclipai token agent create -C --agent --name