Skip to main content

Agent Execution

When your command requires tool execution, the server-side ADK agent takes over to autonomously complete the task.

How Execution Works

  1. Intent received — Server receives user_intent with your command and optional screen context
  2. Planning — Agent analyzes the request and plans execution steps
  3. Tool execution — Agent iterates through tools: observe screen, run commands, click UI elements
  4. Progress streaming — Each tool call streams agent_progress updates to your phone in real time
  5. Result delivery — Final agent_result sent with the answer, step count, and duration

Execution Thread Entries

Your phone displays each step of the execution:

Entry TypeDescription
user_messageYour original command
agent_progressStep-by-step tool calls with status indicators
tool_callDetailed tool invocation (name, parameters, model, backend)
tool_resultTool output (stdout, stderr, exit code, duration)
agent_confirmation_requestDestructive action approval request
agent_thinkingPlanning indicator with shimmer animation
agent_resultFinal response from the agent
agent_statusStatus updates (vision fallback, Docker sandbox fallback, model error)

Safety Limits

LimitValuePurpose
Max iterations50Prevents infinite tool-calling loops
Wall-clock timeout10 minutesHard cap on total execution time
Per-LLM-call timeout120 secondsPrevents hanging on slow API responses

Stopping Execution

Tap the Stop button during active execution to cancel immediately. The server kills any running processes and sends a completion message.

Confirmation Requests

When the agent encounters a destructive command (matching your configured destructive_patterns), it pauses and sends a confirmation request to your phone:

  • The command and reason are displayed
  • Tap Approve to continue or Deny to skip that step
  • If no response within a timeout, the command is automatically rejected

Confirmation requests include a voice_message for audio feedback if voice input is active.


Related: Tool Layers · Dual-Tool Evaluator · REST API