It's trivial enough to determine actions via a fast formula (including bitwise ops) or a LUT (lookup table which could be a dense array, sparse array or hashmap), given the available info coming in via AI senses. Combine with FSM and you'll have a simpler, quicker, more debuggable system.
I don't think you really need inference, here! You could instead demand various arguments to the formula and just leave unknown ones as defaults (e.g. zero) such that they don't contribute (much) to the end result in terms of actions to be taken by the AI.
I suppose one benefit you would get from Rete is the ability to "remember" without a full recalc each time... but I doubt that's something to be concerned about given your relatively tiny datasets. Bear in mind that any graph structure like Rete's tends to be much slower than dense or even sparse arrays of equal node count, as CPU cache benefits greatly by linear alloc / read-ahead as opposed to the random access style that dynamically-allocated graph nodes demand.