Aegis Orchestrator
Reference

MCP Tool Reference

Complete input and output schemas for all 61 AEGIS MCP tools — 60 built-in orchestrator tools and the Zaru-only zaru.switch_mode tool — with availability by context and Zaru conversation mode.

This page is the authoritative schema reference for all AEGIS MCP tools. For the skip_judge policy and inner-loop judge optimization, see Built-in Tools. For usage patterns and examples, see Management Tools.


Tool Access Tiers

AEGIS tools are divided into three access tiers. The tier determines which callers may invoke a tool.

User tools — available to all agents and Zaru users: fs.read, fs.write, fs.list, fs.create_dir, fs.create.dir, fs.delete, fs.edit, fs.multi_edit, fs.grep, fs.glob, web.search, web.fetch, cmd.run, aegis.agent.list, aegis.agent.export, aegis.agent.generate, aegis.agent.logs, aegis.agent.search, aegis.agent.wait, aegis.workflow.list, aegis.workflow.validate, aegis.workflow.export, aegis.workflow.run, aegis.workflow.generate, aegis.workflow.logs, aegis.workflow.wait, aegis.workflow.cancel, aegis.workflow.signal, aegis.workflow.executions.list, aegis.workflow.executions.get, aegis.workflow.status, aegis.workflow.search, aegis.task.execute, aegis.task.status, aegis.task.list, aegis.task.cancel, aegis.task.logs, aegis.task.wait, aegis.execute.intent, aegis.execute.status, aegis.execute.wait, aegis.tools.list, aegis.tools.search, aegis.schema.get, aegis.schema.validate, aegis.runtime.list, zaru.switch_mode

System tools — only available to agents with security_context: aegis-system-agent-runtime registered by platform operators: aegis.agent.create, aegis.agent.update, aegis.workflow.create, aegis.workflow.update, aegis.workflow.promote, aegis.workflow.demote

Operator-only tools — only available via operator SEAL sessions: aegis.agent.delete, aegis.workflow.delete, aegis.workflow.remove, aegis.task.remove, aegis.system.info, aegis.system.config


Tool Availability by Context

AEGIS tools are available across three distinct execution contexts. The tool set exposed to a caller varies by context.

ContextTool groups availableNotes
Zaru Chat — chat modezaru.switch_mode onlyMode switching only; no orchestrator tools
Zaru Chat — agentic modezaru.switch_mode + agent/task management subsetSee mode table below
Zaru Chat — execute modezaru.switch_mode + execute pipeline toolsSee mode table below
Zaru Chat — architect modezaru.switch_mode + workflow/agent design subsetSee mode table below
Zaru Chat — operator modeAll 61 toolsNo filtering applied
AEGIS agent inner loopAll 60 built-in toolsSubject to agent spec.tools allowlist and SecurityContext
External SEAL callerAll 60 built-in toolsFiltered by SecurityContext only; no mode concept

See Tool Routing Architecture for the full routing pipeline.


Zaru Conversation Mode Tool Sets

The tool sets below are enforced by the Zaru client — not the orchestrator. Outside of Zaru, inside agent inner loops and via direct SEAL calls, all built-in tools are available subject to SecurityContext and the agent's spec.tools allowlist.

Chat Mode

Only zaru.switch_mode is exposed. The model cannot invoke any orchestrator tools directly from chat mode.

Agentic Mode

  • zaru.switch_mode
  • aegis.agent.generate
  • aegis.agent.wait
  • aegis.agent.list
  • aegis.agent.logs
  • aegis.task.execute
  • aegis.task.wait
  • aegis.task.list
  • aegis.task.logs
  • aegis.task.cancel
  • aegis.tools.list
  • aegis.tools.search

Execute Mode

  • zaru.switch_mode
  • aegis.execute.intent
  • aegis.execute.status
  • aegis.execute.wait
  • aegis.workflow.wait

Architect Mode

  • zaru.switch_mode
  • aegis.workflow.generate
  • aegis.workflow.list
  • aegis.workflow.logs
  • aegis.agent.generate
  • aegis.agent.wait
  • aegis.agent.list
  • aegis.agent.logs
  • aegis.schema.get
  • aegis.schema.validate
  • aegis.task.execute
  • aegis.task.wait
  • aegis.workflow.wait

Operator Mode

All 61 tools are available — no filtering is applied.


Quick-Reference Table

Zaru mode abbreviations: C = chat, Ag = agentic, Ex = execute, Ar = architect, Op = operator. Operator always has full access; only additional modes are listed per tool.

