Create, configure, deploy, and monitor your AI workforce
The Agents page (AgentsPage) is the primary management interface for your AI agent fleet. It provides a tabular listing of all agents in the current organization context, a multi-step creation wizard with role templates ("souls"), a deployment modal supporting multiple infrastructure targets, and navigation into each agent's detail view for deep monitoring and configuration.
The page is organization-aware — when an org is selected via the org context switcher, only agents belonging to that organization are displayed. Agents can be filtered, restarted, and navigated to their full detail pages directly from the list.
GET /api/agents, filtered by the current organization context and user permissions.Souls are pre-built role configurations that auto-populate an agent's personality, skills, permissions, and behavior. They are loaded from the engine's /souls/by-category endpoint and organized into categories (e.g., Customer Support, Engineering, Sales). Selecting a soul pre-fills the wizard but all fields remain editable.
Suites are bundles of related skills (e.g., "Google Workspace" includes Gmail, Calendar, Drive). Toggling a suite adds or removes all its skills at once. Individual skills can also be toggled independently. Skills are loaded from /skills/by-category and /skills/suites.
Pre-configured security profiles (e.g., "Strict", "Standard", "Autonomous") that set max risk level, blocked side effects, approval requirements, and rate limits. Loaded from /profiles/presets.
The creation wizard auto-saves progress to localStorage on each step change. If the browser is closed mid-creation, the draft is restored on next visit. Drafts are cleared after successful agent creation.
The CreateAgentWizard is a 7-step modal wizard:
| Step | Name | Description |
|---|---|---|
| 0 | Role | Choose a soul template or skip to configure manually. Search and filter by category. |
| 1 | Basics | Name, email, role title, LLM provider/model selection, description. |
| 2 | Persona | Avatar upload, gender, date of birth (agents age naturally), cultural background, language, personality traits (communication style, energy, humor, formality, empathy, patience, creativity). |
| 3 | Skills | Select skill suites and individual skills. Search/filter available. Shows selected count. |
| 4 | Permissions | Permission preset, max risk level, blocked side effects, approval requirements (per risk level and side effect type), rate limits, execution constraints (concurrency, session duration, sandbox mode). |
| 5 | Deployment | Choose target: Fly.io, Docker, Railway, VPS, or Local. |
| 6 | Review | Full summary of all configuration. Auto-onboarding toggle. Create button. |
POST /api/engine/bridge/agents
Content-Type: application/json
{
"orgId": "org-abc123",
"name": "Sarah Chen",
"email": "sarah.chen@yourdomain.com",
"role": "Customer Support Lead",
"soulId": "customer-support-lead",
"model": { "provider": "anthropic", "modelId": "claude-sonnet-4-20250514" },
"deployment": { "target": "fly" },
"skills": ["email", "calendar", "knowledge-search"],
"permissions": {
"maxRiskLevel": "medium",
"blockedSideEffects": ["deletes-data", "financial"],
"requireApproval": {
"enabled": true,
"forRiskLevels": ["high", "critical"],
"forSideEffects": ["sends-email"]
},
"rateLimits": {
"toolCallsPerMinute": 30,
"toolCallsPerHour": 500
}
},
"persona": {
"gender": "female",
"language": "en-us",
"traits": { "communication": "direct", "humor": "warm" }
}
}
The DeployModal is a 3-step wizard for deploying an existing agent to infrastructure:
| Target | Configuration Options |
|---|---|
| Docker | Image tag, ports, memory limit, CPU allocation |
| VPS / Server | Install path, systemd service creation, SSH credential selection |
| Fly.io | Region selection (iad, ord, lax, lhr, ams, nrt) |
| Railway | Region selection (us-west1, us-east4, europe-west4, asia-southeast1) |
Deploy credentials are loaded from the engine's /deploy-credentials endpoint and filtered by target type. The deployment is triggered via:
POST /api/agents/{agentId}/deploy
{
"targetType": "fly",
"credentialId": "cred-xyz",
"config": { "region": "iad" },
"deployedBy": "dashboard"
}
The DeploymentProgress component connects to a Server-Sent Events stream (/api/engine/activity/stream) and renders a real-time timeline of deployment phases. Each phase shows status (pending, active, completed, failed) with timestamps and messages.
The main agent list displays a table with columns: Name, Email, Role, Status, Created, and Actions. Features include:
useOrgContext()| Endpoint | Method | Description |
|---|---|---|
/api/agents | GET | List all agents (supports ?clientOrgId= filter) |
/api/engine/bridge/agents | POST | Create a new agent with full configuration |
/api/agents/{id}/deploy | POST | Trigger deployment to target infrastructure |
/api/engine/agents/{id}/restart | POST | Restart a running agent |
/api/engine/skills/by-category | GET | List available skills grouped by category |
/api/engine/skills/suites | GET | List skill suites (bundles) |
/api/engine/souls/by-category | GET | List soul templates grouped by category |
/api/engine/profiles/presets | GET | List permission presets |
/api/providers | GET | List configured LLM providers |
/api/providers/{id}/models | GET | List models for a provider |
/api/engine/deploy-credentials | GET | List deploy credentials by org |
/api/engine/onboarding/initiate/{id} | POST | Start agent onboarding pipeline |
| Side Effect ID | Description | Default Blocked |
|---|---|---|
sends-email | Send emails to external recipients | No |
sends-message | Send messages via chat/messaging | No |
sends-sms | Send SMS text messages | No |
posts-social | Post to social media platforms | No |
runs-code | Execute arbitrary code | Yes |
modifies-files | Modify files on disk | No |
deletes-data | Delete data permanently | Yes |
controls-device | Control hardware/IoT devices | Yes |
financial | Financial transactions or payments | Yes |
| Limit | Default | Description |
|---|---|---|
| Tool calls / minute | 30 | Maximum tool invocations per minute |
| Tool calls / hour | 500 | Maximum tool invocations per hour |
| Tool calls / day | 5,000 | Maximum tool invocations per day |
| External actions / hour | 50 | Actions with external side effects per hour |
No LLM providers are configured. Go to Settings → LLM Providers and add an API key for at least one provider (Anthropic, OpenAI, etc.).
The selected provider doesn't have an API key set. Switch to a configured provider or add the key in Settings.
You need to add deploy credentials for the selected target type. Go to Settings → Deployments and add SSH keys, Fly.io tokens, or Railway API keys.
Check the org context switcher — you may be viewing a different organization. Also verify user permissions allow access to the agent.