rein-aharness/docs/adr/ADR-001-agent-harness-architecture.md
custodian-sync f01b765668 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-09-04:
  - update .custodian-brief.md for rein-aharness

Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a06ba0-10aa-7ea0-b20a-4f3fac39efe9
2026-09-04 11:00:20 +02:00

63 lines
2.9 KiB
Markdown

---
id: ADR-001
title: Single shared agent harness; instances are declarative state in consuming repos
status: accepted
date: "2026-07-17"
---
# ADR-001 — Single shared agent harness
## Status
Accepted (DEC-2026-002, binky-control DecisionQueue, resolved by Bernd
2026-07-17; hub decision `63620255-59d0-4109-bdee-4d0644c450e5`).
## Context
Unattended agentic work needs blueprints (kaizen-agentic), compute
(llm-connect), scheduling (activity-core), credentials, policy, memory,
and reporting — a complex, rapidly evolving combination. The candidate
homes for the execution runtime all had disqualifying boundaries in their
ratified INTENT files: activity-core "does not execute the work";
kaizen-agentic does no scheduling and no LLM invocation; llm-connect is
an interface layer. Per-project executor repos would multiply glue code
and upgrades linearly with agent count. The concrete trigger: binky-
control's operating rhythm depended on a workstation cron bridge
(BINKY-WP-0004).
## Decision
1. **One new repo — `agent-harness` — is the single shared agent runtime
for all projects.** No further runtime repos per agent or per project.
2. **Agent instances live in consuming repos as declarative state only**
(manifest + `.kaizen/` memory/metrics): blueprint reference, cadence,
lane, named tool profile, budget, pinned harness major. No code, no
credentials, no tool enumerations.
3. **Blueprints stay in kaizen-agentic; scheduling stays in
activity-core; provider abstraction stays in llm-connect.** The
harness consumes all three. Per ADR-002 it is the
repository-transaction and rein-local tool-policy enforcement point
within a chained grant, not the only credential holder or the only
policy enforcement point in the estate. Tenant repos, blueprints, and
schedules still must not hold session credentials or tool wiring.
4. The 2026-07-17 executor-worker prototype is adopted as the harness
seed (`agent_harness/` package). binky-control is tenant #1.
Details: [docs/architecture.md](../architecture.md).
## Consequences
- Adding an agent to any project = editing that project's manifest;
onboarding a project = committing one manifest.
- Base-technology evolution (adapters, tool policies, credential
mechanics) lands once, here — instances upgrade by version bump.
- The harness becomes a critical shared service: it needs its own
versioning discipline, conformance tests, and kaizen measurement.
- BINKY-WP-0004-T06 (cron-bridge cutover) now gates on this repo's
Railiance deployment instead of a binky-specific worker.
- Repo-boundary discipline continues: any pressure to add scheduling,
blueprint authoring, or tenant-specific logic here is a signal to
extend the neighbor repo or the instance model instead.
- ADR-002 (accepted 2026-08-29) amends the credential-holder and
policy-enforcement slogans in decision 3. The instance/runtime split
and the prohibition on tenant-held credentials are unchanged.