101 lines
6 KiB
Markdown
101 lines
6 KiB
Markdown
# Multi-agent operating architecture
|
|
|
|
## Product and milestone
|
|
|
|
Reconstruct a behavior-equivalent engine consuming owner-supplied assets. The next product
|
|
milestone is standalone replay given a captured command stream and complete declared runtime
|
|
inputs. The first workflow pilot is the complete research write set. A passing host build is a
|
|
component baseline, not a playable engine or independent replacement.
|
|
|
|
## Source of truth
|
|
|
|
`campaign/contracts/` holds versioned tasks, `campaign/runtime/` holds checkpoints, sessions,
|
|
leases and surprises, and evidence packages identify inputs, source and executable artifacts.
|
|
`campaign/current.json` selects published evidence by path and digest. Board/dashboard are
|
|
generated projections, never alternate writable authorities. Exact tool CLI/schema is documented
|
|
in `campaign/README.md`. Historical findings retain their original experiment scope; they are
|
|
not promoted by copying an old status into a new contract.
|
|
|
|
## Model authority
|
|
|
|
| Responsibility | Model |
|
|
|---|---|
|
|
| Normal planning, architecture and integration loop | GPT-5.6 Sol |
|
|
| Bounded RE analysis, implementation and independent verification | GPT-5.6 Sol |
|
|
| Routine lab/workload operations | GPT-5.6 Sol |
|
|
| Problem and surprise resolution | GPT-6 Astra |
|
|
| Context compaction | GPT-5.5 |
|
|
|
|
Exact provider IDs are in `campaign/models.json`. The lead escalates to Astra when a falsified
|
|
assumption, conflict, instrument effect, or scope change blocks the loop. No fallback is automatic. Model names in editable JSON are
|
|
provenance, not authentication: launcher events and independent review support the record.
|
|
Permissions reduce accidental role drift; unrestricted local shell access is not a sandbox.
|
|
|
|
## Behavioral slice
|
|
|
|
The lead specifies a bounded input domain, full observable write set, dependencies, acceptance
|
|
workloads and stop conditions. The analyst recovers behavior; the verifier specifies discriminating
|
|
tests before implementation; the implementer changes engine/adapters; the lab operator captures
|
|
controls; the verifier reproduces; the integrator tests the combined source snapshot.
|
|
|
|
Include transitive effects: allocations, IDs, container ELEMENTS, event text/records, RNG and
|
|
nonserialized state. An address/function name is not a sufficient replacement boundary. If a
|
|
neighbor function supplies required effects, extend the approved contract or expose it as an
|
|
original dependency. Do not call the original and label the result independent.
|
|
|
|
Lifecycle is `proposed → ready → implementing → verification → integration → accepted`, with
|
|
blocked/revision states. Lifecycle is distinct from evidence strength. Acceptance is scoped to
|
|
the manifest's exact procedure and workloads, never universal correctness.
|
|
|
|
## Independence
|
|
|
|
Verifier and implementer are different executions. Verification starts with the contract, raw
|
|
evidence and reproduction recipe, not just the author's conclusion. Require one meaningful
|
|
challenge: held-out state, boundary, negative control, ablation, or independent state accounting.
|
|
Both synthetic tests and original-game experiments matter. Repeat-call volume cannot replace
|
|
branch and distinct-state coverage. Null effects and zero executions must be distinguishable.
|
|
|
|
## Sessions and recovery
|
|
|
|
At most two implementation slices after a single-slice pilot. No nested worker delegation.
|
|
Paired worktrees isolate source changes; unique build directories isolate artifacts. Canonical
|
|
RE runtime state remains explicit even when a worker runs in `/tmp` worktrees.
|
|
|
|
Checkpoint every 20 calls or 15min; also before experiments, compaction, handoff and stopping.
|
|
Record source identities, exact changed paths, commands/results, artifacts and hashes, open
|
|
surprises, held leases, requested/observed model, session identity and exact next action. Avoid
|
|
large prose histories: raw logs belong in evidence; the checkpoint is a bounded resumption record.
|
|
|
|
The launcher caps a quantum at 40 agent steps. A new quantum starts fresh using contract and
|
|
checkpoint. Auto-compaction with an ample reserved window and four retained turns is enabled.
|
|
This is a best-effort context backstop; regular durable checkpoints and fresh quanta provide the
|
|
actual recovery discipline. Never claim a model compacted merely because a setting exists.
|
|
|
|
## Surprises
|
|
|
|
On a falsified prediction, contradictory claim, unexplained regression, instrument interference,
|
|
or newly necessary dependency: record the observation and evidence; block affected work. Astra
|
|
first checks the instrument and source identity, then marks claims surviving/qualified/overturned,
|
|
chooses a discriminating experiment, and records the revised plan. Unaffected contracted work
|
|
may continue. Updating a paragraph without invalidating affected acceptance is insufficient.
|
|
|
|
## Lab ownership
|
|
|
|
Acquire a canonical resource lease before VM, build-host or Ghidra mutation. An expired timestamp
|
|
does not authorize stealing a lease. The lead reconciles stale ownership with actual processes.
|
|
Use one guest at a time for maintenance, capture before/after inventory, preserve access and
|
|
runtime dependencies, and verify unattended console login plus authenticated administration.
|
|
Reboots require a free guest and a recorded recovery path. Runtime/Ghidra changes are experiments
|
|
with provenance, not undocumented preparatory steps.
|
|
|
|
## Gate and publication
|
|
|
|
Run the local gate with explicit engine, corpus, new output directory and profile. It snapshots
|
|
source, uses fresh builds, records manifests and runs the expected test inventory once. Host
|
|
profile allows a named list of unavailable asset/trace tests and publishes them as limitations.
|
|
Full acceptance requires the full profile and the slice-specific original oracle; no blanket
|
|
waiver converts a host pass to fidelity. Standalone measurement may diverge; acceptance may not.
|
|
|
|
The integrator alone selects current results after verifying their hashes and source binding.
|
|
No percentages of LOC, mapped rows or closed leaves purport to measure engine completeness.
|
|
Run failure and missing evidence are visible states. Old results remain historical, not current.
|