Visual flow of all agent tasks — delegation chains, real-time status, and multi-agent handoffs on an interactive canvas.
The Task Pipeline page provides a full-screen, zoomable, pannable canvas that renders every task as a node in a left-to-right flow graph. Tasks are grouped into delegation chains — horizontal rows where each step represents a handoff between agents. Orphan tasks (not part of any chain) are displayed in a separate row.
Key capabilities include:
When you open the Task Pipeline, the system:
/task-pipeline endpoint along with aggregate statistics.chainId are grouped into horizontal rows, sorted by chainSeq. Single-task "chains" become orphans./task-pipeline/stream pushes task updates in real-time. Stats refresh every 15 seconds.A chain is a sequence of tasks linked by a shared chainId. When a manager agent delegates work to a junior agent, both tasks share the same chain. Each task has a chainSeq (sequence number) determining its position in the flow.
| Type | Color | Description |
|---|---|---|
| Delegation | Indigo | Standard work handoff to another agent |
| Review | Amber | Task sent for quality review |
| Revision | Orange | Task returned for corrections |
| Escalation | Red | Task escalated to a senior agent |
| Return | Green | Task returned to original requester |
When a task returns to an agent who already appeared earlier in the chain (e.g., Agent A → B → A for revision), the edge renders as an upward arc to visually distinguish the loop from forward flow.
| Action | Effect |
|---|---|
| Hover on a node | Highlights the entire chain, dims all other nodes |
| Click a node | Expands an inline chain flowchart below the node showing the person-centric flow |
| Double-click a node | Opens the full Task Detail modal |
| Scroll wheel | Zoom in/out (range: 15%–300%) |
| Click + drag background | Pan the canvas |
| Status | Color | Meaning |
|---|---|---|
| Created | Indigo | Task exists but hasn't been assigned yet |
| Assigned | Amber | Task assigned to an agent, not yet started |
| In Progress | Cyan | Agent is actively working on this task (animated pulse) |
| Completed | Green | Task finished successfully |
| Failed | Red | Task encountered an error |
| Cancelled | Gray | Task was manually cancelled |
| Priority | Color |
|---|---|
| Urgent | Red |
| High | Amber |
| Normal | Indigo |
| Low | Gray |
The expanded chain view (shown when clicking a node) renders a person-centric flow:
Arrows between steps are labeled with the delegation type (delegation, review, revision, etc.) and colored accordingly.
Each task can have a source indicating where it originated:
| Source | Icon | Color |
|---|---|---|
| Telegram | ✈️ | #0088cc |
| 💬 | #25d366 | |
| ✉️ | #ea4335 | |
| Google Chat | 🗨️ | #1a73e8 |
| Internal | ⚙️ | #6b7394 |
| API | 🔗 | #8b5cf6 |
Below the toolbar, a compact metrics bar shows real-time stats:
Double-clicking a task node opens a detailed modal containing:
The toolbar provides:
The pipeline maintains a persistent Server-Sent Events connection to /api/engine/task-pipeline/stream. Events include:
On every task event, stats are also refreshed. A 15-second interval additionally polls stats as a fallback.
The Task Pipeline works out of the box once agents are configured and tasks are being created. No additional configuration is required.
When an organization is selected via the org switcher, the pipeline filters tasks to only show those belonging to agents in that organization.
Agent avatars are resolved from config.identity.avatar, config.avatar, or config.persona.avatar. If none is set, a colored initial circle is displayed.
| Endpoint | Method | Description |
|---|---|---|
/task-pipeline?limit=200 | GET | Fetch tasks |
/task-pipeline/stats | GET | Aggregate statistics |
/task-pipeline/stream | SSE | Real-time task updates |
/task-pipeline/:id/cancel | POST | Cancel a task |
chainId so the pipeline can visualize the full delegation flow.customerContext on chain-origin tasks so support workflows display customer badges.| Issue | Solution |
|---|---|
| Canvas is empty | Check filter is set to "All" — the "Active" filter hides completed/failed tasks. Also verify agents exist in the selected organization. |
| No live indicator | SSE connection failed. Check network and ensure /api/engine/task-pipeline/stream is accessible. Click Refresh. |
| Tasks not showing chains | Ensure tasks have a chainId set. Single-task chains are treated as orphans. |
| Canvas zoom is too small/large | Click "Fit" to auto-zoom, or use scroll wheel to adjust manually. |
| Agent avatars missing | Set config.identity.avatar on the agent configuration. |