An AI agent with a plastic LLM mind.

Meet JellyMind: a running OpenJelly agent, a mind made of aspects that senses, decides and rewrites itself on evidence. The architecture is general; trading is its first job.

JellyMind preview: 1,000,000 simulated aspects, each a 3D ball, roaming on its own. Click a ball to go inside; click outside or press Esc to come back.

Attentionware for agents

Attention, made as agent.

The OpenJelly agent

OpenJelly makes attention into an agent. Here software takes the form of an agent: a mind made of aspects that it reads, versions and rewrites on evidence.

  • FrameworkThe Aspect-Oriented Neural Network (AONN) runtime, accounts and venues, market data and backfill, replay and live clocks, and the console. Runs on your own machine or a VPS. To be open-sourced under AGPL.
  • MindsetsSeparate packages, installed on the framework.
Watch two replayed days inside a running mind →
Borrowed attention

Today an agent borrows its attention.

Agents built on large language models have prompts, memory and tools. What they attend to, in what order, in which situation, under which invariants, and what they do once they notice — all of it is borrowed from the model and the prompt, call by call.

Attention in weightsAttentionware
Who owns itThe model, call by callThe agent
Can you point at itNoEvery concern has an address
VersionsNoneEvery change is a version
What changes itA new promptEvidence only
After a decisionNo single step to point atThe step that decided is on record
Attentionware

An explicit, executable, versioned tree of concerns.

Separation of concerns (SoC), named by Dijkstra in 1974, is the method of scientific thought: study one concern at a time, on its own terms. A concern is where attention goes, so a tree of concerns is attention written down.

We call it attentionware, after hardware, software and firmware: attention made as software, and that software takes the form of an agent. A concern tree compiles into an aspect graph, crosscuts are woven in, and the graph runs. Compilation and execution are deterministic, only past data is read, and each property is machine-checked.

Self-Programmable Attentionware

SPA is attentionware the agent rewrites itself. Learning is one more separation of concerns, carried out by the agent's own introspection mindset. Four parties, four jobs:

Model
proposes structure
Graph
executes
Data
decides
Human
sets only the invariants and the goal
Weaving

Knowledge is concerns. Reasoning is weaving.

The brain is an aspect-oriented neural network (AONN), after the 2004 paper. A join point is the moment one of a neuron's methods runs. An aspect reaches it through a pointcut and weaves advice onto it. Weaving and unweaving happen while the network runs: growing a synapse is weaving an aspect.

pointcutexecution(* Account.emit(..))
advicebefore · after_returning · after_throwing · after · around
dendriteafter_returning      # receives what the neuron returned
axonaround               # decides what is passed on, and whether
weaveweaver.weave(aspect)  # while the network runs
unweaveweaver.unweave(aspect)
The picture is the model

The sphere at the top is a view of a model, not an illustration.

We call a running mind a JellyMind. Every ball is an aspect; a ball inside another is an aspect it contains.

Senses
The market in traders' terms
Trades
With the higher-timeframe trend, at support and resistance
Sizes
By its own human nature, survival first
Learns
Which play to trust, by situation

Today's mind has thousands of concerns. The 1,000,000 at the top is the scale a JellyMind grows to as it learns new ones.

Aspects (simulated)
1,000,000
Generated so far
—
Spheres drawn now
—
Last entry took
—
Transphere: the sphere given a body, a concept render → Back to the sphere ↑