Agent Workspaces
General Bots supports an advanced “Agent Mode” UI where the interaction with an AI agent shifts from a simple chat interface to a fully realized multi-panel workspace. This design empowers users to monitor complex autonomous tasks in real-time, providing deep visibility into what the AI is doing.
Architectural Overview
When an application logic branch triggers a computationally heavy or open-ended action (like APP_CREATE or deep research), the backend kicks off an Agent Executor process. This executor brings up a dedicated, highly isolated LXC container for that specific session.
The Agent Executor communicates back to the frontend in real-time. This provides a transparent view of:
- Thought Processes: High-level textual reasoning of the agent.
- Terminal Output: Verbatim standard output and standard error from the LXC container.
- Browser Output: Visual previews of web applications being built or research being conducted, served via localhost proxies from within the container.
The Agent UI
The main interface pivots from a standard 1-panel conversation to a complex multi-panel grid when “Agent Mode” is toggled from the Chat interface.
This layout includes:
- Left Sidebar: A collapsible “Agents & Workspaces” sidebar that summarizes the current state of active agents, their resource usage (quota), and provides drag-and-drop workspace organization.
- Center Chat: A persistent interactive chat with the specific agent, allowing for ongoing refinement of the task.
- Right Hand Split Screens:
- Top Right: An active Browser Window. The agent can stream HTML rendering updates or host internal applications (
localhost) from its LXC sandbox, exposing them visually to the user. - Bottom Right: A live Terminal feed streaming
stdoutandstderrdirectly from the bash environment of the underlying LXC container.
- Top Right: An active Browser Window. The agent can stream HTML rendering updates or host internal applications (
LXC Sandbox execution
To prevent dependency collisions, protect the host operating system, and offer clean slate environments for arbitrary execution, every agent session spins up a temporary Ubuntu 22.04 LXC container.
- When the agent intent classifier matches a heavy task (e.g.
APP_CREATE), the backend initiates theContainerSessionstruct. - An
lxc launchcommand instantiates a fast, lightweight container instance. - A bash shell is opened inside this container, and its I/O streams are piped back to the
TaskProgressEventbroadcast channel using Tokio. - The user sees the bash output instantly in the bottom-right terminal panel.
- On completion or failure, the container is forcibly stopped and deleted (
lxc delete --force).
This isolated environment gives agents the absolute freedom to execute package installations (like npm install), launch development servers, and write arbitrary code, entirely segregated from the primary BotServer.