colibri/docs/wiki/agent-harness.md
Sam & Claude b233aa8d9e
Some checks failed
CI / agent-jail-pkgs (pull_request) Has been cancelled
CI / rust (pull_request) Has been cancelled
CI / markdown (pull_request) Has been cancelled
CI / port (pull_request) Has been cancelled
docs: normalize prose dates to DD.mon.YYYY (AGENTS.md rule)
Convert US/ISO prose dates (2026-06-21) to EU format (21.jun.2026) across colibri
docs + wiki. Left as-is (data, not prose): the captured JSON "time" timestamp in
AGENT-EVENTS-REFERENCE and the rustc/cargo version strings in
CLAWDIE-INSTALLER-HANDOFF — ISO is correct for machine timestamps/filenames.

Gates: wiki-lint --strict clean; markdown format clean.
2026-06-24 16:43:41 +02:00

2 KiB
Raw Blame History

Agent harness: zot + Colibri

index

Decision

Two binaries, not one (Sam rejected merging them, 13.jun.2026):

  • zotthe agent (front door to the model). Go binary; acts.
  • Colibrithe control plane (supervisor). Rust; watches agents via glasspane, runs the task board, owns cost. It observes zot/pi; it does not contain them.

Canonical statement: AGENTS.md (lines ~1832). clawdie-ai (TS) is being pruned; surviving features move to zot/Colibri.

There is no ADR-agent-harness-consolidation.md despite references to it in clawdie-iso/scripts/stage-colibri-iso.sh. Treat AGENTS.md as the ADR.

Runtimes

Glasspane normalizes events from both harnesses into one taxonomy via AgentRuntime { Pi, Zot, Local }crates/colibri-glasspane/src/lib.rs (zot_event_type() maps zot's events onto the pi-style names).

Autospawn + the RPC driver (colibri#143)

The spawner's contract: spawn the agent, read stdout JSONL.

  • pi self-drives (pi --mode json) with stdin null — fits directly.
  • zot's only structured persistent mode is zot rpc, a request/response peer that reads stdin. So the spawner pipes stdin for RPC agents and the daemon sends the prompt over an RpcSender.

Where it lives:

  • spawn contract + rpc_stdin + RpcSender: crates/colibri-daemon/src/spawner.rs
  • autospawn binary-aware argv (zot → rpc, pi → --mode json): crates/colibri-daemon/src/socket.rs (default_agent_args, autospawn_agent_if_configured)
  • wire format (verified against real zot): AGENT-EVENTS-REFERENCE
  • end-to-end proof: crates/colibri-daemon/tests/zot_rpc_smoke.rs (#[ignore], ZOT_BIN-gated)

OOTB default harness is zot; pi remains a supported fallback (COLIBRI_AUTOSPAWN_BINARY=pi).

See also