Waiting time, waiting for time: reflections on the character of waiting while operating an AI agent
Writing this took longer than I thought. I had to wait for suitable occasions to write, which were few and far between in the late summer back-to-work-back-to-school frenzy.
In the previous essay, I chose as the dyad of comparison writing code myself versus operating an AI agent. In this essay I will compare the characteristics of waiting while making bread to waiting while operating an AI agent to make a tool. I will also occupy a dual place; one where I both explore the phenomenology — in the philosophical sense of the study of experience from a first-person perspective — of waiting for the AI agent, and reflect on aspects of the nature of that waiting. The reason I do this is partly selfish; I want to better capture the character of my own subjective experience to understand what effects working with AI has on it, on my attention, on my ability to be creative, to do what I value.
Why making bread? The processes of getting to the output of both bread and tool are interspersed with periods of waiting; and there is an interaction between me and ”invisible agents” working in the background, in my absence. To me, the processes are analogous in ways that make the differences illuminating.
I then make digressions on the structural differences of the narrative of these two processes, on waiting per se and what fills the time of waiting, ending with a sketch of an AI eschatology.
There are many sides to waiting, taken either as an internal or external phenomenon, and which aspect of it we are concerned with is treated by different disciplines, such as philosophy, sociology, literature. I will draw connections to them when I believe it will enrich the essay.
One can wait in public office queues, in political asylums, in hospital beds. One can, more trivially, wait for the website to load, for the bus to come, for the AI agent to complete its task. All of these seem to me to have vastly different experiential textures and, when observed from the inside, phenomenologies.
Waiting is one of our most universal occupations.
Making bread
It’s late in the evening, a good time to start working if I want bread for the next day. Making bread from scratch, with a living levain, requires planning, waiting, and submitting to the effects of the elements.
The first thing is to wake up the dormant levain, which is kept in that state of suspended animation by the cold temperatures of the fridge. I do that by making a 1:1:1 mix of levain, flour and water, and waiting until the concoction has doubled in size and bubbles carve out airy pockets in its gummy mass. That wait takes about 12 hours, which is enough time for me to make dinner, eat, read a few more chapters of a book before bed, and then sleep. The making of bread is an item in tomorrow’s to-do list, and besides that I barely think of it.
The next day when I go to the kitchen after waking up I see a bubbly levain, so I can set out to work. I brew a cup of black, strong coffee — the way Brazilians like it — and lay all the ingredients on the kitchen counter: white flour, levain, water, olive oil, salt. After mixing the ingredients well until it becomes a dough that sticks to my hands, I transfer it to a lightly greased bowl and fold it a few times. Folding is the act of stretching out an edge of the dough and literally folding it onto the remaining blob; that directs the gluten proteins to form threads. I do that until the dough looks approximately like a misshapen ball, then cover it with a plastic bag. I place the bowl inside a warm cabinet in the kitchen and set the alarm for thirty minutes, time during which the dough will rest. Thirty minutes is enough for me to turn on the computer and catch up on yesterday’s work. I open Wolfram’s Mathematica and reacquaint myself with the results I reached yesterday.
I do this folding cycle four more times; each time I remove the bowl from the cabinet, fold the dough, return it to the cabinet, and set the alarm, after which I sit in front of the computer and do some more coding for the analysis of the model I am working on. My waiting time is filled by coding. The alarm lets me focus on the work, and the work itself is of a kind that is not so laborious to get into; it is easily broken into manageable chunks such that I can stop and pick up later without much friction. But this is also a time when work is taking place in my absence: the microorganisms that ferment the dough, acidifying it; and the mechanics of gluten proteins relaxing from the tension of each fold, ready for the next one.
Then comes the next phase. I put a sheet of baking paper underneath the dough, cover it with a cloth this time, and put it back in the cabinet to rest for 2-4 hours. This is called bulk fermentation. It is the time of most intense activity. During this time, the existing population of yeast and lactic bacteria is multiplying. The yeasts eat sugars and give off CO₂ and ethanol; the bacteria produce lactic and acetic acid. The gluten is not idle either. Under steady internal pressure it slowly yields; the mesh stretches thinner and thinner.
Time is here only a proxy, and so is “doubling in size”. The real cue to stop is a dough that is dome shaped, somewhat jiggly, and behaves as a single body. The cue is legible. If I wait too long, the proteins get too weak and the whole structure collapses under its own weight, turning flat. If I don’t wait long enough, I get a dense, rubbery bread.
I have to know when to stop. Whatever I end up doing in the 2-4 hours during which the yeast and bacteria are hard at work — work that happens independently of me — I have to actively check the bread after a time I judge, informed by previous experience, that I should check it. I set the alarm for 3 hours and I can mentally disconnect from the fact that I am waiting for the dough to grow. Thus, I can focus deeper on another activity. Or just go about living. Whereas the first waiting intervals were just long enough to do some coding, this next stretch is long enough for me to skim through a paper and write several paragraphs of a chapter of my doctoral thesis.
Building a tool with an AI coding agent
It is some years later. I have a project at work that, after some exploration, turns out to require that I build a tool. Following the initial writing and sketching I always do before starting work with an AI agent, I write a thorough description of the problem, and my idea for a solution. The prompt includes an ask to make a plan for implementing the solution with the agent’s own improvements on my idea, and an invitation for it to ask me for clarifications. That sometimes turns out to be the case, since “you don’t know what you don’t know”. I know the AI agent’s planning usually takes more than a minute, but I don’t know if the agent will ask me anything, so I stay for a bit, checking the output for maybe 30 seconds. It asked me a few questions, to which it gave me some predefined options. I answered, then swapped to my browser to start another AI session, asking it for critiques of an idea for a project I was trying to get off the ground. That in itself led to another undetermined interval of waiting, so I went back to the first session to check whether the agent had finished the plan. It had. I skimmed over it, approved it, and went back to the second session to read the output to my request for critique. I read that; now the feedback needs to simmer in my mind, so I went back and checked what the first agent is up to. Still working. I stay on the streaming output if I think what the agent needs to do is a very short thing (i.e. less than a minute), and that I might soon get some new output to test. Another 15 seconds pass, still working. So I opened a new browser tab, spun up a third AI session, and asked a question about a result I read in a paper earlier that week.
I don’t know how long it has been since I started. I look at the clock on the top right of my screen and realize it feels much longer than it actually has been. To avoid the frustration of starting yet another thing that I will need to interrupt shortly, I look at messages on Teams.
A cycle of this shape — with different combinations of checking, starting something, stopping — happened many times, more than I cared to count, until, looking at the behavior of the tool made by the agent, I judged it was good enough to stop for the day. Or maybe the day came to an end before that. The tool wasn’t built during one single session, so probably both of these happened at some point — my judgement was the stop point, or the stop point was the hard limit of the clock.
When working with an AI agent, I usually stay on the computer. Much less frequently do I open a physical paper or notebook. I will, for instance, write a sentence in a report, look back at the status, then check messages, then look back again, then go back to the report… without continuity of task or attention.
I can get engrossed by something else entirely, yet not long enough to get deep into that thing; the knowledge that I am waiting for the many agents’ answers stays present in awareness such that I check each one at irregular intervals of time. I often feel scattered and spread thin. The waiting is active, effortful, and reaching, because despite not knowing exactly how long the wait will take, I know it won’t take hours — not even one; so the wait carries with it a cognitive load that is running vigilance in the background. It is not a relaxed wait where, having a good sense of how long something will take, I can log off and deepen my focus on something else. The wait is too short to leave. And being of unknown length makes it too expensive. Even an indeterminate wait that is known to be long releases me — I can log off, the active concern for the task ceases temporarily. But here I have to stay reachable, which means the other activities I fill the waiting time with can only be ones that are easy to abandon, which in turn means they can't be worth entering fully.
It is so easy to start and there is always an output to process. The processing of so much output is tiresome; performing judgment is a laborious task. Some people will say that we, as humans working with AI, need to slow down to better process what the AI does too fast. But I find that the field of possible tasks solicits too much.
Waiting for the agent fills me with a sense of urgency, of not having enough time to do what I need to do, or of having to come up with something to do with this undetermined amount of idle time because it is still “work time”. And the fact that the time is undetermined means that I feel the malaise of responsibility of coming up with an appropriate task for the interval. I worry I might fail — I have the responsibility but not the scope.
Narrative arches and legibility
When writing the narrative of making bread, I noticed it was easier to write, it is a better structured narrative. It has a shapely arc because the process itself is better structured and rhythmic. The narrative of building a tool with an AI agent was much harder to write. I seem to have switched registers between analysis and description, partly because I have never read anyone’s first-hand account before, partly because the experience itself seems to me to be more disorganized and improvised, and therefore more expensive to inhabit and recollect. It is arrhythmic.
The presence of rhythm entails a higher legibility of the bread making narrative. It is, as a process, a learnable one, it follows the same cadence every time, with small variations. I have an understanding of the process, what it entails, how this and that element affects the speed and output. A cold day means a longer bulk fermentation. Bakers have set the equivalent of alarms for millennia precisely due to this predictability, without necessarily having an understanding of why this was so.
The narrative of making the tool is one where the waiting is really felt as a gap. I don’t know what I’m waiting for, other than an output at some point. There are things streaming through the screen — now it’s writing a file, now it’s running this or that command — but when will it be done? I have no idea. The legibility of the process of making bread, its rhythm, is what lets me set an alarm, for whatever duration, and really leave to do something else while waiting. Without a “model” of a process there is no alarm to set, and so no real leaving while waiting.
Waiting
What does it mean to wait? Waiting is a state of suspension where one’s next move on some activity is blocked by someone or something else’s move. There are defined waitings and undefined waitings. There are waitings over which you have more control than others. An undefined and uncontrolled waiting is one that leads to significantly more background anxiety.
In “Being and Time”, Heidegger talks about tools as that which withdraw their presence when working. The hammer is not perceived as a hammer when it is hammering away, only when its functioning breaks down, disturbing the work. In the case of the agent the waiting time is constitutive to its operation, yet it is that interval itself that makes the experience of doing work break down. It’s the breakdown of the process that makes me aware of the agent and its performance as opposed to awareness of the work itself. Waiting shifts my attention to the agent’s existence in the way that the breakdown of hammering shifts one’s attention to the hammer. You don’t set the hammer to work and go do something else; this idea is so strange that its description leaves a gap in imagination. Is the agent, then, a tool or not? I don’t think Heidegger alone has the conceptual apparatus to carry us through to the other side of this question.
The Heidegger of the lectures collected in “The Fundamental Concepts of Metaphysics” speaks about the boredom of waiting. He says “How do we escape this boredom [Langeweile], in which we find, as we ourselves say, that time becomes drawn out, becomes long [lang]?' Simply by at all times making an effort, whether consciously or unconsciously, to pass the time, by welcoming highly important and essential preoccupations for the sole reason that they take up our time. Who will deny this?” Boredom makes you want to pass time. But, unlike true boredom, where we are left empty because things at hand offer nothing, refuse themselves, the AI agent’s waiting leaves no room for that: I am over-solicited by other tasks. The strange thing about waiting for the AI is that it turns a short time read on the clock into a long time felt in the body, as if the activities I engage in while waiting sprout their own timelines which stretch out in orthogonal directions.
The sociologist Barry Schwartz argued that queuing is the allocation of scarce access. Queues, he says, can be comprised of anything — from people to tasks. In his work “Queues, Priorities, and Social Process”, he invites us to view social systems as queuing networks and to investigate queues’ demands upon those who serve the queues (as opposed to clients, those who wait). He argues an unintuitive point — that organizations create efficiency by introducing bottlenecks, such as the secretary who needs to triage access to a high ranking bureaucrat responsible for making many consequential decisions. When I work with the agent, I prompt it and it makes me wait. During that wait, I start a new task — give a new agent a new prompt, which I then have to wait to get an output. And that leads me to a third task, sending an email, and so on. I start new activities that create a queue where I am the bottleneck. This leads me to the strange conclusion that I can also be thought of as a queuing network, and the queuing of tasks is itself the task of allocating scarce access to me — my ability to execute. And here is where I “increase my productivity”; by generating new branches of tasks, I create a surplus of tasks which I eventually need to finish.
By being made to wait, I create new tasks, which then need to be queued. But these tasks, as I said above, sprout their own timelines. This brings me to another surprising conclusion that, in waiting, I create new occasions for waiting.
The agents make me wait. I make the agents wait. But the agent is nobody. It does not experience time, so it does not actually wait; it doesn’t experience that urgency and, above all, it has no choice nor agency about what to do with the time it spends “waiting”. The waiting in this arrangement is entirely mine.
What fills the time of waiting?
Waiting degrades attention to the thing being waited for, and interferes with the cognitive processes responsible for problem-solving. A 1968 article, "Response time in man-computer conversational transactions" by Robert B. Miller (which surprised me by showing that this was already being thought of back then), proposes limits for delays in different categories of human-machine interactions, limits that once exceeded negatively impact performance of the task, motivation, and novelty exploration. There is a surprisingly narrow range where our psyches register a stretch of time as “present” — roughly 2.3 to 3.5 seconds — after which everything else is “later.” That is considered to be the acceptable delay for a “conversational” mode of interaction with a machine, based on human conversation data. He talks about interactions of the sort “now run my problem”, where someone gives a machine a program to execute. Miller estimates that after 15 seconds our attention to this focused problem solving degrades to an extent that we will divert it to other tasks. He also says it curbs exploration since longer waits are likely to lead us to be satisfied with the first results. The engineer Miller represents in his paper is one who spent time and effort writing the program and is invested in its working, who also knows that running it can be slow, and who is eager to get going. He is more like me running simulations for my PhD — I can still feel in the pit of my stomach the horror of a long run that ended in failure. What I find in my experience of operating an AI agent is that it feels a bit different; the stakes of success or failure are somewhat dislocated — not completely away from me, I still am the hinge point of success or failure, but it is easier to start over or pivot because there is less of “me” in there. The casualness with which I spin sessions and the sense that I’m not really the one doing the work make it such that I barely wait 15 seconds at any moment before moving on — I prompt, spin another session, prompt, spin another session, prompt. Fifteen seconds isn’t worth it.
Arguing against the pervasive view in the 1980’s, cognitive psychologists Odmar Neumann and Alan Allport propose, in "Beyond capacity: a functional view of attention", that attention is not a scarce resource that needs to be rationed, but instead the outcome of selection for activities in order to maintain behavioral coherence, because at any point in time there are more things for an organism to do than it can reasonably do. Achievability and goal-proximity bias the choice of the next course of action; action selection is primed for what looks achievable now. Despite my experience that there is too much available to do, and that I do too many “unconnected tasks” such that coherence from the point of view of task execution is low, still my course of action is the most immediate solution to behavioral cohesion. At least I am continuously sitting in front of a computer. All my next actions during the waiting time can only be shallow and easy because what is achievable now biases salience in selecting what to do next.
In his paper “Adversarial inference predictive minds in the attention economy”, philosopher Jelle Bruineberg notes that digital environments are frictionless, and switching between different activities often requires just as much effort as continuing to do one and the same activity. I stay on the computer (instead of going to another medium) because of the frictionless nature of this digital environment. The word “adversarial” in his title refers to large tech corporations that build models of users and algorithms to serve content with the explicit purpose of keeping users on their platforms indefinitely. It is no coincidence that the task I switch to is most often spinning another session of an AI model. I spin AI sessions so often in part because of the cheapness of spinning up other AI sessions. It does not matter that there is no deliberate strategy from AI companies to keep users using these agents or chatbots; frictionless switching together with undefined waits produces the same adversarial dynamics without anybody modeling us.
The management lineage that began with "The Principles of Scientific Management" by F.W. Taylor (the same one that gave us the noun "Taylorism") argues against worker-controlled "idle time" in favor of managerially controlled idle time — in fact, it prescribed rest as much as it prescribed efficient work, so long as these periods of time were decided by management. Looking at my experience of malaise with my meager idle seconds, I see that Taylor's manager has been internalized by me to such an extent that no one needs to oversee my use of time. This might have been one of the great achievements of productivity culture in the 20th century.
Delayed Parousia
There is a promise made by the techno-evangelists that AI will change work; by making us more productive it will give us more leisure time, in the sense Bertrand Russell meant in his In Praise of Idleness. AI won’t replace us, they say, it will free us for leisure.
In “Waiting for Godot”, Samuel Beckett puts Didi and Gogo waiting for the famed Godot, who will always come tomorrow, while their lives repeat the same sequential routines, in cycles. Godot never comes, and he can’t ever come: the play would end. Didi and Gogo are trapped in time, replaying the same sequences of actions like liturgy — putting on and taking off boots, checking the pocket watch — much like the Church instituted its daily rituals and habits to put structure to the indefinite waiting for the Messiah (also known as “delayed Parousia”).
AI creates this kind of waiting as well — a waiting for the Godot of leisure and freedom. But the small acts, the little recursions, are what makes the large arrival impossible by perpetually postponing it. I find my work life reenacting Didi and Gogo’s drama — I keep prompting, producing, but that only leads to a proliferation of tasks to prompt my way through.
I am in part to blame; I do this to myself, recursively. I know that something will always happen. There will be an output for me to act upon. There will be a next step. I am someone who compulsively throws a stone ahead and walks forward to get it as a method for reaching the finish line, without ever asking myself where that is. Goal proximity and achievability bias action — throwing a stone ahead and getting it will beat the promised leisure any time. Relief never comes because recursion has no in-built stop mechanism. The reward of finishing a task is being able to start a new one.