I've been circling around the topic of agency for a few decades now. I wrote a dissertation on how metaphors of agency are baked into computers, programming languages, and the technical language engineers use to talk about them. (See Agency at the Media Lab).
I glommed onto the topic of agency in graduate school at the MIT Media Lab , and wrote a dissertation that explored its relationship to computation. That work, while it garnered some praise, I have thought of mostly as a failure. It opened up some interesting questions, but didn't really provide much in the way of answers. It tried to do too many different things (which might indicate problems with my own agency).
Bruno Latour ref. If you take away agency from humans you end up giving it to neurons or proteins etc. This insight was at the root of my dissertation but it's weird to hear it from Weird Studies. "They can't communicate an idea without assuming agents". YES. Selfish Gene ref. Latour: at the hypothesis stage you assume agency, and at the end you must use agecny to explain. But in the middle, its just math, not agency (hm, wish I had the exact ref).
Something I wrote about in my dissertation, as something of a preliminary to animacy and agency. I was heavily influenced by Lakoff and Johnson's well-known metaphor theory, which blew my mind in such a way that I can't quite remember what it was like to not have a constant reminder in my head that our most abstract concepts are built out of useful culturally evolved mappings to and from the physical embodied world.
Computer programming environments for learning should make it easy to create worlds of responsive and autonomous objects, such as video games or simulations of animal behavior. But building such worlds remains difficult, partly because the models and metaphors underlying traditional programming languages are not particularly suited to the task. This dissertation investigates new metaphors, environments, and languages that make possible new ways to create programs – and, more broadly, new ways to think about programs. In particular, it introduces the idea of programming with "agents" as a means to help people create worlds involving responsive, interacting objects. In this context, an agent is a simple mechanism intended to be understood through anthropomorphic metaphors and endowed with certain lifelike properties such as autonomy, purposefulness, and emotional state. Complex behavior is achieved by combining simple agents into more complex structures. While the agent metaphor enables new ways of thinking about programming, it also raises new problems such as inter-agent conflict and new tasks such as making the activity of a complex society of agents understandable to the user. To explore these ideas, a visual programming environment called LiveWorld has been developed that supports the creation of agent-based models, along with a series of agent languages that operate in this world.