I know some similar questions have already been asked, but I think they are asking for simulating touch in their own applications, however I want to make an agent that can \"use
You can use robotium to program (in java) to click on any button or on any co-ordinates on the screen. Its simple to set up and use.
Have you tried Selendroid? http://selendroid.io/
I haven't tried it myself, I only know of it because I use Selenium for Web Applications.
Selenium is able to simulate a series of input events. For this purpose, one can either work with coordinates or DOM elements (divs, buttons, textfields etc).
Your usecase should be exactly what selendroid was made for.
I had to search a bit for this. I was also looking for this solution.
NO ROOTING REQUIRED FOR THIS: If you want to repeat a sequence of steps like fill a form, repeat game steps because redoing is boring, You can try : FREP Android App from Play Store(Link).
If you want to add conditional scenarios like, when you play Clash of Clans with home Wifi, turn data automatically and disable wifi ( Because Airtel Wifi in India is unpredictable and can make you loose the clan war!!) use, Macro Droid from Play Store.
You can try these as well: Mahiro Many apps are available based on Tasker like, Auto Input. You can maybe code/write macro to make personal solution with this Tasker App.
You can also try Robotium (where you programmatically, in Java, click buttons etc), or MonkeyRunner (to send random UI events).