Managing Agents (Tab: General)
The Agents screen (/instances in the sidebar — the route slug is preserved, only the UI label changed) is where you create, list, edit, export, and delete assistants. This is the main hub of operational work. The API, slug fields, and database table name (instances) remain unchanged: “Agent” is purely the UX-facing term.
Listing agents
The agents page supports two view modes — toggle in the top-right:
- List view. Tabular: name, slug, provider, model, status, last activity. Best for browsing many agents.
- Grid view. Card grid with the agent icon prominent. Best for visually distinguishing a small number of agents.
The list is rendered in the order returned by the API — there is no client-side sort.
Active / All filter
A segmented control next to the view-mode toggle switches between two scopes:
- Active (
instances.filter.activeOnlyi18n key) — shows only agents withstatus = active. This is the default. - All (
instances.filter.alli18n key) — shows every agent, including disabled ones.
The choice — together with the list/grid view-mode toggle — is persisted in the browser via the instances-show-inactive and instances-view-mode localStorage keys. Neither affects the API itself.
Top action-bar Save
Across every tab on an agent’s detail page, the Save button lives in the top action bar (powered by the usePageSaveAction hook). Per-tab Save buttons no longer exist — every editable surface (General, Prompts, Tools, Skills, Settings, Channels, Room) routes its pending state through the same top-of-page button, which is disabled when there are no changes and shows a spinner while saving.
Creating an agent
Click New Agent. The dialog asks for:
- Name. Free-form display name (any UTF-8). Shown in lists, in conversations, and on the Playground selector.
- Slug. URL-safe identifier (lowercase, alphanumeric, hyphens). The slug is immutable once saved and is the model id used in
/v1/chat/completions. - Description. Free-form text, useful for discriminating similar instances.
- Icon. Optional image, uploaded via the
IconUploadwidget and stored as a data URI.
When you save, the engine seeds the new instance with:
- The eight default prompt sections (see Prompts tab).
- The default tool set:
readSkillandspawnTask(seepackages/engine/src/instances/defaults.ts→DEFAULT_TOOL_NAMES). - An empty skills list.
- Default flags:
memoryEnabled = true,knowledgeEnabled = false,langsmithEnabled = false,authEnabled = false.
The instance is active by default. You can disable it later; see “Disabling and deleting” below.
Editing an instance
Clicking an instance opens the detail page. The instance detail page exposes several tabs (General, Prompts, Tools, Skills, Knowledge, Settings, Channels, Analytics, Triggers, Room) — the exact set depends on enabled features, and the list evolves as new features land. Each tab gets its own page in this section. The detail page also has an Export button in the page header that downloads a JSON bundle of just this single instance (the same format as the bulk Export described below).
The Name, Description, and Icon are editable from the General tab. The slug is not editable.
Tab: General
The General tab is the instance’s identity card.
Editable fields
- Icon — uploaded via the
IconUploadwidget (image, stored as a data URI). - Name — display name, shown everywhere.
- Description — free-form, often used to tell similar instances apart.
- Status switch — toggles between
activeandinactive. The status switch lives on this General tab; the agents list does not expose it inline.
Read-only fields
- Slug — the immutable URL-safe identifier (shown disabled in the form). To change a slug, create a new instance and use export/import to copy the configuration over.
Slug rules
- Lowercase ASCII letters, digits, and hyphens only.
- Must start with a letter.
- Length: 2 to 64 characters.
- Reserved slugs (
admin,api,health,v1) are rejected.
Who can edit
Both Superadmin and User can edit General fields, provided they have access to the instance. (Today, all authenticated users see all instances; multi-tenant isolation is on the roadmap.)
Exporting and importing
The Instances page supports two bulk actions:
- Export. Downloads a JSON bundle of one or more selected instances. The bundle includes prompts, enabled tools, enabled skills (with version pins), channel configuration shape (without secrets), and room configuration. Secrets and channel credentials are stripped — the export is safe to share.
- Import. Uploads a JSON bundle. Conflicting slugs are surfaced for confirmation; you can choose to overwrite or rename on the fly.
Use export/import to move instance configuration between environments (staging to production) or to share a working configuration with a colleague.
Disabling and deleting
An instance has three operations on its lifecycle:
- Disable. Status flips to
inactive. Channels stop. The instance is no longer visible in the OpenAI-compatible API’s/v1/modelslist. Conversations and history are kept. - Re-enable. Status flips back to
active. Channels do not auto-restart; you must start them manually. - Delete. Permanently removes the instance and all its scoped data: conversations, messages, memories, audit logs for that instance, room configuration, and event sources. There is no undo. A confirmation dialog requires you to type the slug.
Tip. When in doubt, prefer disable over delete. Disabled instances cost nothing and can be restored.