From 776acc237313ac3219d3399cb93c428269c83797 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E6=BD=AE?= Date: Thu, 21 May 2026 19:46:22 +0800 Subject: [PATCH] DaytonaSandbox support shell env --- agent/deep_assistant.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/agent/deep_assistant.py b/agent/deep_assistant.py index 74502b7..957b0d0 100644 --- a/agent/deep_assistant.py +++ b/agent/deep_assistant.py @@ -311,6 +311,22 @@ async def init_agent(config: AgentConfig): sandbox, sandbox_type, workspace_root = await sandbox_task logger.info(f"init_agent sandbox ready, elapsed: {time.time() - create_start:.3f}s") + # Inject shell_env into Daytona sandbox via BASH_ENV file + if sandbox is not None and sandbox_type == "daytona": + _shell_env = { + "ASSISTANT_ID": config.bot_id, + "USER_IDENTIFIER": config.user_identifier, + "TRACE_ID": config.trace_id, + "ENABLE_SELF_KNOWLEDGE": str(config.enable_self_knowledge).lower(), + **(config.shell_env or {}), + } + env_lines = "\n".join(f'export {k}="{v}"' for k, v in _shell_env.items() if v is not None) + if env_lines: + from utils.daytona_sync import REMOTE_BASH_ENV_PATH, REMOTE_WORKSPACE_ROOT + bash_env_content = f"cd {REMOTE_WORKSPACE_ROOT}\n{env_lines}" + sandbox.execute(f"cat > {REMOTE_BASH_ENV_PATH} << 'ENVEOF'\n{bash_env_content}\nENVEOF") + logger.info(f"Injected {len(_shell_env)} env vars into Daytona BASH_ENV") + # Load sub-agents from skill directories subagents = await load_subagents( bot_id=config.bot_id,