Debugging with Agents
03 Sep 2022 - 03 Sep 2022
- Nose Goblins and LiveWorld both had some tools for reifying execution histories and making them more agent-like. There are a few closely related ideas:
- procedures that have explicit goals
- procedure invocations that have state relative to the goal (suceeded, failed, etc)
- call trees as goal trees
- representation of goal states using anthropomorphic or narrative techniques
- Never really got farther than a first proof-of-concept. Why? I still think it's an interesting idea, although apparently nobody else does.
- Have to note that functional programming is in tension with this. The default for a Clojure defn is to return a value and have absolutely no side effects (if it does, you are supposed to indicate that with a bang: eg
delete-file!). Not to knock functional programming, which has many merits, but it lacks the dynamism, the aliveness, that I was after in my research. - Functional programming also interferes with the effort to integrate programming languages and the user interface, because a typical WYSIWYG UI is an essentially imperative sort of thing, it has objects that you operate on, changing their state.
- Functional programming is anti-agentic, I guess. I mean they are almost opposites.