Just remove the runtime parameter: @tool("foo_tool", description="test tool") def foo_tool() -> Command: return Command(update={"called_tool": True}) This will run perfectly with the pre-built ToolNode.