LangBot Docs
Sandbox

Runtimes and Extensions

Understand LangBot runtimes and extensions: how the Box Runtime, sandbox backends and MCP servers fit together.

LangBot ships four extension mechanisms in parallel — plugins, MCP, Skills, and the sandbox — and they are easy to confuse. This page sorts out what each one does and when to use it.

One-line Summary

  • Box execution environment: lets the Agent run commands and read/write files; isolation depends on the selected backend
  • Skills: on-demand instruction packages that hand the Agent a specialized workflow when needed
  • MCP Server: connects to external tool services
  • Plugin: a long-running extension process that can ship its own config page, event listeners, and knowledge components

Comparison

CapabilityProvided byHow the Agent sees itWhen to use
Box execution environmentBox RuntimeThe six tools exec/read/write/edit/glob/grep are attached directlyAgent needs to run code or read/write files
SkillsBox Runtime skill storeAfter the Agent calls activate, instructions are injected via Tool ResultHand the Agent a workflow, template, or script, triggered on demand
MCP ServerLangBot MCP Loader (stdio mode is hosted by Box)Tools land directly in the Agent's tool listConnect an existing MCP service
PluginPlugin RuntimeCapabilities are exposed through the plugin systemLong-lived capability with a config page, event listeners, or knowledge components

Pipeline Binding

Skills, MCP Servers, and plugins are all pipeline extensions. After installing or creating them in the WebUI, the pipeline extension config still decides where they're enabled:

  • Enable all extensions, or
  • Bind only specific extensions

Skill binding decides which skills the Agent can see (it controls the <available_skills> list). The actual skill content is only injected after the Agent calls activate.

Backends and Isolation Boundaries

The Box API, Agent tools, session scopes, lifecycle, Skills, and stdio MCP hosting work the same across backends, but their security properties differ. Docker, nsjail, and E2B provide their respective sandbox boundaries. Host uses processes on the Box Runtime host directly and is only for trusted local development. Selecting Host does not change the WebUI and does not give separate sessions host-level isolation.

Troubleshooting Map

SymptomCheck first
Agent has no exec/read/write toolsbox.enabled, backend availability, and whether the pipeline uses the built-in Agent
Skill list is emptyBox Runtime status, box.local.skills_root, pipeline binding
stdio MCP fails to startBox Runtime status, MCP command and environment variables, startup timeout
Sandbox fails to start in Docker deploymentWhether langbot_box mounts docker.sock, and whether Box root paths match
File read/write failsbox.local.host_root, box.local.allowed_mount_roots
Backend selection has no effectConfirm BOX__BACKEND is set on the langbot service, not on langbot_box
Host backend is unavailableConfirm the system is POSIX and sh is on PATH; use WSL on Windows
External Host Box connection is rejectedSet the same LANGBOT_BOX_CONTROL_TOKEN on LangBot and Box Runtime

Sandbox built-in tools and Skills currently target the built-in Agent. External runners (Dify, n8n, Langflow, Coze, etc.) should use their own tools and execution model.

On this page