Using an entity component system (ECS) might be suitable for you. It is similar to the strategy pattern but any combination of "strategies" is possible and also saving state along with them.
This seems to be a flavor of the State design pattern, which is similar to Strategy; either or both of these might be applicable for the agent implementation. As others have stated, Factory is good for externalizing the creation of complex objects, and also using subclasses to add special case complexity.
As to a configuration language, Siggy, something like YAML might actually be more useful for specifying run-time behavior. There exist a number of open source YAML libraries.