Introduction
This document (notebook) provides visual dictionaries for the interpretation of graph-plots of LLM-graphs, [AAp1, AAp2].
The “orthogonal style” LLM-graph plot is used in “Agentic-AI for text summarization”, [AA1].
Setup
use LLM::Graph;
LLM graph
Node specs:
sink my %rules =
poet1 => "Write a short poem about summer.",
poet2 => "Write a haiku about winter.",
poet3 => sub ($topic, $style) {
"Write a poem about $topic in the $style style."
},
poet4 => {
llm-function => {llm-synthesize('You are a famous Russian poet. Write a short poem about playing bears.')},
test-function => -> $with-russian { $with-russian ~~ Bool:D && $with-russian || $with-russian.Str.lc ∈ <true yes> }
},
judge => sub ($poet1, $poet2, $poet3, $poet4) {
[
"Choose the composition you think is best among these:\n\n",
"1) Poem1: $poet1",
"2) Poem2: $poet2",
"3) Poem3: {$poet4.defined && $poet4 ?? $poet4 !! $poet3}",
"and copy it:"
].join("\n\n")
},
report => {
eval-function => sub ($poet1, $poet2, $poet3, $poet4, $judge) {
[
'# Best poem',
'Three poems were submitted. Here are the statistics:',
to-html( ['poet1', 'poet2', $poet4.defined && $poet4 ?? 'poet4' !! 'poet3'].map({ [ name => $_, |text-stats(::('$' ~ $_))] })».Hash.Array, field-names => <name chars words lines> ),
'## Judgement',
$judge
].join("\n\n")
}
}
;
Remark: This is a documentation example — I want to be seen that $poet4 can be undefined. That hints that the corresponding sub is not always evaluated. (Because of the result of the corresponding test function.)
Make the graph:
my $gBestPoem = LLM::Graph.new(%rules)
Now. to make the execution quicker, we assign the poems (instead of LLM generating them):
# Poet 1
my $poet1 = q:to/END/;
Golden rays through skies so blue,
Whispers warm in morning dew.
Laughter dances on the breeze,
Summer sings through rustling trees.
Fields of green and oceans wide,
Endless days where dreams abide.
Sunset paints the world anew,
Summer’s heart in every hue.
END
# Poet 2
my $poet2 = q:to/END/;
Silent snowflakes fall,
Blanketing the earth in white,
Winter’s breath is still.
END
# Poet 3
my $poet3 = q:to/END/;
There once was a game on the ice,
Where players would skate fast and slice,
With sticks in their hands,
They’d score on the stands,
Making hockey fans cheer twice as nice!
END
# Poet 4
sink my $poet4 = q:to/END/;
В лесу играют медведи —
Смех разносится в тиши,
Тяжело шагают твердо,
Но в душе — мальчишки.
Плюшевые лапы сильны,
Игривы глаза блестят,
В мире грёз, как в сказке дивной,
Детство сердце охраняет.
END
sink my $judge = q:to/END/;
The 3rd one.
END
Graph evaluation
Evaluate the LLM graph with input arguments and intermediate nodes results:
$gBestPoem.eval(topic => 'Hockey', style => 'limerick', with-russian => 'yes', :$poet1, :$poet2, :$poet3, :$poet4)
#$gBestPoem.eval(topic => 'Hockey', style => 'limerick', with-russian => 'yes')
Here is the final result (of the node “report”):
#% markdown
$gBestPoem.nodes<report><result>

Default style
Here is the Graphviz DOT visualization of the LLM graph:
#% html
$gBestPoem.dot(engine => 'dot', :9graph-size, node-width => 1.2, node-color => 'grey', edge-width => 0.8):svg
Here are the node spec-types:
$gBestPoem.nodes.nodemap(*<spec-type>)
Here is a dictionary of the shapes and the corresponding node spec-types:

Specified shapes
Here different node shapes are specified and the edges are additionally styled:
#% html
$gBestPoem.dot(
engine => 'dot', :9graph-size, node-width => 1.2, node-color => 'Grey',
edge-color => 'DimGrey', edge-width => 0.8, splines => 'ortho',
node-shapes => {
Str => 'note',
Routine => 'doubleoctagon',
:!RoutineWrapper,
'LLM::Function' => 'octagon'
}
):svg
Similar visual effect is achieved with the option spec theme => 'ortho':
$gBestPoem.dot(node-width => 1.2, theme => 'ortho'):svg
Remark: The option “theme” takes the values “default”, “ortho”, and Whatever.
Here is the corresponding dictionary:

References
Articles, blog posts
[AA1] Anton Antonov, “Agentic-AI for text summarization”, (2025), RakuForPrediction at WordPress.
Packages
[AAp1] Anton Antonov, LLM::Graph, Raku package, (2025), GitHub/antononcube.
[AAp2] Anton Antonov, Graph, Raku package, (2024-2025), GitHub/antononcube.