Nous.Workflow.Mermaid (nous v0.16.3)

View Source

Generate Mermaid flowchart diagrams from workflow graphs.

Example

graph = Nous.Workflow.new("pipeline")
  |> Nous.Workflow.add_node(:a, :agent_step, %{agent: nil}, label: "Plan")
  |> Nous.Workflow.add_node(:b, :parallel, %{branches: [:c, :d]}, label: "Search")
  |> Nous.Workflow.add_node(:c, :transform, %{transform_fn: &Function.identity/1}, label: "Web")
  |> Nous.Workflow.add_node(:d, :transform, %{transform_fn: &Function.identity/1}, label: "Papers")
  |> Nous.Workflow.add_node(:e, :agent_step, %{agent: nil}, label: "Report")
  |> Nous.Workflow.connect(:a, :b)
  |> Nous.Workflow.connect(:b, :e)

IO.puts Nous.Workflow.Mermaid.to_mermaid(graph)

Output:

```mermaid
flowchart TD
    a["Plan"]
    b{{"Search"}}
    c["Web"]
    d["Papers"]
    e["Report"]
    a --> b
    b --> e
    b -.-> c
    b -.-> d
```

Summary

Functions

Generate a Mermaid flowchart string from a workflow graph.

Functions

to_mermaid(graph, opts \\ [])

@spec to_mermaid(
  Nous.Workflow.Graph.t(),
  keyword()
) :: String.t()

Generate a Mermaid flowchart string from a workflow graph.

Options

  • :direction — flowchart direction, one of "TD", "LR" (default: "TD")