pve-agents
Concepts

The agent runner

The per-workspace process that keeps an agent session available.

A detached Node process inside each workspace keeps one agent session open for the life of the container and listens on a Unix socket.

  • Private control channel. The controller reaches the socket through SSH with nc -U; no agent control port is exposed on the workspace network.
  • Independent from controller restarts. Deploying or restarting the controller does not end the agent session. The runner sources credentials explicitly because a detached, non-interactive process does not read shell startup files.
  • One runner per harness. The controller installs the runner selected by the workspace's harness. It is the only component that talks to an agent-specific API.
  • Template dependencies, shipped runner code. The template holds large dependencies; the controller supplies the runner code. Routine runner updates therefore do not require a template rebuild.
  • Replay on attach. A snapshot contains the conversation and pending approvals, so reconnecting after a controller restart presents the current state.

The transcript is not mirrored to the database. Destroying a workspace removes its transcript, but the timeline retains recorded actions such as prompts, approvals, pushes, and discards.

Permissions belong to the agent's configuration. Configure each agent with a seed file; anything the agent does not resolve reaches the browser approval UI.

Last updated on