Skip to main content
Import: from gaia.agents.base.console import AgentConsole, SilentConsole

Detailed Spec: spec/console Purpose: Control agent output display.

AgentConsole (Rich CLI Output)


SilentConsole (No Output)


SSEOutputHandler (Streaming API)


When to Use Each Handler


Confirming Dangerous Tools

Tools listed in the agent’s confirmation_required_tools() set — the generic shell / file-mutation names plus whatever the agent declares in CONFIRMATION_REQUIRED_TOOLS (email send, permanent delete, calendar RSVP) — never execute until confirm_tool_execution() returns True. The gate is name-based and applies to Agent._execute_tool, so a tool that isn’t in that set (or code that bypasses the agent loop) is not covered. What a confirmation means depends on the handler: The agent loop turns a denial into a {"status": "denied", "error": ...} tool result, so the model can explain itself or pick a different action instead of the run crashing.
For a genuinely unattended run (CI, a batch job, a host that already asked the user), set GAIA_AUTO_APPROVE_TOOLS=1 in the launching environment, or construct the console with AgentConsole(auto_approve_gated_tools=True). Every approval taken this way is logged with the tool name. The variable is read from the environment as it was at startup, so a project-local .env cannot enable it. Do not leave it set on a machine with a live mailbox connected — it lets the model send, forward, and permanently delete without asking.