I'm making an application that analyses one or more series of data using several different algorithms (agents). I came to the idea that each of these agents could be implemented as separate Python scripts which I run using either the Python C API or Boost.Python in my app.
I'm a little worried about runtime overhead TBH, as I'm doing some pretty heavy duty data processing and I don't want to have to wait several minutes for each simulation. I will typically be making hundreds of thousands, if not millions, of iterations in which I invoke the external "agents"; am I better of just hardcoding everything in the app, or will the performance drop be tolerable? 
Also, are there any other interpreted languages I can use other than Python?
you could probably create an embedded language using C++ templates and operator overloading, see for example ublas or ftensor matrix languages.  i do not think python or other interpreted languages of is suitable for having numbercrunching/data processing.
Selecting An Embedded Language