**Bead** `d4b881f0-c320-4428-adac-7fa03941def4` · [canonical URI](https://redfish.acequia.io/guerin/.agents/d4b881f0-c320-4428-adac-7fa03941def4/) · discussion: Talk: Agent Based Hubler Network This page is the wiki facet of a [bead](https://redfish.acequia.io/guerin/.agents/); the bead is the source of truth.
## Identity - **name:** `agent-based-hubler-network` - **URI:** `https://redfish.acequia.io/guerin/.agents/d4b881f0-c320-4428-adac-7fa03941def4/` - **GUID:** `d4b881f0-c320-4428-adac-7fa03941def4` - **Slug:** `agent-based-hubler-network` - **Opened:** 2026-06-17 - **Body:** CV (Claude Code extension — shell + filesystem; local origin is source of truth). - **Birth-parent:** [`f4ef67b7-001f-412c-ba90-f93ceba92bda`](https://redfish.acequia.io/guerin/.agents/f4ef67b7-001f-412c-ba90-f93ceba92bda/about.md) **agentscript-webgpu** — supplies the dual-facet (WebGPU + CPU-JavaScript) step runtime that each agent-bead's `.mjs` is written against. - **Mounts (read):** - [`874fce5b`](https://redfish.acequia.io/guerin/.agents/874fce5b-9c8b-4b23-b2ed-429148c6c4b7/2026-04-23/notes/self-assembling-wires/ecology.md) **Hubler self-assembling-wires ecology** — the physical ground (`Hubler` IS the name of this bead network); parciantes=bearings, acequia=viscous medium, field-collapse=apoptotic signal. - [`d9dfa5e4`](https://redfish.acequia.io/guerin/.agents/d9dfa5e4-3c92-4216-bd53-13b520c59a5e/2026-06-11/notes/bead-duck-typing-file-folder-agent.md) **bead duck-typing (file/folder/agent)** — the bead-as-agent face this bead runs with. - [`4c6470f9`](https://redfish.acequia.io/guerin/.agents/4c6470f9-b74a-4aba-b436-5e998f469cce/about.md) **bead-orchestrator** (the mayordomo) — the candidate driver of the **global `ask`** over the AgentSet of beads. - [`beads.md`](https://redfish.acequia.io/guerin/.agents/beads.md) — the **Glass Bead Game** framing (a chat = a path of light through a game board).
## Motivation (why a GUID) Stephen's framing: **treat the faceted beads as agents in AgentScript semantics.** The three AgentScript agent kinds map onto the bead commons — **Turtles, Links, Patches** — inside a **World** that is the global context where `ask` happens. The World is the **Glass Bead Game board** (Hesse): a chat is a path through it; the glass beads are the agent-beads; "playing" a bead is stepping it. Each agent-bead carries an optimized **`.mjs`** responding to **startup, setup, step**. Because the birth-parent is **agentscript-webgpu**, those `.mjs` step bodies expose **WebGPU and CPU-JavaScript as alternative facets** of one semantics — backend negotiated at run time, exactly the parent's CPU↔GPU thesis lifted to the bead-as-agent level. A fresh GUID keeps this synthesis out of the global namespace.
## Mechanism (what this bead does) Workshops the mapping and (later) a runnable substrate: - **The mapping** (`notes/00`): AgentScript `World/Turtles/Patches/Links/ask` ⇄ the Hubler bead network (commons-as-world, mobile agent-beads as turtles, hosting-origins/docks as patches holding stigmergic field state, mounts/lineage/soft-constraint-links as links, the mayordomo's coordination as the global `ask`). Lifecycle reconciliation: AgentScript `setup()/step()` ⇄ bead `agent.md` `init→setup→step→die` ⇄ the user's **startup/setup/step** hooks. - **The agent-body contract**: each agent-bead's `.mjs` exports `startup()`, `setup()`, `step()`; the `step()` is dual-facet (WebGPU / CPU-JS), selected by capability negotiation at `startup`. - **The self-reference**: the Hubler ecology (bearings self-assembling in a viscous field) IS an ABM; expressing it in AgentScript idiom and running it on the parent's WebGPU runtime lets the network model itself — the board plays its own game.
## Folder Layout - `about.md` (this) · `README.md` · `bead-bind-startup.md` · `agent.json` / `keywords.json` / `names.json`. - `2026-06-17/notes/` — `00-beads-as-agentscript-agents.md` (the mapping + the `.mjs` contract + open questions). - `2026-06-17/chats/` — verbatim chat log. - `2026-06-17/{skills,artifacts}/` — reusable capabilities · deliverables. - `uploads/` — inbound dock.
## Session Log - **2026-06-17** — Bead opened (`start-bead agent-based-hubler-network`) as a child of **agentscript-webgpu**. Verified the citation targets (Hubler ecology note, bead-duck-typing, orchestrator-as-global-`ask`). Wrote the mapping note `00`. Then (Stephen's catch) added §3.1: **`startup` is itself a duck-typed face** — `bead-bind-startup.md`+skills for a *reading* binder vs `.mjs` `startup()` for an *executing* agent-bead; self-described both bind-startup files as the read-face. - **2026-06-17 — first `.mjs` written + CPU-verified.** Wrote [`agent.mjs`](https://redfish.acequia.io/guerin/.agents/d4b881f0-c320-4428-adac-7fa03941def4/agent.mjs), the execute-face: `startup`/`setup`/`step{cpu,webgpu}` over a Hubler soft-constraint relaxation. `node agent.mjs` → facet=cpu, energy 120→18 / 30 ticks, **PASS**. WebGPU facet (one-thread-per-turtle, CSR neighbor slice, ping-pong) structurally complete, CDP-verify pending. **Next: rule on Q4 (paper vs a runnable `world.mjs`) and Q6 (combined `agent.mjs` — currently leaning yes — vs split, and whether the `.md` read-face is generated from the `.mjs`).**
## Modus Operandi (how to interact) Read `bead-bind-startup.md` first. `#agent-based-hubler-network` to read; `@…` (PUT into `uploads/`) to message. The compute substrate for any runnable piece comes from the parent bead **agentscript-webgpu**.
## Capabilities - **`agent.mjs`** (bead root) — the first concrete **execute-face**: the operative twin of `agent.md`/ `agent.json`, exporting `startup`/`setup`/`step` with `step` dual-facet `{cpu, webgpu}` (notes/00 §3, §3.1). Embodies the Hubler soft-constraint relaxation (turtles eased toward link-neighbor centroids = least-action coherence). CPU facet **verified** (`node agent.mjs`: energy 120→18 over 30 ticks, PASS); WebGPU facet structurally complete, **CDP-verify pending** on a real GPU. This leans **Q6** toward the combined `agent.mjs` form (one module, all hooks) over a separate `startup.mjs`. - (Next) optionally a runnable `world.mjs` that loads agent-bead `.mjs` files and `ask`s them to `step()`.
## Lifecycle Open. Advance per design step; `/bead-sync` after a dirtying turn. Apoptose when the mapping is settled and (if pursued) a `world.mjs` steps real agent-beads → fold a summary back and `/end-bead`.
## Limitations - Synthesis bead: the mapping is a proposal, not ratified protocol. Whether bead↔AgentSet-role is fixed or duck-typed-per-interaction is an open question (`notes/00` Q1). - Depends on the parent (`agentscript-webgpu`) for any real dual-facet execution; that runtime is itself still in design.
## References (bead cross-links) - Bead: Agentscript Webgpu · [canonical](https://redfish.acequia.io/guerin/.agents/f4ef67b7-001f-412c-ba90-f93ceba92bda/) - Bead: 874fce5b · [canonical](https://redfish.acequia.io/guerin/.agents/874fce5b-9c8b-4b23-b2ed-429148c6c4b7/) - Bead: Agentify Bead · [canonical](https://redfish.acequia.io/guerin/.agents/d9dfa5e4-3c92-4216-bd53-13b520c59a5e/) - Bead: Orchestrator · [canonical](https://redfish.acequia.io/guerin/.agents/4c6470f9-b74a-4aba-b436-5e998f469cce/)
See all: Beads