It doesn't work like the "traditionnal" cluster. You cannot select a "prefered node" with AG.
As AGs are independant, you could have some primary on one node and other on the other node, with some TSQL coding, you could create a job that would "rebalance" your AGs and an alert that would launch this job on different trigger (server reboot, AG state change, etc).
This is not something I would do as:
1 - This can cause more failover then wanted. Each time a server will be reboot, some AG will failover to the other node and after a min or two, will have to fail back
2 - (which I think is the most important reason) You may end up exceeding the SQL server capacity without noticing it.
Let's say you have AG1 and AG2. You put AG1 on node1 and AG2 on node2. Everything is working fine. Gradually, AG1 and AG2 start using more ressources. AG1 uses about 75% of the CPU on Node1 and same for AG2 on node2.
At that point, n body will raise any warning as servers will be running at 3/4 of their capacity so no performance issue, no monitoring warning, etc...
Now let's say Node1 dies and you need to run only on node2 for a couple of days... suddently, you would need 150% of the CPU which may cause a lot of problem (I'm guessing those app are in AG because they are business critical).
Usually, I prefer to run all my AGs on the same node and make sure everything is tune to work. I also make sure Node2 have the same sizing as node1 and I will run on Node1 until it's patch then on Node2 until this one is patch (usually more then 1 week). That way, I can make sure the AG is working fine and that in case of an incident with one of the node, everything will keep running just fine