Skip to main content

kernel_agent_loop

Function kernel_agent_loop 

Source
pub async fn kernel_agent_loop(
    pid: Pid,
    cancel: CancellationToken,
    inbox: Receiver<KernelMessage>,
    a2a: Arc<A2ARouter>,
    cron: Arc<CronService>,
    process_table: Arc<ProcessTable>,
    tool_registry: Option<Arc<ToolRegistry>>,
    chain: Option<Arc<ChainManager>>,
    gate: Option<Arc<dyn GateBackend>>,
) -> i32
Expand description

Run the built-in kernel agent work loop.

The agent:

  1. Receives messages from its A2ARouter inbox
  2. Processes built-in commands dispatched as JSON {"cmd": "..."} payloads
  3. Sends responses back via A2ARouter
  4. Tracks resource usage (messages_sent, tool_calls, cpu_time_ms)
  5. Supports suspend/resume via {"cmd":"suspend"} / {"cmd":"resume"}
  6. Enforces gate checks before exec/cron commands (when gate is provided)
  7. Exits when the cancellation token is triggered

Returns an exit code (0 = normal shutdown).