Headless software

How do we design software when users use it primarily through agents?