ORGANIC LLM / ENGINEERING & INTERACTION
One conversation.
Many minds.
A closer look at the multiagent system I built: how work branches, how context travels, and how separate threads become one coherent conversation.
Explore the systemAn agent needs more than a prompt.
It needs a place to work, the right context, a clear boundary, and a way to bring its work back. These are the pieces that make the system hold together.
Attention has a heartbeat.
The parent should know when something matters. It should not need a model call just to discover that nothing happened.
A client-side probe while a thread family with subagents is open. It checks when mounted, on a local timer, and when the tab becomes visible.
Hidden tabs, five minutes of inactivity, or detected low power pause the probe. This is an in-view check, not a server cron.
Lyra is comparing the sources.
Lyra finished. Findings and supporting evidence are ready.
- Deterministic checks
Ownership → budget → target → children → cadence → digest → claim.
changed · evaluation claimed - Jev evaluates meaning
Is this change worth the orchestrator’s attention?
model called · ZDR required - Bring it into the conversation
Persist a system notice and queue the parent’s response.
notice + queued reply
A result worth bringing back.
Jev can recognize a new outcome as actionable. A system notice records the before-and-after snapshots, an orchestrator reply is queued, and the notification baseline advances.
Check before thinking.
Every valid, owned request checks the plan budget and target. Eligible runs discover children, load heartbeat state and enforce a 30-second server floor. Only then do they build snapshots, compare the digest and attempt an atomic claim. Each gate can return early.
Follow the heartbeatJev supplies judgment.
A changed digest and a successful claim trigger Jev. It distinguishes meaningful results, blockers and new requests from noise. Per-thread probability must exceed 0.8; the call has a five-second deadline and requires zero data retention. A quiet result updates the digest, not the last-notified baseline.
Read the evaluation gateWhat gets measured?Telemetry, without conversation content
- Execution
- Start time, total duration, status and last stage; snapshot and evaluation duration.
- Workload
- Child and working-agent counts, snapshot character count, evaluation attempted, notable event count.
- Usage
- Model, provider, generation ID, input/output/total tokens and provider-reported cost.
- Failure & correlation
- Run, owner and thread IDs; sanitized timeout or operation-failed codes. Unavailable measurements remain null.
Telemetry stores metadata, not prompts, snapshots, message text or raw exceptions. The separate system notice belongs to the owned conversation.
Inspect the telemetry schemaA thread is a thread.
The orchestrator and its specialists use the same database schema. Their relationship changes; their fundamental shape does not.
id: parentparent_thread_id: nullid: child-aparent_thread_id: parentid: child-bparent_thread_id: parentChildren are queried by parent_thread_id, not stored as an array on the parent.
- id · owner_id
- Identity and ownership
- parent_thread_id
- Nullable self-reference
- subagent_agent_id
- Specialist identity / roster slot
- subagent_status · subagent_status_at
- Worker state and timestamp
- subagent_heartbeat_*
- Baseline, digest and claim time
Any thread can structurally have children. That makes future subagent-to-subagent delegation possible without inventing a second thread type. Today, worker shells do not receive orchestration tools, and the heartbeat endpoint rejects child targets. The schema is ready for hierarchy; the runtime still controls who may delegate.
The handoff is the work.
A worker cannot see the parent conversation. I built a context workbench so delegation can carry the right evidence, not just a task name.
- 01
Decide whether to delegate.
Answer inline when existing tools and context are enough. Delegate for an explicit specialist request, required tools or expertise, or a substantial deliverable that benefits from isolation.
- 02
Choose the smallest useful specialist.
Match the task to the roster, tool access and current status. Reuse finished work; wait for a busy worker. A second dispatch must explain what independent work it adds.
- 03
Author, preflight, dispatch.
Write a standalone brief: task, purpose, constraints, deliverable and completion criteria. Select context, check budget and queue the assignment in a created or reused child thread.
What should Reed see?
Choose the material to attach. Everything else stays on the worktable.
A brief that stands alone.
Check the streaming exporter. Preserve chunk ordering, identify failure cases, and return a minimal implementation with verification steps.
The user's exact constraint65 chars
The export must preserve streamed chunks in their original order.
Exact user quotations are checked against the owned source message.Lyra's latest finding85 chars
The source describes ordered delivery. Test partial chunks and an interrupted stream.
A live reference resolves the latest output at dispatch time, rather than freezing an old result.A reusable review rubric84 chars
Return a minimal diff, name edge cases, and include reproducible verification steps.
Standing instructions and reusable items stay on the private worktable until selected.Bundles that survive a handoff.
Save instructions, user excerpts, memories, notes and worker output. Update an item in place instead of rebuilding the same context every time.
Choose exactly what travels.
Select whole bundles, individual items or character ranges. Duplicate attachments are delivered once. Live output references resolve when the assignment is sent.
Inspect before spending.
A dry run reports the complete input budget, omissions, duplicates and truncation. It creates no child, queues no work and consumes no dispatch allowance.
Small previews. Recoverable detail.
Long attachments have marked 6,000-character previews. Workers can page the selected originals with read_context_item, scoped to their own assignment.
The workbench also gives the model compact shorthand and on-demand manpages. msg:, out:, node: and connector: identify sources; worktable maintains the bundles. Full originals stay in encrypted assignment metadata, outside automatic model-message conversion.
Different minds. Deliberate tools.
A subagent is a persistent thread with a bounded assignment, an identity, instructions, a model and a tool policy. The useful differences are designed into it.
Reed
Concrete code, minimal diffs, edge cases and verification. Reed works from the interfaces and constraints in the brief.
GitHub profile and repository context arrive through selected connector notes. Chronos provides owner-gated, read-only repository inspection; this is not a general GitHub write tool.
Explore Reed’s implementationChronos is a connected, read-only bridge to the owner’s local repositories, exposing allowlisted Git inspection such as status, history, branches and refs.
The right model for the assignment.
Worker selection is independent of the main chat model. Economy is the default; standard and frontier require a specific justification. Dispatch preflight checks estimated cost, the remaining turn and plan budget, and required zero data retention.
Read the model and cost policy| Tier | Model | Use |
|---|---|---|
| Micro | Gemini 3.5 Flash Lite | Triage |
| Economy default | Claude Haiku 5.5 | General work |
| Standard | Claude Sonnet 5.5 | Complex work |
| Frontier | Claude Opus 5.5 | Hardest reasoning |
Open the thread.
Change the direction.
Inspect a specialist’s own conversation, address it directly from the composer, or speak to it through the voice handoff. Watch its progress and inspect Lyra’s source cards and research reports. Background activity settings control heartbeat cadence.
Explore the user controls- 1
The worker persists its response in its own thread, including supported tool output and usage metadata.
- 2
The parent receives compact status and outcome snapshots. A notable heartbeat adds a system notice and queues a parent turn.
- 3
The orchestrator can use
read_subagent_threadfor deeper detail, then synthesize the result into the main conversation. Another handoff can explicitly attach that output.
Give the system a presence.
I wanted work to feel alive without becoming visual noise. Organic Agent is a small, carefully tuned language of dots, motion and glass.
The orchestrator shapes the assignment.
State, made tangible.
Each mark has its own pattern. The dots and the material respond together.
Eighteen dots.
Individual character.
Physics, not a looping clip.
My custom morphPhysics spring solver drives each dot’s position and scale. Retargeting preserves velocity, so a change of state feels continuous. One page-level scheduler coordinates visible marks without per-frame React renders.
Glass with a purpose.
Refraction, a fine static grain and a glass cover sit above the dots. State-specific blur, alpha, brightness and tint shape the exact diffusion. Material values spring together using the same physics foundation.
Offscreen and hidden-tab work pauses. Settled marks unregister. Reduced motion, Lightweight Mode, unsupported APIs and sustained performance pressure select a fallback. The scheduler watches CPU work and frame cadence; those measurements do not claim to measure GPU blur cost or battery life.