ToolGroupskip_judgeRequired paramsZaru modes
cmd.rundispatchfalsecommandOp
fs.readfstruepathOp
fs.writefsfalsepath, contentOp
fs.listfstruepathOp
fs.create_dirfsfalsepathOp
fs.create.dirfsfalsepathOp
fs.deletefsfalsepathOp
fs.editfsfalsepath, target_content, replacement_contentOp
fs.multi_editfsfalsepath, editsOp
fs.grepfstruepattern, pathOp
fs.globfstruepattern, pathOp
web.searchwebtruequeryOp
web.fetchwebtrueurlOp
aegis.schema.getschematruekeyAr, Op
aegis.schema.validateschematruekind, manifest_yamlAr, Op
aegis.agent.createagenttruemanifest_yamlOp
aegis.agent.listagenttrueAg, Ar, Op
aegis.agent.updateagenttruemanifest_yamlOp
aegis.agent.exportagenttruenameOp
aegis.agent.deleteagenttrueagent_idOp
aegis.agent.generateagentfalseinputAg, Ar, Op
aegis.agent.logsagenttrueagent_idAg, Ar, Op
aegis.agent.searchagenttruequeryOp
aegis.agent.waitagenttrueexecution_idAg, Ar, Op
aegis.workflow.createworkflowtruemanifest_yamlOp
aegis.workflow.listworkflowtrueAr, Op
aegis.workflow.validateworkflowtruemanifest_yamlOp
aegis.workflow.updateworkflowtruemanifest_yamlOp
aegis.workflow.exportworkflowtruenameOp
aegis.workflow.deleteworkflowfalsenameOp
aegis.workflow.runworkflowfalsenameOp
aegis.workflow.generateworkflowfalseinputAr, Op
aegis.workflow.logsworkflowtrueexecution_idAr, Op
aegis.workflow.waitworkflowtrueexecution_idEx, Ar, Op
aegis.workflow.cancelworkflowtrueexecution_idOp
aegis.workflow.signalworkflowtrueexecution_id, responseOp
aegis.workflow.removeworkflowtrueexecution_idOp
aegis.workflow.promoteworkflowfalsenameOp
aegis.workflow.demoteworkflowfalsenameOp
aegis.workflow.executions.listworkflowtrueOp
aegis.workflow.executions.getworkflowtrueexecution_idOp
aegis.workflow.statusworkflowtrueexecution_idOp
aegis.workflow.searchworkflowtruequeryOp
aegis.task.executetaskfalseagent_idAg, Ar, Op
aegis.task.statustasktrueexecution_idOp
aegis.task.listtasktrueAg, Op
aegis.task.canceltaskfalseexecution_idAg, Op
aegis.task.removetaskfalseexecution_idOp
aegis.task.logstasktrueexecution_idAg, Op
aegis.task.waittasktrueexecution_idAg, Ar, Op
aegis.execute.intentexecutefalseintentEx, Op
aegis.execute.statusexecutetruepipeline_execution_idEx, Op
aegis.execute.waitexecutetrueexecution_idEx, Op
aegis.tools.listtoolstrueAg, Op
aegis.tools.searchtoolstrueAg, Op
aegis.system.infosystemtrueOp
aegis.system.configsystemtrueOp
aegis.runtime.listruntimetrueOp
zaru.switch_modezaruN/Atarget_mode, reasonC, Ag, Ex, Ar, Op

Filesystem Tools (fs.*)

Interact with the agent's mounted Workspace volume via the FSAL layer. All paths must be within the agent's path_allowlist. Absolute POSIX paths are recommended.

fs.read

Read the contents of a file at the given POSIX path from the mounted Workspace volume.

Access: User

skip_judge: true

PropertyTypeRequiredDefaultDescription
pathstringYesAbsolute or relative POSIX path of the file to read.

Output:

{
  "status": "success",
  "path": "/workspace/src/main.rs",
  "content": "...",
  "size_bytes": 1024
}

fs.write

Write content to a file at the given POSIX path in the Workspace volume. Automatically creates missing parent directories.

Access: User

skip_judge: false

PropertyTypeRequiredDefaultDescription
pathstringYesAbsolute or relative POSIX path of the file to write.
contentstringYesString content to write to the file.

Output:

{
  "status": "success",
  "path": "/workspace/src/main.rs",
  "bytes_written": 1024
}

fs.list

List the contents of a directory in the Workspace volume.

Access: User

skip_judge: true

PropertyTypeRequiredDefaultDescription
pathstringYesAbsolute or relative POSIX path of the directory to list.

Output:

{
  "status": "success",
  "path": "/workspace/src",
  "entries": [
    { "name": "main.rs", "file_type": "file" },
    { "name": "lib", "file_type": "directory" }
  ]
}

Each entry has a file_type of either "file" or "directory".

fs.create_dir

Creates a new directory along with any necessary parent directories.

Access: User

skip_judge: false

PropertyTypeRequiredDefaultDescription
pathstringYesAbsolute or relative POSIX path of the directory to create.

Output:

{
  "status": "success",
  "path": "/workspace/output/reports"
}

fs.create.dir

fs.create.dir is an alias for fs.create_dir. Both tools have identical parameters, behavior, and output shape. Prefer fs.create_dir in new agent manifests.

Alias for fs.create_dir. Creates a new directory along with any necessary parent directories.

Access: User

skip_judge: false

PropertyTypeRequiredDefaultDescription
pathstringYesAbsolute or relative POSIX path of the directory to create.

Output: Same as fs.create_dir.

fs.delete

fs.delete is destructive and irreversible. To delete a non-empty directory, set recursive: true. Without it, deletion of a non-empty directory will fail with an error.

Deletes a file or directory.

Access: User

skip_judge: false

PropertyTypeRequiredDefaultDescription
pathstringYesAbsolute or relative POSIX path of the file or directory to delete.
recursivebooleanNofalseSet to true to delete a directory and all its contents.

Output:

{
  "status": "success",
  "path": "/workspace/tmp/cache"
}

fs.edit

Performs an exact string replacement in a file.

Access: User

skip_judge: false

PropertyTypeRequiredDefaultDescription
pathstringYesAbsolute or relative POSIX path of the file to edit.
target_contentstringYesExact string content to find and replace. Must match exactly once in the file.
replacement_contentstringYesNew string content to insert in place of target_content.

target_content must appear exactly once in the file. If the string is not found or appears more than once, the tool returns an error without modifying the file.

Output:

{
  "status": "success",
  "path": "/workspace/src/main.rs",
  "message": "File edited successfully"
}

fs.multi_edit

Performs multiple sequential string replacements in a file.

Access: User

skip_judge: false

PropertyTypeRequiredDefaultDescription
pathstringYesAbsolute or relative POSIX path of the file to edit.
editsarrayYesArray of edit objects applied sequentially. Each object requires target_content (string) and replacement_content (string).

Edits are applied sequentially in array order. Each edit operates on the result of the previous edit, so target_content values for later edits must account for earlier replacements.

Output:

{
  "status": "success",
  "path": "/workspace/src/main.rs",
  "applied": 3
}

The applied field is the count of replacements successfully performed.

fs.grep

Recursively searches for a regex pattern within files in a given directory.

Access: User

skip_judge: true

PropertyTypeRequiredDefaultDescription
patternstringYesRegex pattern to search for.
pathstringYesDirectory path to start the recursive search from.

Output: Formatted string of matches, one per line in path:line_number:content format.

fs.glob

Recursively matches files against a glob pattern.

Access: User

skip_judge: true

PropertyTypeRequiredDefaultDescription
patternstringYesGlob pattern to match files (e.g. **/*.rs).
pathstringYesDirectory path to start the recursive search from.

Output: Newline-separated list of matching file paths.


Web Tools (web.*)

Access external URLs and perform internet searches. These tools are subject to the agent's network_profile and any egress restrictions configured at the node level.

web.search

Performs an internet search query.

Access: User

skip_judge: true

PropertyTypeRequiredDefaultDescription
querystringYesSearch query.

Output: Formatted list of results, each containing title, URL, and snippet text.

web.fetch

Fetches content from a URL, optionally converting HTML to Markdown.

Access: User

skip_judge: true

PropertyTypeRequiredDefaultDescription
urlstringYesURL to fetch content from.

Output: Response body as a string. HTML responses are converted to Markdown when the to_markdown conversion option is in effect.


Dispatch Protocol Tool (cmd.run)

cmd.run is routed via the Dispatch Protocol — not the FSAL layer. Commands execute inside the agent's ephemeral container. To expose cmd.run to an agent, the agent manifest must declare a subcommand_allowlist under spec.builtin_dispatchers:

spec:
  builtin_dispatchers:
    - name: cmd
      capabilities:
        - name: cmd.run
          subcommand_allowlist:
            - "python"
            - "pip"
            - "bash"

Only commands whose first token appears in subcommand_allowlist will be permitted.

cmd.run

Executes a shell command inside the agent's ephemeral container environment. Use this to build, run, or analyze code locally.

Access: User

skip_judge: false

PropertyTypeRequiredDefaultDescription
commandstringYesCommand to execute. The first token must appear in the agent's subcommand_allowlist.

Output:

{
  "stdout": "Hello, world!\n",
  "stderr": "",
  "exit_code": 0
}

A non-zero exit_code is returned as a successful tool response — the agent is responsible for interpreting the exit code and deciding whether to retry or fail.


Agent Management Tools (aegis.agent.*)

These tools manage the agent registry: creating, reading, updating, deleting, and searching agent definitions. For task execution (running agents), see Task Management Tools.

aegis.agent.create

Parses, validates, and deploys an Agent manifest to the registry.

Access: System

skip_judge: true

PropertyTypeRequiredDefaultDescription
manifest_yamlstringYesFull Agent manifest YAML to parse, validate, and deploy.
forcebooleanNofalseOverwrite an existing deployed agent with the same name/version.

Output:

{
  "agent_id": "a1b2c3d4-...",
  "deployed": true,
  "name": "my-agent",
  "version": "1.0.0"
}

aegis.agent.list

Lists currently deployed agents and metadata.

Access: User

skip_judge: true

No parameters — accepts an empty object {}.

Output:

{
  "agents": [
    {
      "id": "a1b2c3d4-...",
      "name": "my-agent",
      "version": "1.0.0",
      "status": "active",
      "description": "...",
      "labels": {}
    }
  ]
}

aegis.agent.update

Updates an existing Agent manifest in the registry.

Access: System

skip_judge: true

PropertyTypeRequiredDefaultDescription
manifest_yamlstringYesFull Agent manifest YAML to update an existing agent.
forcebooleanNofalseOverwrite an existing version if it already exists.

Output:

{
  "agent_id": "a1b2c3d4-...",
  "deployed": true,
  "name": "my-agent",
  "version": "1.0.1"
}

aegis.agent.export

Exports an Agent manifest by name.

Access: User

skip_judge: true

PropertyTypeRequiredDefaultDescription
namestringYesName of the agent to export.

Output:

{
  "manifest_yaml": "kind: Agent\n...",
  "id": "a1b2c3d4-...",
  "name": "my-agent",
  "version": "1.0.0"
}

aegis.agent.delete

Deletion is permanent and cannot be undone. Running executions are not affected, but the agent definition will no longer be available for new task dispatch.

Removes a deployed agent from the registry by UUID.

Access: Operator

skip_judge: true

PropertyTypeRequiredDefaultDescription
agent_idstringYesUUID of the agent to remove.

Output:

{
  "agent_id": "a1b2c3d4-...",
  "deleted": true
}

aegis.agent.generate

Generates an Agent manifest from a natural-language intent.

Access: User

skip_judge: false

PropertyTypeRequiredDefaultDescription
inputstringYesNatural-language intent for the agent to create.

This tool returns an execution_id immediately and starts an async authoring loop. Use aegis.agent.wait or aegis.task.wait to block until the generated agent is deployed.

Output:

{
  "execution_id": "e1f2a3b4-...",
  "status": "started"
}

aegis.agent.logs

Retrieve agent-level activity log snapshot.

Access: User

skip_judge: true

PropertyTypeRequiredDefaultDescription
agent_idstringYesUUID of the agent whose activity log should be retrieved.
limitintegerNo50Maximum number of events to return.
offsetintegerNo0Zero-based starting offset into the activity log.

Output:

{
  "tool": "aegis.agent.logs",
  "agent_id": "a1b2c3d4-...",
  "events": [
    {
      "event_type": "task_started",
      "payload": {},
      "recorded_at": "2026-04-05T12:00:00Z"
    }
  ],
  "total": 42,
  "limit": 50,
  "offset": 0
}

aegis.agent.search

Semantic search over deployed agents by natural-language query.

Access: User

skip_judge: true

PropertyTypeRequiredDefaultDescription
querystringYesNatural-language description of the agent you are looking for.
tenant_idstringNocurrent tenantTenant ID to search within.
limitintegerNo10Maximum results (1–100, tier-dependent cap).
min_scorenumberNo0.3Minimum relevance score threshold (0.0–1.0).
labelsobjectNoLabel key-value pairs to filter by. All must match.
statusstringNoFilter by agent status. One of: active, paused, failed.
include_platform_templatesbooleanNotrueInclude platform-provided template agents.

aegis.agent.search requires a Cortex connection. Results are returned sorted by score descending.

Output:

{
  "tool": "aegis.agent.search",
  "query": "image resizer",
  "results": [
    {
      "id": "a1b2c3d4-...",
      "name": "image-resizer",
      "version": "1.0.0",
      "description": "...",
      "labels": {},
      "score": 0.92
    }
  ],
  "total": 5
}

aegis.agent.wait

aegis.agent.wait is an alias for aegis.task.wait. Both tools share identical parameters and output shape.

Alias for aegis.task.wait. Blocks until an agent execution completes.

Access: User

skip_judge: true

PropertyTypeRequiredDefaultDescription
execution_idstringYesUUID of the execution to wait for.
poll_interval_secondsintegerNo10Seconds between status polls (minimum: 1).
timeout_secondsintegerNo300Maximum seconds to wait before returning a timeout (minimum: 1).

Output:

{
  "execution_id": "e1f2a3b4-...",
  "status": "completed",
  "iteration_count": 3,
  "last_output": "...",
  "last_error": null,
  "started_at": "2026-04-05T12:00:00Z",
  "ended_at": "2026-04-05T12:01:30Z"
}

The status field will be one of completed, failed, cancelled, or timed_out.


Workflow Management Tools (aegis.workflow.*)

These tools manage the workflow registry and control workflow execution lifecycle. For workflow authoring and schema, see the Workflow Manifest Reference.

aegis.workflow.create

Performs strict deterministic and semantic workflow validation, then registers on pass.

Access: System

skip_judge: true

PropertyTypeRequiredDefaultDescription
manifest_yamlstringYesFull Workflow manifest YAML to parse, validate, semantically judge, and register.
forcebooleanNofalseOverwrite an existing version if it already exists.
task_contextstringNoOptional task context to guide semantic judges.
judge_agentsarrayNoJudge agent names to use for semantic validation.
min_scorenumberNoMinimum consensus score required for deployment.
min_confidencenumberNoMinimum consensus confidence required for deployment.

Output:

{
  "workflow_id": "w1b2c3d4-...",
  "deployed": true,
  "name": "my-workflow",
  "version": "1.0.0"
}

aegis.workflow.list

Lists currently registered workflows and metadata.

Access: User

skip_judge: true

PropertyTypeRequiredDefaultDescription
tenant_idstringNolocal tenantOptional tenant identifier.
scopestringNoScope filter. One of: global (global workflows only), visible (user + tenant + global). Omit to list all for the tenant.
user_idstringNoOptional user ID for visible scope filter.

Output:

{
  "workflows": [
    {
      "id": "w1b2c3d4-...",
      "name": "my-workflow",
      "version": "1.0.0",
      "initial_state": "start"
    }
  ]
}

aegis.workflow.validate

Validate a workflow manifest against the schema.

Access: User

skip_judge: true

PropertyTypeRequiredDefaultDescription
manifest_yamlstringYesFull Workflow manifest YAML to parse and deterministically validate.

Output:

{
  "valid": true,
  "errors": null
}

On failure: { "valid": false, "errors": ["error message 1", "error message 2"] }

aegis.workflow.update

Updates an existing Workflow manifest in the registry.

Access: System

skip_judge: true

PropertyTypeRequiredDefaultDescription
manifest_yamlstringYesFull Workflow manifest YAML to update an existing workflow.
forcebooleanNofalseOverwrite an existing version if it already exists.

Output:

{
  "workflow_id": "w1b2c3d4-...",
  "deployed": true,
  "name": "my-workflow",
  "version": "1.0.1"
}

aegis.workflow.export

Exports a Workflow manifest by name.

Access: User

skip_judge: true

PropertyTypeRequiredDefaultDescription
namestringYesName of the workflow to export.

Output:

{
  "manifest_yaml": "kind: Workflow\n...",
  "id": "w1b2c3d4-...",
  "name": "my-workflow",
  "version": "1.0.0"
}

aegis.workflow.delete

Deleting a workflow removes the definition from the registry. In-progress executions are not terminated, but new executions of this workflow will no longer be possible.

Removes a registered workflow from the registry by name.

Access: Operator

skip_judge: false

PropertyTypeRequiredDefaultDescription
namestringYesName of the workflow to delete.

Output:

{
  "workflow_id": "w1b2c3d4-...",
  "deleted": true
}

aegis.workflow.run

Executes a registered workflow by name with optional input parameters.

Access: User

skip_judge: false

PropertyTypeRequiredDefaultDescription
namestringYesName of the workflow to execute.
intentstringNoNatural-language description of the goal for this run. Injected into workflow input and available to agentic states and task activities.
inputobjectNoWorkflow input parameters.
blackboardobjectNoOptional blackboard overrides merged into the execution before startup.
versionstringNolatestSemantic version of the workflow to execute. When omitted, the latest deployed version is used.
tenant_idstringNolocal tenantOptional tenant identifier.

Output:

{
  "execution_id": "e1f2a3b4-...",
  "status": "started"
}

Use aegis.workflow.wait to block until completion.

aegis.workflow.generate

Generates a Workflow manifest from a natural-language objective.

Access: User

skip_judge: false

PropertyTypeRequiredDefaultDescription
inputstringYesNatural-language workflow objective.

Returns an execution_id immediately and starts an async authoring loop. Use aegis.workflow.wait to block until the generated workflow is registered.

Output:

{
  "execution_id": "e1f2a3b4-...",
  "status": "started"
}

aegis.workflow.logs

Returns paginated workflow execution events.

Access: User

skip_judge: true

PropertyTypeRequiredDefaultDescription
execution_idstringYesUUID of the workflow execution whose event log should be retrieved.
limitintegerNo50Maximum number of events to return (max 200).
offsetintegerNo0Number of events to skip for pagination.

Output:

{
  "tool": "aegis.workflow.logs",
  "execution_id": "e1f2a3b4-...",
  "status": "running",
  "events": [
    {
      "sequence": 1,
      "event_type": "state_entered",
      "state_name": "start",
      "iteration_number": null,
      "payload": {},
      "recorded_at": "2026-04-05T12:00:00Z"
    }
  ],
  "total": 12,
  "limit": 50,
  "offset": 0
}

aegis.workflow.wait

Polls a workflow execution until it reaches a terminal state and returns the result.

Access: User

skip_judge: true

PropertyTypeRequiredDefaultDescription
execution_idstringYesUUID of the workflow execution to wait for.
poll_interval_secondsintegerNo5Seconds between polls.
timeout_secondsintegerNo300Maximum wait time in seconds.

Output (completed):

{
  "execution_id": "e1f2a3b4-...",
  "workflow_id": "w1b2c3d4-...",
  "status": "completed",
  "current_state": "end",
  "blackboard": {},
  "started_at": "2026-04-05T12:00:00Z",
  "last_transition_at": "2026-04-05T12:02:00Z"
}

Output (timed out):

{
  "execution_id": "e1f2a3b4-...",
  "status": "running",
  "current_state": "processing",
  "timed_out": true
}

The status field upon completion will be one of completed, failed, or cancelled.

aegis.workflow.cancel

Cancel a running workflow execution.

Access: User

skip_judge: true

PropertyTypeRequiredDefaultDescription
execution_idstringYesUUID of the workflow execution to cancel.

Output:

{
  "tool": "aegis.workflow.cancel",
  "cancelled": true,
  "execution_id": "e1f2a3b4-..."
}

On failure: { "cancelled": false, "error": "execution already in terminal state" }

aegis.workflow.signal

Send human input response to a paused workflow execution.

Access: User

skip_judge: true

PropertyTypeRequiredDefaultDescription
execution_idstringYesUUID of the workflow execution to signal.
responsestringYesHuman input response text to send to the paused workflow.

Output:

{
  "tool": "aegis.workflow.signal",
  "signalled": true,
  "execution_id": "e1f2a3b4-..."
}

On failure: { "signalled": false, "error": "execution is not in a waiting state" }

aegis.workflow.remove

Remove a workflow execution record.

Access: Operator

skip_judge: true

PropertyTypeRequiredDefaultDescription
execution_idstringYesUUID of the workflow execution to remove.

The execution must be in a terminal state (completed, failed, or cancelled) before it can be removed.

Output:

{
  "tool": "aegis.workflow.remove",
  "removed": true,
  "execution_id": "e1f2a3b4-..."
}

On failure: { "removed": false, "error": "execution is not in a terminal state" }

aegis.workflow.promote

Promote a workflow from user scope to tenant scope.

Access: System

skip_judge: false

PropertyTypeRequiredDefaultDescription
namestringYesWorkflow name or ID to promote.
target_scopestringNoglobalTarget scope. One of: tenant, global.
tenant_idstringNolocal tenantOptional tenant identifier.

Promotion elevates a workflow's visibility scope, making it available to a wider set of users. Promoting to global makes the workflow visible to all tenants on the platform.

Output:

{
  "workflow_id": "w1b2c3d4-...",
  "name": "my-workflow",
  "promoted": true,
  "target_scope": "global"
}

aegis.workflow.demote

Demote a workflow from tenant scope to user scope.

Access: System

skip_judge: false

PropertyTypeRequiredDefaultDescription
namestringYesWorkflow name or ID to demote.
target_scopestringNotenantTarget scope. One of: tenant, user.
user_idstringNoOwner user ID when demoting to user scope.
tenant_idstringNolocal tenantOptional tenant identifier.

Demotion narrows a workflow's visibility scope, restricting access to a smaller audience.

Output:

{
  "workflow_id": "w1b2c3d4-...",
  "name": "my-workflow",
  "demoted": true,
  "target_scope": "tenant"
}

aegis.workflow.executions.list

Lists workflow executions, optionally filtered.

Access: User

skip_judge: true

PropertyTypeRequiredDefaultDescription
limitintegerNo20Maximum number of results to return.
offsetintegerNo0Pagination offset.
workflow_idstringNoOptional workflow UUID or workflow name filter.
tenant_idstringNolocal tenantOptional tenant identifier.

Output:

{
  "executions": [
    {
      "execution_id": "e1f2a3b4-...",
      "workflow_id": "w1b2c3d4-...",
      "status": "completed",
      "current_state": "end",
      "started_at": "2026-04-05T12:00:00Z"
    }
  ],
  "total": 42,
  "limit": 20,
  "offset": 0
}

aegis.workflow.executions.get

Returns details of a specific workflow execution.

Access: User

skip_judge: true

PropertyTypeRequiredDefaultDescription
execution_idstringYesUUID of the workflow execution to inspect.
tenant_idstringNolocal tenantOptional tenant identifier.

Output:

{
  "execution_id": "e1f2a3b4-...",
  "workflow_id": "w1b2c3d4-...",
  "status": "completed",
  "input": {},
  "blackboard": {},
  "state_outputs": {},
  "current_state": "end",
  "started_at": "2026-04-05T12:00:00Z",
  "last_transition_at": "2026-04-05T12:02:00Z"
}

aegis.workflow.status

Returns current status of a workflow execution.

Access: User

skip_judge: true

PropertyTypeRequiredDefaultDescription
execution_idstringYesUUID of the workflow execution to inspect.
tenant_idstringNolocal tenantOptional tenant identifier.

Output:

{
  "execution_id": "e1f2a3b4-...",
  "workflow_id": "w1b2c3d4-...",
  "status": "running",
  "current_state": "processing",
  "started_at": "2026-04-05T12:00:00Z",
  "last_transition_at": "2026-04-05T12:01:00Z"
}

aegis.workflow.search

Semantic search over registered workflows.

Access: User

skip_judge: true

PropertyTypeRequiredDefaultDescription
querystringYesNatural-language description of the workflow you are looking for.
tenant_idstringNocurrent tenantTenant ID to search within.
limitintegerNo10Maximum results (1–100, tier-dependent cap).
min_scorenumberNo0.3Minimum relevance score threshold (0.0–1.0).
labelsobjectNoLabel key-value pairs to filter by. All must match.
include_platform_templatesbooleanNotrueInclude platform-provided template workflows.

aegis.workflow.search requires a Cortex connection. Results are returned sorted by score descending.

Output:

{
  "tool": "aegis.workflow.search",
  "query": "data pipeline",
  "results": [
    {
      "id": "w1b2c3d4-...",
      "name": "etl-pipeline",
      "version": "1.0.0",
      "description": "...",
      "labels": {},
      "score": 0.88
    }
  ],
  "total": 3
}

Task Management Tools (aegis.task.*)

These tools start and monitor individual agent executions (tasks). An agent must be deployed before a task can be dispatched against it. For agent lifecycle management, see Agent Management Tools.

aegis.task.execute

Starts a new agent execution (task) by agent UUID or name.

Access: User

skip_judge: false

PropertyTypeRequiredDefaultDescription
agent_idstringYesUUID or name of the agent to execute.
intentstringNoNatural-language description of what the agent should accomplish. Steers the LLM prompt directly. Complementary to structured input.
inputobjectNoStructured data for the agent, validated against spec.input_schema when declared. The well-known sub-field input.prompt (string) holds the full task instructions or user request.
versionstringNolatestSemantic version of the agent to execute. When omitted, the latest deployed version is used.

Use intent for natural-language steering and input.prompt for structured task instructions. Both can be provided together.

Output:

{
  "execution_id": "e1f2a3b4-...",
  "status": "started"
}

Use aegis.task.wait to block until completion.

aegis.task.status

Returns the current status and output of an execution by UUID.

Access: User

skip_judge: true

PropertyTypeRequiredDefaultDescription
execution_idstringYesUUID of the execution to check.

Output:

{
  "execution_id": "e1f2a3b4-...",
  "agent_id": "a1b2c3d4-...",
  "status": "completed",
  "iteration_count": 2,
  "last_output": "...",
  "last_error": null,
  "started_at": "2026-04-05T12:00:00Z",
  "ended_at": "2026-04-05T12:01:00Z"
}

The status field is one of pending, running, completed, failed, or cancelled.

aegis.task.list

Lists recent executions, optionally filtered by agent.

Access: User

skip_judge: true

PropertyTypeRequiredDefaultDescription
agent_idstringNoOptional UUID to filter executions by agent.
limitintegerNo20Maximum number of results.

Output:

{
  "executions": [
    {
      "id": "e1f2a3b4-...",
      "agent_id": "a1b2c3d4-...",
      "status": "completed",
      "started_at": "2026-04-05T12:00:00Z"
    }
  ]
}

aegis.task.cancel

Cancels an active agent execution by UUID.

Access: User

skip_judge: false

PropertyTypeRequiredDefaultDescription
execution_idstringYesUUID of the execution to cancel.

Output:

{
  "execution_id": "e1f2a3b4-...",
  "cancelled": true
}

aegis.task.remove

Removes a completed or failed execution record by UUID.

Access: Operator

skip_judge: false

PropertyTypeRequiredDefaultDescription
execution_idstringYesUUID of the execution to remove.

The execution must be in a terminal state. Use aegis.task.cancel first if the execution is still running.

Output:

{
  "execution_id": "e1f2a3b4-...",
  "removed": true
}

aegis.task.logs

Returns paginated execution events for a task by UUID.

Access: User

skip_judge: true

PropertyTypeRequiredDefaultDescription
execution_idstringYesUUID of the execution whose event log should be retrieved.
limitintegerNo50Maximum number of events to return (capped at 200).
offsetintegerNo0Zero-based starting offset into the persisted event log.

Output:

{
  "tool": "aegis.task.logs",
  "execution_id": "e1f2a3b4-...",
  "status": "completed",
  "events": [
    {
      "sequence": 1,
      "event_type": "iteration_started",
      "payload": {},
      "recorded_at": "2026-04-05T12:00:00Z"
    }
  ],
  "total": 8,
  "limit": 50,
  "offset": 0
}

aegis.task.wait

Polls an execution until it reaches a terminal state and returns the result.

Access: User

skip_judge: true

PropertyTypeRequiredDefaultDescription
execution_idstringYesUUID of the execution to wait for.
poll_interval_secondsintegerNo10Seconds between status polls (minimum: 1).
timeout_secondsintegerNo300Maximum seconds to wait before returning a timeout (minimum: 1).

Output:

{
  "execution_id": "e1f2a3b4-...",
  "status": "completed",
  "iteration_count": 3,
  "last_output": "...",
  "last_error": null,
  "started_at": "2026-04-05T12:00:00Z",
  "ended_at": "2026-04-05T12:01:30Z"
}

The status field will be one of completed, failed, cancelled, or timed_out.


Execute Pipeline Tools (aegis.execute.*)

These tools power Execute mode in Zaru and the intent-to-execution API. They run a multi-step pipeline: intent → agent discovery or generation → code generation → execution → result. No pre-existing agent is required.

aegis.execute.intent

Starts the intent-to-execution pipeline: discovers or generates an agent, writes code, executes in a container, and returns the formatted result.

Access: User

skip_judge: false

PropertyTypeRequiredDefaultDescription
intentstringYesNatural-language description of what to execute (e.g. "resize images in /workspace to 800x600").
inputsobjectNoOptional structured inputs passed to the pipeline.
volume_idstringNoephemeralOptional persistent volume ID to use as workspace. When omitted, an ephemeral volume is created.
languagestringNopythonExecution language. One of: python, javascript, bash.
timeout_secondsintegerNoOptional execution timeout in seconds.
tenant_idstringNolocal tenantOptional tenant identifier.

Output:

{
  "pipeline_execution_id": "p1b2c3d4-...",
  "status": "started",
  "stream_url": "https://..."
}

Use aegis.execute.status or aegis.execute.wait to track completion.

aegis.execute.status

Returns the current status of an intent-to-execution pipeline run.

Access: User

skip_judge: true

PropertyTypeRequiredDefaultDescription
pipeline_execution_idstringYesUUID of the pipeline execution to check.
tenant_idstringNolocal tenantOptional tenant identifier.

Output (running):

{ "status": "running" }

Output (completed):

{
  "status": "completed",
  "final_result": "...",
  "duration_ms": 4523,
  "reused_existing_agent": false
}

Output (failed):

{
  "status": "failed",
  "reason": "...",
  "failed_at_state": "code_generation"
}

aegis.execute.wait

aegis.execute.wait is an alias for aegis.workflow.wait. Pass the pipeline_execution_id returned by aegis.execute.intent as the execution_id parameter.

Alias for aegis.workflow.wait. Blocks until pipeline execution completes.

Access: User

skip_judge: true

PropertyTypeRequiredDefaultDescription
execution_idstringYesUUID of the workflow/pipeline execution to wait for. Pass the pipeline_execution_id from aegis.execute.intent.
poll_interval_secondsintegerNo5Seconds between polls.
timeout_secondsintegerNo300Maximum wait time in seconds.

Output: Same shape as aegis.workflow.wait.


Tool Discovery (aegis.tools.*)

These tools enumerate the available MCP tool catalog. Results are filtered by the caller's SecurityContext — different tiers see different subsets of tools.

These tools have no formally enforced input schema in the orchestrator (the schema falls through to a generic { "type": "object" }). The parameters below are the de facto accepted values.

aegis.tools.list

List all MCP tools available to your security context with pagination and optional source/category filtering.

Access: User

skip_judge: true

No parameters — accepts an empty object {}.

Output:

{
  "tool": "aegis.tools.list",
  "tools": [
    {
      "name": "fs.read",
      "description": "Read the contents of a file...",
      "source": "builtin",
      "skip_judge": true
    }
  ],
  "total": 60
}

aegis.tools.search

Search for MCP tools by keyword, name pattern, source, category, or tags. Returns tools matching your query within your security context.

Access: User

skip_judge: true

PropertyTypeRequiredDefaultDescription
querystringNoSearch term matched against tool names and descriptions.

Output:

{
  "tool": "aegis.tools.search",
  "query": "workflow",
  "tools": [
    {
      "name": "aegis.workflow.create",
      "description": "...",
      "source": "builtin",
      "skip_judge": true
    }
  ],
  "total": 19
}

System Tools (aegis.system.*)

aegis.system.info

Returns system version, status, and capabilities.

Access: Operator

skip_judge: true

No parameters — accepts an empty object {}.

Output:

{
  "version": "0.12.0",
  "status": "healthy",
  "capabilities": ["workflows", "cortex", "seal_gateway"]
}

The status field is one of healthy or unhealthy.

aegis.system.config

Returns the current node configuration.

Access: Operator

skip_judge: true

No parameters — accepts an empty object {}.

Returns the raw YAML of the active node-config.yaml. See the Node Configuration Reference for the full schema.

Output:

{
  "config_path": "/etc/aegis/node-config.yaml",
  "content_yaml": "..."
}

Schema Tools (aegis.schema.*)

aegis.schema.get

Returns the canonical JSON Schema for a manifest kind (agent or workflow).

Access: User

skip_judge: true

PropertyTypeRequiredDefaultDescription
keystringYesSchema key to retrieve. Supported values: "agent/manifest/v1", "workflow/manifest/v1".

Output: The full JSON Schema object for the requested manifest type.

aegis.schema.validate

Validates a manifest YAML string against its canonical JSON Schema.

Access: User

skip_judge: true

PropertyTypeRequiredDefaultDescription
kindstringYesManifest kind to validate against. Supported values: "agent", "workflow".
manifest_yamlstringYesFull manifest YAML text to validate against the canonical schema.

Output:

{
  "valid": true,
  "errors": null
}

On failure: { "valid": false, "errors": ["error message 1"] }


Runtime Discovery (aegis.runtime.*)

aegis.runtime.list

List all supported standard runtime environments (language/version pairs). Call this before creating an agent manifest to ensure the declared runtime is valid.

Access: User

skip_judge: true

PropertyTypeRequiredDefaultDescription
languagestringNoFilter by language name (e.g. "python", "go").

Call aegis.runtime.list before writing spec.runtime in agent manifests to verify the exact language + version identifiers accepted by the platform. See the Standard Runtime Registry for the full list.

Output:

{
  "tool": "aegis.runtime.list",
  "runtimes": [
    {
      "language": "python",
      "version": "3.12",
      "image": "ghcr.io/100monkeys/runtime-python:3.12",
      "description": "CPython 3.12",
      "deprecated": false
    }
  ],
  "custom_runtime_supported": true
}

Zaru UI Tools

zaru.switch_mode is intercepted by the zaru-mcp-server and is never forwarded to the AEGIS orchestrator. It is only available when using the StreamableHTTP transport and is injected by the Zaru MCP server at the point of tool advertisement.

zaru.switch_mode

Suggest the user switch to a different conversation mode. Use this when the user's request cannot be fulfilled in the current mode. This renders a confirmation card inline in the chat — the user can accept, refuse, or dismiss.

Access: User

skip_judge: N/A (never reaches the orchestrator)

PropertyTypeRequiredDefaultDescription
target_modestringYesThe mode to switch to. One of: chat, agentic, architect, operator, execute.
reasonstringYesShort, plain-language explanation for the user. One sentence.

Output:

{
  "action": "mode_switch_requested",
  "target_mode": "agentic",
  "reason": "This request requires running an agent."
}

The Zaru client renders this response as an inline confirmation card. The user can accept, refuse, or dismiss the mode switch.

On this page

Tool Access TiersTool Availability by ContextZaru Conversation Mode Tool SetsChat ModeAgentic ModeExecute ModeArchitect ModeOperator ModeQuick-Reference TableFilesystem Tools (fs.*)fs.readfs.writefs.listfs.create_dirfs.create.dirfs.deletefs.editfs.multi_editfs.grepfs.globWeb Tools (web.*)web.searchweb.fetchDispatch Protocol Tool (cmd.run)cmd.runAgent Management Tools (aegis.agent.*)aegis.agent.createaegis.agent.listaegis.agent.updateaegis.agent.exportaegis.agent.deleteaegis.agent.generateaegis.agent.logsaegis.agent.searchaegis.agent.waitWorkflow Management Tools (aegis.workflow.*)aegis.workflow.createaegis.workflow.listaegis.workflow.validateaegis.workflow.updateaegis.workflow.exportaegis.workflow.deleteaegis.workflow.runaegis.workflow.generateaegis.workflow.logsaegis.workflow.waitaegis.workflow.cancelaegis.workflow.signalaegis.workflow.removeaegis.workflow.promoteaegis.workflow.demoteaegis.workflow.executions.listaegis.workflow.executions.getaegis.workflow.statusaegis.workflow.searchTask Management Tools (aegis.task.*)aegis.task.executeaegis.task.statusaegis.task.listaegis.task.cancelaegis.task.removeaegis.task.logsaegis.task.waitExecute Pipeline Tools (aegis.execute.*)aegis.execute.intentaegis.execute.statusaegis.execute.waitTool Discovery (aegis.tools.*)aegis.tools.listaegis.tools.searchSystem Tools (aegis.system.*)aegis.system.infoaegis.system.configSchema Tools (aegis.schema.*)aegis.schema.getaegis.schema.validateRuntime Discovery (aegis.runtime.*)aegis.runtime.listZaru UI Toolszaru.switch_mode