Complex systems are systems made of (many) autonomous agents that massively and locally interact with each others.
There exists two types of complex systems: complex simple systems (CSS) and complex adaptative systems (CAS). The main difference between CSS and CAS is “who” the agents are. In a CSS, agents follow a set of behavioral rules that is fixed. In CAS, the set of behavioral rules can evolve, usually according to some sort of stochastic process intertwined with the environment. An example of a “simple” agent in a CSS is a particle, for instance in a fluid. An example of an adaptative agent in a CAS is a living being, for instance a human who interacts with his.her social environment.
Because of the decentralized nature of the interactions among the agents, making accurate predictions with complex systems is challenging. It is even harder when agents can adapt. As far as I know, there is no mathematical “general theory” of complex systems that can be used to make accurante predictions. We only know complex systems through approximations of different kinds – including computational approximations, for instance agent-based models.