dissertation

30 Oct 2021 - 17 Aug 2026
Open in Logseq
    • Abstract:

      • 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.
    • Update 2026

      • Is anything there is relevant to modern AI agentic software development? Ask Claude
        • A surprising amount of the 1996 thesis maps onto current agentic AI development — sometimes as vindicated prediction, sometimes as unresolved problem that's now urgent.
        • What aged into the mainstream:
        • The animate metaphor became literal. The thesis's core move — taking anthropomorphism seriously as a foundation for programming rather than a disreputable teaching crutch — is now just how the industry works. People "ask" agents to do things, agents "decide" and "try approaches." The difference is the mechanism: you predicted hand-built architectures would carry the metaphor; instead LLMs made the intentional stance genuinely load-bearing, since natural-language goal specification is the actual interface.
        • Explicit goals as first-class objects. The five functions you assigned to goals — control (run until satisfied), verification (agents detect their own success/failure), conflict detection, organization of procedures around purposes, and visualization — describe modern agentic loops almost exactly. Claude Code's todo lists, spec-driven development, test-as-success-criterion, and self-verification loops are the goal-agent pattern: act repeatedly until the predicate holds. The teleo-reactive comparison holds up too — modern agent loops re-evaluate world state each cycle rather than executing fixed plans, exactly Nilsson's circuit framing.
        • The autonomy/purposefulness/reactivity triad is nearly verbatim how "agentic" is defined today, and the Dynamic Agents structure — a manager agent spawning subagents that try different methods for the same goal, dispatching on which succeeds — is the orchestrator/subagent architecture currently shipping in Claude Code, LangGraph-style frameworks, etc.
        • What aged into open problems:
        • Inter-agent conflict. Your observation that agents clobbering each other's goals is a common bug source, and that explicit goals enable detection and mediation, is directly relevant to parallel coding agents stepping on each other in a shared repo. Modern systems mostly punt on this (git worktrees, locks); your mediator-agent and stored-resolution ideas are barely explored.
        • Narrative as an interface to agent activity. Nose Goblins' storyboards — rendering agent conflict as a story with emotional state — anticipates the problem of making agent transcripts comprehensible. Today's equivalent is raw reasoning traces and log streams, which is roughly where you were before adding the storyboard layer. "Presenting the activity of hundreds of agents will require more knowledge about characters and narrative" reads as an unclaimed research agenda for agent observability.
        • The comprehensibility/power tension. Your closing worry — "there is a tension between making the system smarter and making it more comprehensible" — is now the interpretability and oversight problem, at much higher stakes than LiveWorld's constraint solvers.
        • Hierarchy critique. The section on hierarchical organization disempowering the agents most in touch with the world, while isolating decision-makers behind slow, lossy communication chains, describes a real failure mode of orchestrator architectures: context loss between manager and subagent is arguably the dominant engineering problem in multi-agent systems right now.
        • What inverted: In 1996 the missing ingredient was intelligence — agents were rules and finite-state machines, so anthropomorphism was scaffolding to help humans think. Now the components are genuinely capable, and the risk runs the other way: the animate metaphor works too well, and users over-attribute reliability, memory, and intent. Chapter 3's careful analysis of animacy as a projected framing, always paired with a mechanical view ("agents must be capable of being seen in at least two ways"), is a healthier epistemic stance than most current discourse manages.
        • The weakest mapping is LiveWorld itself — the box-based visual environment solved a 1996 problem (novices lacking concurrency primitives) that LLMs dissolved differently. But Shoham's AOP discussion (agents communicating via constrained speech acts) presages structured agent protocols like MCP more directly than most people writing those specs likely realize.
        (thanks vgr for the inspiration Venkatesh Rao (@contraptions))
      • That was pretty good. It took Claude about 15 seconds to read (and understand!) this thing I agonized over for a year or more.