If you want to save exactly the whole branch under which your graph resides, you could try setting the local root as the owner of all graph nodes, and then use
PackedScene functionality: https://docs.godotengine.org/en/3.0/classes/class_packedscene.html
Please note that this will only save what the editor would usually save. So for example, non-exported vars won't be considered.
I'd like to mention that, on the other hand, you can indeed save your own format manually, which is a lot more tedious but in some cases it's more correct because what you want to save is not an edited Godot scene (which may include a lot of things you don't care about or sometimes can't even be saved), but a graph for enemies. To better illustrate what I mean here, let's say you have a spreadsheets app implemented in HTML5. To save a spreadsheet, would you save the whole HTML DOM tree with a JS dictionary? Or would you save an ODS/XLS file?
So there is indeed a simple way to save nodes, just pick the method that you think is better for you :)