Skip to content

STD-ARCH-005: 5-Axis Agent Harness Model

Status: PROVEN FINDING / BINDING ARCHITECTURE

1. 5-Axis Separation

Gas City and Bluefly agents must adhere to a strict separation of concerns across 5 independent axes. Domain packs must NOT hardcode providers or models.

AGENT
  blu / drupal / witness / refinery / ...
        ↓ chooses
HARNESS
  goose
  claude
  codex
  ...
        ↓ independently chooses
MODEL CLASS
  reasoning
  code
  fast
  review
        ↓ resolved through
UPSTREAM
  LiteLLM Oracle
  LiteLLM NAS
  LM Studio Mac
  Claude API
        ↓
RUNTIME
  Oracle
  Mac
  optional NAS worker

2. Invariants

  • AGENT_IDENTITY != HARNESS (Drupal is Drupal, Goose is merely the executing harness)
  • HARNESS != MODEL
  • MODEL != ENDPOINT
  • ENDPOINT != RUNTIME

3. Factory Requirements

  • GAS_CITY_OWNS_LIFECYCLE=YES
  • HARNESS_IS_REPLACEABLE=YES
  • MODEL_IS_REPLACEABLE=YES

Lifecycle hooks (e.g., SessionStart, Mail Draining, PreCompact) are Factory requirements, not Claude requirements. Any harness (Goose, Codex, etc.) must participate equivalently through Gas City's native connected-client lifecycle.

4. Current Findings

  • Goose should be added as another harness recipe rather than baked into individual agents.
  • DrupalWorks remains ignorant of the host Factory. Bluefly-specific composition lives in BluCity-Packs.
  • Proposals for curated API surfaces and native Events supersede polling mechanisms (e.g., 30-second dashboard polling).