LM-with-tools offers 3 parties to cooperate - the user, the LM, and the sysprompt/tool writer, but it is the user and the LM that predominantly control the trajectory. I have been pondering what it would look like to program trajectory fragments or steer trajectories so the tool writer can prepare some better guided experiences for the end users.
What if, for example, we unpack a LISP evaluator with small-step semantics and we put the user+LM in control, while allowing the LISP program author use programming constructs that interact with the user and the LM.
This can be vibe-coded apparently: