Roadmap priority: B8
Summary
An LLM call that is not bound to a turtle's conversation history — for narrators, judges, referees, and environment generators.
Why it matters
Every chat primitive binds to context.getAgent and commits into that agent's history (LLMExtension.scala:57, commitExchange). When called from the observer, the observer becomes the history owner, which works but conflates two different uses: an agent having a conversation, versus the model asking the LLM a one-off question.
Concrete cases from existing demos: a judge scoring a round in social-deduction, a narrator summarising what happened this tick, generating an environment or scenario at setup.
Was raised in discussion with Can Gurkan (Apr 2026) as an observer-level primitive.
What needs to be done
- Decide the semantics: stateless one-shot (no history at all), or a named history channel the modeler controls.
- Named channels are the more general design —
llm:chat-in "judge" "..." with its own history, independent of any agent. Would also cover shared/group memory (B9).
- Primitives for clearing and inspecting a named channel, mirroring
llm:history / llm:clear-history.
- Ensure it works when called from within
ask (i.e. does not silently pick up the calling turtle's history).
Open questions
- Is a named-channel API a superset of both this and B9 (shared memory)? If so these should probably be one design.
- Does the observer's current history behaviour need to stay for backward compatibility?
Roadmap priority: B8
Summary
An LLM call that is not bound to a turtle's conversation history — for narrators, judges, referees, and environment generators.
Why it matters
Every chat primitive binds to
context.getAgentand commits into that agent's history (LLMExtension.scala:57,commitExchange). When called from the observer, the observer becomes the history owner, which works but conflates two different uses: an agent having a conversation, versus the model asking the LLM a one-off question.Concrete cases from existing demos: a judge scoring a round in social-deduction, a narrator summarising what happened this tick, generating an environment or scenario at setup.
Was raised in discussion with Can Gurkan (Apr 2026) as an observer-level primitive.
What needs to be done
llm:chat-in "judge" "..."with its own history, independent of any agent. Would also cover shared/group memory (B9).llm:history/llm:clear-history.ask(i.e. does not silently pick up the calling turtle's history).Open questions