Skip to content

docs(adr): two consoles — management + per-agent agent consoles (endpoint registry + remote file editor) - #49

Open
brettchien wants to merge 1 commit into
mainfrom
docs/adr-agent-consoles
Open

docs(adr): two consoles — management + per-agent agent consoles (endpoint registry + remote file editor)#49
brettchien wants to merge 1 commit into
mainfrom
docs/adr-agent-consoles

Conversation

@brettchien

Copy link
Copy Markdown
Contributor

What

A direction-alignment ADR for the two-console architecture Brett asked for (thread 2026-08-14): a management console (chat with one designated agent that drives the fleet via reverse-MCP) + per-agent agent consoles (view/edit that agent's files & apply, chat with it directly).

Steps up from the in-flight agent-chat-panel ADR (single-agent, still under development) — that ADR's chat panel becomes a reusable primitive instantiated per endpoint; this one adds the two mechanisms that make N agents reachable and configurable.

Decisions

  • Part A — two consoles, one chat primitive. Reverse-MCP oab fleet-control tools are published only to the management binding (least privilege); agent consoles chat + configure without granting fleet control.
  • Part B — per-agent endpoint registry. Generalize remote.tomlagents.toml ([[agent]] with url/token/cwd/management), back-compat shim for the legacy single file. RemoteState becomes per-agent-keyed.
  • Part C — agent console. Selector → config region (file editor) + chat region (the Part C primitive).
  • Part D — remote file editor. fs/list/read/write/stat over the same /acp endpoint (uniform local/remote; no direct kube/docker creds). Agent-declared editable root; Apply = write (+ optional restart-cycle via ADR-2 scale).

Operator decisions folded in (Brett, 2026-08-14)

  1. Every agent can start /acp; reachability is the operator's job (expose the port). Studio only needs (url, token, cwd) per agent.
  2. "Config" = files — one remote file editor, not separate spec/persona models.
  3. The management agent is just the agent bound as management; may be a fleet member; not required to be Studio-managed.

Gating dependency

The fs/* file-ops wire is upstream on openab (like streaming / tool_call today). Architecture + read-only path land first; the write/apply path sequences after the wire exists.

Open questions (see §8)

fs/* wire shape · editable-root declaration · agents.toml vs in-place array · endpoint discovery.

🤖 Generated with Claude Code

…oint registry + remote file editor)

Steps up from the single-agent chat panel (agent-chat-panel ADR) to the
two-console architecture: a management console that chats with one designated
agent (reverse-MCP → fleet control) and per-agent agent consoles that view/edit
that agent's files and chat with it directly.

Adds the two mechanisms this needs: a per-agent endpoint registry (agents.toml,
back-compat with remote.toml) and a remote file editor over the same /acp
endpoint. Reverse-MCP publication stays least-privilege (management binding
only). The fs/* wire is flagged as an upstream openab dependency; the write path
sequences after it, read-only + chat land first.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant