Agent Manager
Agent Manager (Cmd+Alt+A) is where you build, configure, and run multi-agent workflows. It includes a visual Workflow Composer for drawing pipelines as node graphs, plus a dashboard for monitoring active and past runs.
Available in the open source edition. No Enterprise license required.
Workflow Composer
The Workflow Composer is a visual graph editor. Drag nodes from the palette, wire them together, configure each step, and run — the result is saved as .inverse/workflows/<id>.json.
Opening the Composer
Open Agent Manager (Cmd+Alt+A) and click New in the toolbar, or open an existing workflow from the Open dropdown.
Node Types
| Node | Description |
|---|---|
| Trigger | Starts the workflow (manual, file save, on commit, schedule, terminal command) |
| Agent | One LLM agent step — assign an agent, pick tools, set max iterations |
| Condition | Branches based on the previous step's output (true / false paths) |
| Transform | Merges or reshapes outputs from multiple steps |
| Output | Terminal sink — marks the end of a pipeline path |
| Group | Visual container for organizing related nodes (no execution effect) |
Building a Pipeline
- Drag a Trigger node from the left palette onto the canvas
- Drag Agent nodes for each step you want
- Connect them: click and drag from an output port (right side of a node) to an input port (left side of the next node)
- Configure each node: click a node to open the property panel on the right
- Save with the toolbar Save button — writes to
.inverse/workflows/ - Run with the toolbar Run button
Canvas Controls
| Action | How |
|---|---|
| Pan | Middle-click drag, or Space + drag |
| Zoom in/out | Ctrl/Cmd + scroll wheel |
| Select node | Click |
| Select multiple | Shift + click, or Shift + drag marquee |
| Move node | Drag |
| Delete selected | Delete or Backspace |
| Undo | Ctrl/Cmd + Z |
| Redo | Ctrl/Cmd + Shift + Z |
| Select all | Ctrl/Cmd + A |
| Duplicate | Ctrl/Cmd + D |
| Auto-layout | Toolbar Layout button |
| Fit to screen | Toolbar Fit button |
Nodes snap to a 20px grid by default.
Connecting Nodes
Drag from an output port (circle on the right edge of a node) to an input port (circle on the left edge). The connector turns green when the connection is valid, red when it isn't.
Connections are rejected if:
- They would create a cycle
- Port types are incompatible (e.g. a JSON output into a flow-only input)
- The target port already has its maximum number of incoming connections
Configuring a Node
Click any node to open its configuration in the right panel.
Agent node settings:
| Setting | Description |
|---|---|
| Agent | Which agent to run (from .inverse/agents/) |
| Role | Semantic label: planner, executor, validator, reviewer |
| Allowed Tools | Tools this step may call — unchecked tools are blocked |
| Max Iterations | LLM + tool loop limit before force-stop (default: 20) |
| Context Mode | How much workspace context to inject: full, relevant, or minimal |
| System Prompt Override | Replaces the agent's default instructions for this step only |
Trigger node settings:
| Trigger type | Extra settings |
|---|---|
| File Save | Glob pattern (e.g. src/**/*.ts), debounce ms |
| On Commit | Branch filter (regex), path filter (glob) |
| Schedule | Interval in minutes |
| Terminal Command | Shell command to poll, fire on success / failure / any exit |
| Manual | None — run button only |
Validation
Click Validate in the toolbar to check the graph before running:
- Error: agent node with no agent assigned
- Error: cycle detected
- Warning: disconnected (orphan) node
- Warning: trigger not connected to any step
Errors block Run. Warnings don't.
Triggers
Workflows can start automatically without pressing Run.
File Save
Fires when any file matching the configured glob is saved. A debounce delay (default 300ms) prevents repeated fires during rapid saves.
On Commit
Fires after a git commit. Optionally filtered by branch name regex or committed file paths.
Schedule
Fires on a repeating interval (configured in minutes). Starts counting from when the workflow is enabled.
Terminal Command
Polls a shell command on a configurable interval. Fires when the exit code matches your condition (failure by default — useful for "run the linter and fix errors automatically").
Manual
Only runs when you click Run in the Composer, call the API, or trigger it from another workflow.
Running a Workflow
Click Run in the Composer toolbar. The run panel slides up from the bottom of the canvas showing:
- Each step as a row with a status indicator
- Live output log as each agent streams its response
- Tool calls made per step (last 5 shown, expandable)
- Elapsed time per step and total
- A Cancel button to stop the run at any point
Step status indicators:
| Color | Status |
|---|---|
| Amber (pulsing) | Running |
| Green | Done |
| Red | Failed |
| Grey | Pending or skipped |
If a step fails, the error message is shown inline. The workflow stops at the failed step by default.
Agents
Agents are the building blocks of workflows. Each agent is defined in .inverse/agents/<id>.json.
Creating an Agent
- Open Agent Manager
- Go to the Agents tab
- Click New Agent
- Set: name, model (provider + model name), system instructions, allowed tools, max iterations
Built-in agents are provisioned automatically the first time you open an empty .inverse/agents/ directory. You can edit them in place.
Agent Fields
| Field | Description |
|---|---|
| Name | Display name |
| Model | Provider + model pair (from your BYOLLM config) |
| System Instructions | Full agent persona and task instructions |
| Allowed Tools | Tools from the registry this agent may call |
| Max Iterations | Hard limit on LLM + tool loop (default: 20) |
| Tags | Optional labels for filtering |
Workflow JSON Format
Workflows are plain JSON files in .inverse/workflows/. You can edit them directly.
{
"id": "scaffold-component",
"name": "Scaffold Component",
"description": "Creates a new React component from a template",
"trigger": "manual",
"enabled": true,
"steps": [
{
"id": "plan",
"agentId": "planner",
"role": "planner",
"allowedTools": ["readFile", "listDirectory"],
"maxIterations": 10
},
{
"id": "build",
"agentId": "code-writer",
"role": "executor",
"dependsOn": ["plan"],
"allowedTools": ["readFile", "writeFile", "editFile"],
"maxIterations": 20
}
]
}Steps with no dependsOn run as soon as their trigger fires. Steps with dependsOn wait until all listed steps complete, then receive those steps' outputs as context.
Trigger-specific fields
| Trigger | Fields |
|---|---|
file-save | triggerGlob (glob string) |
schedule | scheduleIntervalMinutes |
terminal-command | triggerCommand, triggerOnExit (success / failure / any) |
Built-in Workflow Templates
Agent Manager ships with pre-built workflow templates accessible from the Composer's New dropdown. Templates cover common patterns: code review, test generation, documentation sync, dependency updates, and more.
Templates are provisioned from builtinLibrary.ts and can be modified after loading.
Run History
Completed runs are stored in memory for the current session (up to 50 entries). The Agent Manager dashboard shows:
- Workflow name and trigger type
- Start time and duration
- Final status (done / failed / cancelled)
- Aggregated final output from the last completed step
Click any run to expand its step-by-step breakdown.