from inspect import signature
from typing import Any


def is_node_function(node: Any):
    """
    Check if an arbitrary object is a Node.

    If it looks like a Node, it's a Node. A node is a Callable that accepts
    two parameters: An actor and a context.

    :param node: The callable to check.
    :type node: Any
    :return: bool
    """
    if not callable(node):
        return False

    sig = signature(node)
    if len(sig.parameters) != 2:
        return False
    return True