These restrictions should be implemented on tech trading between the player and the AI. They close most of the exploits available to the player, will make the AI more competitive, and are also realistic.
1) Specialization Techs: Neither the player nor the AI can trade for a "specialization" tech when they already possess a different option for that specialization.
2) Prerequisites: Both the player and the AI can only trade for a tech that is available for them to research. They cannot trade for a tech for which they do not have the prerequisites. For example, if the research chain is A>B>C and the player possesses only A, the player can trade for B but not C.
3) Relations: Negative relations discourage the AI from trading techs with the player. Two options below:
a ) The AI will NOT trade technology away to the player unless the AI has a positive (+ or greater) of the player. (The AI will, however, accept tech as part of a trade from the player regardless of relation.)
b ) The price required by the AI for tech trading is dependent upon the AI opinion of the player. Neutral opinion (0) = baseline prices. -1 opinion = 125% price, -2 = 150%, and so on. +1 opinion = 95%, +2 = 90%, +3 or greater = 85%.
4) Restrictions on Military Tech: If the player and the AI share a border and do not have a non-aggression pact or alliance, the AI will not trade military technology to the player.
5) Cooldown for Techs Received Through Trade: Techs received by the player through trade cannot be re-traded to other AI factions for X number of turns. (e.g. 5 turns)
6) Resource Trading: (This is general improvement to all trading.) The trade value that the AI places on resources is dependent upon the AI's supply/demand of that resource. The AI will seek to maintain a minimum surplus of each resource and will only trade for that resource up to its target surplus (S). The target surplus (S) is dependent on the current usage of that resource by the AI (including buildings and ships but excluding trade):
a ) If the AI is using less than 6 units of the resource, S = 3
b ) If the AI is using more than 20 units of the resource, S = 10
c ) Otherwise, S = half of the number of resource units currently being used by the AI.
Example: The AI has 19x durantium and is using 14x durantium, leaving 5x durantium as surplus. The target surplus (S) = 7 = 14 * 50%. Thus, the AI will only trade for 2 additional durantium.
Note: A more elegant way to do this is to have the trade value of the resource slowly decrease as the quantity increases. But having a hard cut-off at S works well too.