Lab Notes
Agents

Context Boundaries

Qué puede ver cada agente, qué puede escribir y qué no puede tocar nunca. Los contracts que evitan que un agente corrompa a otro.

Propósito

Esta página documenta los context boundaries entre los agents. Los boundaries son los contracts que evitan que un agent corrompa a otro y que hacen el sistema auditable.

Los agents son:

Cada agent tiene su propio context. Los boundaries los enforce el process model del framework y los filesystem permissions.

Process model

Cada agent corre en su propio proceso. Los procesos están aislados a nivel del OS. La comunicación entre agents ocurre a través de:

  • HTTP (para el Research Worker y el Media Agent, que exponen gateways).
  • Function calls (para el Coding Assistant, al que invoca el Coordinator).
  • La herramienta browser (para el Web Agent, que es una thin layer sobre el browser).

Los procesos están supervisados por launchd (macOS) o systemd (Linux). Un crash en un proceso no afecta a los demás.

Filesystem boundaries

Cada agent tiene su propio working directory y su propia memoria. El filesystem layout:

PathOwnerOther agents
{workspace-root}/CoordinatorRead-only
{workspace-root}/{project}/Project's agentRead-only
{workspace-root}/memory/CoordinatorNever
{workspace-root}/skills/Coordinator (activates)Read by all
{workspace-root}/sessions/<id>/Session's agentsNever
{research-root}/runs/<mission_id>/Research WorkerRead by Coordinator
~/.openclaw-scout/Scout (Research Worker)Read by Coordinator
~/.openclaw/media/outbound/Media Lab ServerRead by Media Agent

Los boundaries los enforce:

  • Process isolation. Cada agent corre con una user identity distinta donde el OS lo permite.
  • Filesystem permissions. Cada directorio tiene permissions que evitan writes no intencionados.
  • Tool sandboxing. Las herramientas del Coding Assistant corren en un sandbox que evita writes fuera del workspace.

El Coordinator puede leer cualquiera de estas ubicaciones. Los demás agents pueden leer lo que necesitan para hacer su trabajo y escriben solo en sus propias ubicaciones.

Memory boundaries

La memory layer está documentada en detalle en Memory and Context. El resumen:

  • MEMORY.md se carga solo en la main session. Los specialized agents no la cargan.
  • Los daily logs son per-agent.
  • El Research Worker tiene su propia workspace memory ({research-root}/) para mission artifacts.
  • El Media Agent no tiene memoria persistente.

El Coordinator es el único agent que puede editar MEMORY.md. Los demás agents no pueden.

Tool boundaries

Cada agent tiene una lista de tools que puede invocar. La lista se configura por agent en la configuration del framework.

AgentTools (examples)
CoordinatorTodas las tools (es el dispatcher).
Coding Assistantcodex, git, npm, pytest, file manipulation tools (dentro del sandbox).
Research Workerresearch-cli, run-research, tavily, duckduckgo, google-search, youtube-transcript, yt-dlp, perplexity.
Media Agentchromecast, vlc, media-playback, media-lab-server, torrent-finder, subtitle-finder, dubbed-finder, media-info.
Web Agentbrowser (la herramienta browser de OpenClaw).

Las tools del Coding Assistant están sandboxed. Las tools de los demás agents corren en su propio proceso y tienen los permissions de ese proceso.

Communication boundaries

Los agents se comunican a través de:

  • Request/response. El Coordinator envía una request a un agent; el agent le devuelve una response.
  • File system. El Research Worker escribe artifacts a disco; el Coordinator los lee bajo demanda.
  • Gateway HTTP. El Research Worker y el Media Agent exponen gateways HTTP. El Coordinator los llama por HTTP.

Los agents no se comunican a través de:

  • Shared memory. No hay región de memoria compartida.
  • Environment variables. Los agents no leen las environment variables de los demás.
  • Direct function calls. El Coordinator llama a los agents por sus interfaces públicas (HTTP, CLI).

Los boundaries están diseñados para que un agent se pueda reemplazar sin afectar a los demás. El Coordinator no sabe cómo implementa su trabajo un agent; conoce el contract.

What each agent can never touch

AgentCannot touch
CoordinatorEl sistema del usuario (no shell access por defecto).
Coding AssistantNada fuera del workspace del proyecto (sandboxed).
Research WorkerLa memoria del Coordinator. El sandbox del Coding Assistant.
Media AgentLos artifacts del Research Worker. El sandbox del Coding Assistant.
Web AgentNada fuera del browser. El filesystem del usuario.

Estos constraints los enforce:

  • El process model (no hay recursos compartidos).
  • El tool sandboxing (Coding Assistant).
  • Los filesystem permissions.
  • La configuration del framework (qué tools se exponen a qué agent).

What each agent must do

AgentMust
CoordinatorLoguea cada request y cada response. Hace clarifying questions.
Coding AssistantNunca escribe código directamente. Siempre pasa por el sub-agent.
Research WorkerCheckpoint tras cada paso. Valida los artifacts contra los schemas.
Media AgentConfirma el target device antes de enviar un playback command.
Web AgentUsa el accessibility tree, no screenshots, para las acciones.

Las "must" rules son parte del contract. Las violaciones son bugs.

Boundary enforcement

Los boundaries los enforce:

  • Process isolation. Los agents corren en procesos distintos.
  • Filesystem permissions. El working directory de cada agent tiene permissions que evitan writes no intencionados.
  • Tool sandboxing. Las tools del Coding Assistant están sandboxed.
  • Configuration. La configuration del framework declara qué tools puede usar cada agent.
  • Audit. La audit layer (ver Audit Model) registra cada request cross-agent.

Una violación de boundary es un bug. El Coordinator surface la violación al usuario y pregunta cómo proceder.

See also

On this page