NetLogo / NetLogo/Netlogo-LLM-Extension

feat: shared / group memory (blackboard) alongside per-agent history

Open
#58 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Scala
Stars
1
Forks
0
Avg merge
3d 1h
Merged PRs (30d)
4

Description

Roadmap priority: B9

Summary

A shared "blackboard" memory alongside per-agent history, plus optional injection of nearby agents' state into prompts — for social simulations where agents need common ground.

Why it matters

History is strictly per-agent (WeakHashMap[Agent, ArrayBuffer[ChatMessage]]). Anything shared — a public announcement, a common rumour pool, a group decision record — has to be rebuilt by the modeler with llm:set-history on every agent, every tick.

Several existing demos work around this: color-sharing, social-deduction, and topology-tournament all hand-assemble neighbour context into each prompt.

What needs to be done

  1. Named shared channels — write once, readable by many agents. Likely the same mechanism as B8 (#57).
  2. Primitives to write to and read from a shared channel, and to inject it into a call alongside per-agent history.
  3. Decide ordering semantics: does shared content sit before or after per-agent history in the message list?
  4. Optional neighbour-state injection — a helper that formats nearby agents' visible state into a prompt fragment. (mesa-llm does this automatically via vision radius; ours would be modeler-controlled.)
  5. Must interact sanely with memory management (#47) — shared channels grow too.

Open questions

  • Should this be one design with B8 (#57)? A named-channel abstraction plausibly covers observer-level calls, judges, and shared memory in one concept.
  • Read scoping — can any agent read any channel, or should there be per-channel visibility rules (relevant for deception/asymmetric-information models)?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the related B8 issue (#57), memory-management issue (#47), and the color-sharing, social-deduction, and topology-tournament demos. Done means a settled named-channel design with read/write and prompt-injection primitives, defined message ordering and visibility semantics, neighbour-state injection, and memory management for growing shared channels.

Written by the indexing model from the issue text.

Assessment

Tech stack
scala
Domain
ai, backend-api-design
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.