Du kannst die AI-Objekte auch als Konstanten speichern. Dann verbrauchst du weniger Speicherplatz. Aber das ist jetzt nicht soo~ tragisch, denn soviel Speicher kosten die Objekte nicht.
Du kannst auch das Singleton-Pattern anwenden und deinen KI-Klassen eine Methode geben, welche immer dieselbe Instanz zurückgibt.
Code:
module KI
  class KI
    def self.instance()
      @instance ||= new()
    end
  end
  class Aggressive < KI
    def decide_what_to_do(enemy)
      # ...
    end
  end
  # ...
end
# ...
ki = KI::Aggressive.instance
ki2 = KI::Aggressive.instance
ki == ki2 # true
Du solltest dich auf diese Identität aber nicht verlassen. Beim Abspeichern und Neuladen der KIs haben die wieder eine eigene Instanz. Aber wie gesagt: du sparst dadurch letztlich nur etwas Speicher, mehr nicht.