@elizaos/plugin-workflow
v2.0.0-beta.1
Published
ElizaOS plugin for generating and running workflows in-process
Readme
@elizaos/plugin-workflow
In-process workflow engine for elizaOS agents. Generate and deploy automation workflows from natural language using a RAG pipeline. The plugin embeds its own execution engine — workflows run in the agent process, no separate sidecar.
Built on shared workflow type contracts from @elizaos/workflows. Supports the bundled node catalog used by the in-process runtime for routing decisions, with intelligent credential resolution and lifecycle management.
Configuration
No workflow-specific env vars are required. The plugin's EmbeddedWorkflowService runs CRUD + execution + scheduler + webhook handling locally inside the agent, persisted to the agent's Postgres schema.
Plugin Components
| Component | Purpose |
|---|---|
| EmbeddedWorkflowService | In-process workflow execution engine (CRUD + node runtime + scheduler + webhooks). |
| WorkflowService | Public service surface used by the agent's WORKFLOW umbrella action. Routes to the embedded workflows engine. |
| WorkflowCredentialStore | Stores workflow-scoped credentials (encrypted at rest). |
| workflowStatusProvider | Exposes engine status to the planner. |
| activeWorkflowsProvider | Lists active workflows for context. |
| pendingDraftProvider | Surfaces an in-progress draft so the agent can clarify before persisting. |
| Routes | Mounted at /api/workflow/* on the agent's HTTP server. |
The WORKFLOW umbrella action lives in @elizaos/agent and dispatches op-based commands (create, update, activate, run, delete, …) to this plugin's services.
RAG Pipeline (workflow generation from natural language)
- Extract keywords from the user request.
- Match against existing workflows (RAG over the workflow store) — return a match if one exists.
- Generate a new workflow definition if no match — LLM produces a node graph against the catalog from
src/data/. - Validate & repair node parameters / credentials / connections.
- Synthesize output schemas for downstream nodes.
- Position nodes for the visual editor.
Credential Resolution
Credentials are resolved at workflow-execution time. The plugin checks:
- Plugin-level
workflows.credentialsconfig map (deterministic). - Cached secrets via the agent's secret service.
- Stored credentials via
WorkflowCredentialStore. - LLM-driven
request_credentialresolution (prompts the user).
Routes
All routes mount at /api/workflow/:
GET /api/workflow/status— engine + plugin statusGET /api/workflow/workflows— listPOST /api/workflow/workflows— createGET /api/workflow/workflows/:idPUT /api/workflow/workflows/:idDELETE /api/workflow/workflows/:idPOST /api/workflow/workflows/:id/run— trigger executionGET /api/workflow/executions/:id— execution status / resultPOST /api/workflow/executions/:id/cancel- Webhook endpoints for trigger nodes are exposed dynamically per workflow.
Development
bun install
bun run build
bun run typecheck
bun run test
bun run lintLint/format is Biome 2.x. TypeScript 6+. ESM only.
License
MIT.
