Desktop app and core engine for composing and running agentic workflows
OpenFlow defines 8 tools with complete JSON schemas and descriptions. Naming follows verb_noun convention (openflow_set_workflow_meta, openflow_add_node, etc.). Descriptions are present and substantive (100-200 chars typical), explaining WHAT and WHEN. However, parameter descriptions are sparse or missing for many fields. For example, openflow_add_node's 'handoffTemplate' lacks a description; openflow_set_workflow_meta's 'sharedContext' is undescribed. Output schemas are not documented. Error handling is minimal, no recovery guidance or categorization. The edit and apply_patch tools have vague descriptions ('Edit tool handler, replace mode and hashline mode') that don't explain WHEN to use them or what they return. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels (WRITE, DESTRUCTIVE). Composition is reasonable, tools are single-purpose, but chaining is unclear (e.g., does openflow_add_node return a node object that openflow_add_edge can reference?).
Apply patches to files. Patches in one envelope are applied sequentially. If a later entry fails, earlier entries remain on disk (non-atomic multi-file apply).
Edit tool handler — replace mode and hashline mode. Supports both replace mode (path + edits) and hashline mode (input string with ¶path#TAG sections).
Connect two existing nodes. from and to must match node ids.
Add one agent node. Call once per node with short prompts (1-2 sentences). Markdown handoffs are first-class and default: set handoffFormat to markdown to materialize the final output as HANDOFF.md. Use json plus outputSchema only for typed machine data.
Remove an edge by id.
Remove a node and any edges touching it.
Parameter descriptions missing or incomplete. 'handoffTemplate', 'sharedContext', 'outputSchema' lack descriptions. LLMs cannot infer parameter meaning from names alone.
Output schemas not documented. Tools return results but LLMs don't know what fields to expect, breaking downstream chaining and forcing discovery calls.
No tool annotations despite clear risk levels. openflow_remove_node and openflow_remove_edge are DESTRUCTIVE but lack destructiveHint annotation. Agents cannot reason about irreversibility.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2025-06-18+ | v2 |
Set workflow name, optional shared context, and optional Plan → Execute review/freeze node. The Plan Mode source must be an existing node with requestUserInput true.
Update fields on an existing node by id. Set handoffFormat to markdown for a human-readable HANDOFF.md, or json plus outputSchema for typed machine data.
apply_patch and edit have vague descriptions. 'Apply patches to files' and 'Edit tool handler, replace mode and hashline mode' don't explain WHEN to use them, what formats they accept, or what they return.
No error handling guidance. Tools lack recovery hints (e.g., 'If node not found, call openflow_list_nodes first'). Agents cannot self-correct on failures.