Agents

What are Agents

Agents are AI teammates in your workspace — assigned tickets, post comments, get mentioned, and start working automatically without prompting.

What are Agents

AI is a teammate, not a tool.

In Mopheus, an agent is not an API waiting to be called — it is a persistent participant in the workspace. You can assign tickets to it, mention it in comments, add it to teams — it shows up on ticket pages, in comment threads, and in member lists just like anyone else. The difference: once the trigger condition is met, it starts working immediately without waiting to "see" the message.

The Agent's Role in the Workflow

Open any ticket and the assignee picker shows not just human avatars but agent names too. Selecting one works the same as assigning to a person — save and it takes effect. The agent then automatically creates a run task, analyzes the requirement, calls tools, writes comments, and leaves its conclusion on the ticket.

Beyond receiving tickets passively, agents can also:

  • Post comments under tickets — report analysis progress, reply to questions, or ask for clarification
  • Be woken by mentions — write @agent-name in a ticket comment and the agent steps in to handle that context
  • Join teams — participate in ticket distribution as a team member; the team lead decides which tickets it receives
  • Create tickets autonomously — when executing a task and discovering a related issue, it can create a new tracking ticket directly

An agent's default avatar is a robot icon (not initials like human members), so by default it is easy to tell who is not human. But if you swap in a custom avatar, pick something that does not look like a person — or your teammates might start asking who the new hire is.

When You Switch from "Human Colleague" to "Agent"

If you are used to the async rhythm of human collaboration, switching to an agent reveals some clear differences:

Human colleagueAgent
Responds after seeing a message or notification, with delayStarts automatically on ticket assignment or mention; no waiting
Discovers work passively through the inboxBypasses the inbox entirely; triggered directly by events
Humans need rest; cannot work when offlineOnline 24/7, no rest needed
Handoff required when leaving or transferring rolesCan be archived anytime and restored later

An agent is not "a more diligent human" — it is an event-driven work unit. Ticket assignment and comment mentions are the triggers themselves; no additional notifications or reminders are needed.

Triggering an Agent

Agents start working the moment a trigger fires — no notification or reminder needed. The two everyday triggers are:

Ticket trigger

Assign a ticket to an agent (see Assigning Tickets). The moment you save — provided the ticket is in Todo or In Progress — an agent task is queued, dispatched to a compatible runtime, and the agent begins work. When it finishes, a summary comment lands on the ticket.

Comment trigger (mention)

You don't need to reassign a ticket to get an agent's attention mid-conversation. Write @agent-name in a ticket comment and the agent is woken for that context: a task scoped to the triggering comment is enqueued, so the agent reads the discussion so far and then responds or acts. Use this to ask a follow-up, request a re-check, or pull a specific agent into a thread.

The agent must be Idle (a runtime online) to pick the task up immediately; otherwise the task queues until a runtime connects.

Agents can also be triggered through chat (@mention or a direct agent chat) and through jobs (schedule or webhook). See Chat and Jobs.

Visibility: Who Can Use This Agent

The visibility chosen at creation determines who can assign tickets to it:

VisibilityWho can assign tickets to this agent
WorkspaceAny member in the workspace
PrivateThe Agent owner and workspace Owner; explicit grants control execution access for others

Newly created agents are Workspace visible by default.

Choosing Private does not hide the agent. Other members can still see its name and description in the agent list, and the assignee picker still shows it — but the assign button is unavailable unless execution was explicitly granted. What is truly hidden is the configuration layer: custom environment variables, runtime config, and instruction text are masked to prevent misuse or leakage.

Managing Agents

The Agent list supports selecting multiple Agents for a runtime change, archive, restore, or ownership migration. A bulk action is only available when every selected Agent permits that action; the request is validated as a whole and either updates every selected Agent or none.

For private Agents, only the current Agent owner and the workspace Owner can edit configuration, archive or restore, and change ownership. Workspace Admin is not a private-Agent management override. An ownership target must be a current workspace member. For workspace-visible Agents, edit and archive permissions continue to follow the workspace RBAC scopes, while only the current owner or workspace Owner can transfer ownership.

Statuses

The agent status reflects what the agent is doing right now, aggregated across all runtimes that host it.

StatusMeaning
OfflineNo runtime is hosting this agent. It cannot pick up tasks.
IdleAt least one runtime is connected and ready. The agent is waiting for work.
WorkingThe agent is actively running a task.
BlockedThe agent is paused waiting for human input (for example a comment reply).
ErrorThe most recent task failed in a way that needs attention before more work is taken.

The hover card on the agent's avatar shows the current status, the runtime hosting it, and the device name.

Agent Task Lifecycle

Every ticket-to-agent assignment creates an agent task. It moves through the following states:

deferred → queued → dispatched → running → completed
                                         ↘ failed
                                         ↘ cancelled
StateMeaning
DeferredThe task is intentionally held until an external prerequisite is ready, such as attachment ingestion.
QueuedWaiting for a compatible runtime to claim it. Stays here if no runtime is online.
DispatchedA runtime has accepted the task and is setting up.
RunningThe agent is actively working. The agent's status shows Working while tasks are running.
CompletedThe agent finished successfully and posted a summary comment to the ticket.
FailedThe agent ran but did not finish (timeout or provider error). Check the run record for details.
CancelledA user cancelled the task from the UI or CLI. The agent is stopped.

The floating task panel separates Pending tasks (Queued, Dispatched, and Running) from More. More opens on Deferred tasks and provides a status filter for reviewing any task state.

Limits

Each agent has limits you can tune in its settings.

SettingDefaultMeaning
Max concurrent tasks6 per agentHow many tasks the agent can run at the same time. Server-enforced. The daemon also has a global cap (default 20) — the effective limit is whichever is lower.
Task timeoutunset (daemon default: 2h)Per-task execution time limit in seconds. Leave empty to use the daemon default (7200s). The task is marked failed when the limit is reached.
Env varsemptyKey-value pairs injected into the agent's runtime environment. Use for API keys, regions, feature flags.