Skip to content

Support lazy sandbox initialization in createBashTool #18

@xiaok

Description

@xiaok

I’m building a chatbot that exposes tools to an LLM. In most conversations, users never need shell execution, so I only want to create a sandbox when a bash-related tool is actually called.

Current blocker:

createBashTool requires an already-created sandbox instance at tool initialization time.
In chatbot frameworks, tools are usually initialized upfront for every request/session.
This forces sandbox creation even when bash tools are never used, which adds avoidable latency/cost.
What I’m looking for
A way to initialize bash tools without an eager sandbox, for example:

Accepting a lazy provider: sandbox: Sandbox | (() => Promise)
Or a getSandbox() callback option that is called only on first tool execution
Or an officially supported “deferred init” API for tool construction

Why this matters

For agent/chatbot scenarios, lazy resource provisioning is important:

Most sessions are non-technical and never call bash tools
Eager sandbox creation wastes resources
Deferred creation improves startup performance and cost

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions