SANDBOX_BLOCK_LANGSMITH = 'from deepagents.backends.langsmith import LangSmithSandbox\n\n_SANDBOXES: dict = {}\n\n\ndef _get_or_create_sandbox(
cache_key):\n """Get or create a LangSmith sandbox cached by ``cache_key``."""\n if cache_key in _SANDBOXES:\n return _SANDBOXES[cache_key]\n\n from langsmith.sandbox import ResourceNotFoundError, SandboxClient\n\n api_key = (\n os.environ.get("LANGSMITH_SANDBOX_API_KEY")\n or os.environ.get("LANGSMITH_API_KEY")\n or os.environ["LANGCHAIN_API_KEY"]\n )\n client = SandboxClient(api_key=api_key)\n\n try:\n client.get_template(SANDBOX_TEMPLATE)\n except ResourceNotFoundError:\n client.create_template(name=SANDBOX_TEMPLATE,
image=SANDBOX_IMAGE)\n\n sandbox = client.create_sandbox(template_name=SANDBOX_TEMPLATE)\n backend = LangSmithSandbox(sandbox)\n _SANDBOXES[cache_key] = backend\n logger.info(\n "Created LangSmith sandbox %s for key %s",
\n sandbox.name,
\n cache_key,
\n
)\n return backend\n'