Add up two algebraic numbers
Mathematica, 32 bytes

Resultant[#,#2/.x-&gt;z-x,x]/.z-&gt;x&amp;


Or the same length:

Resultant[#/.x-&gt;y,#2/.x-&gt;x-y,y]&amp;


Example:

In[1]:= Resultant[#,#2/.x-&gt;z-x,x]/.z-&gt;x&amp;[x^4 - 10 x^2 + 1, x^2 + 1]

Out[1]= 144 + 192 x^2 + 88 x^4 - 16 x^6 + x^8

In[2]:= Resultant[#/.x-&gt;y,#2/.x-&gt;x-y,y]&amp;[x^2 - 2, x^2 - 2]

Out[2]= -8 x^2 + x^4


Explanation:

If x is a root of f(x), y is a root of g(y), and let z = x + y, then (x, z) is a root of the simultaneous equations f(x) = 0, g(z - x) = 0. Then we can eliminate the variable x using the resultant.