ThinkNode

ThinkNode(content: str, parent: ForwardRef('ThinkNode') | None = None)

A node in a tree structure representing a step in the reasoning process.
This class implements a tree node that stores content (text describing a reasoning step), maintains parent-child relationships, tracks node statistics, and provides utilities for traversing/visualizing the reasoning path.

Parameters:
NameDescription
contentType: str
parentType: ForwardRef(‘ThinkNode’) | None

Default: None

Static Methods

from_dict

from_dict(data: dict[str, Any], parent: ForwardRef('ThinkNode') | None = None) -> ThinkNode

Create ThinkNode from dictionary representation.

Parameters:
NameDescription
datadictionary containing node data

Type: dict[str, typing.Any]
parentParent node to attach to

Type: ForwardRef(‘ThinkNode’) | None

Default: None
Returns:
TypeDescription
ThinkNodeThinkNode: Reconstructed node with all children

Instance Attributes

trajectory


Get a formatted string representation of the path from root to this node.
Returns:
str: A formatted string showing the question and each step in the reasoning process

Instance Methods

backpropagate

backpropagate(self, reward: float) -> None

Update the score of this node and its parents using moving average.

Parameters:
NameDescription
rewardThe reward to backpropagate up the tree.

Type: float

to_dict

to_dict(self) -> dict[str, Any]

Convert ThinkNode to dictionary representation.
Returns:
dict[str, Any]: dictionary containing all node attributes and recursive children

Returns:
TypeDescription
dict[str, typing.Any]dict[str, Any]: dictionary containing all node attributes and recursive children

visualize_tree

visualize_tree(self) -> None

Visualize the tree of thoughts using graphviz.