Skip to content

Commit a74d7d2

Browse files
authored
Merge pull request #61 from Serverless-Devs/fix-sandbox-toolset-support-oss
fix(sandbox): add optional configurations for OSS, NAS, and PolarFS
2 parents 4a6327c + bf299b8 commit a74d7d2

File tree

3 files changed

+316
-1
lines changed

3 files changed

+316
-1
lines changed

agentrun/integration/builtin/sandbox.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
if TYPE_CHECKING:
1616
from agentrun.sandbox.api.playwright_sync import BrowserPlaywrightSync
17+
from agentrun.sandbox.model import NASConfig, OSSMountConfig, PolarFsConfig
1718

1819
try:
1920
from playwright.sync_api import Error as PlaywrightError
@@ -38,6 +39,9 @@ def __init__(
3839
*,
3940
sandbox_idle_timeout_seconds: int,
4041
config: Optional[Config],
42+
oss_mount_config: Optional["OSSMountConfig"] = None,
43+
nas_config: Optional["NASConfig"] = None,
44+
polar_fs_config: Optional["PolarFsConfig"] = None,
4145
):
4246
super().__init__()
4347

@@ -49,6 +53,10 @@ def __init__(
4953
self.template_type = template_type
5054
self.sandbox_idle_timeout_seconds = sandbox_idle_timeout_seconds
5155

56+
self.oss_mount_config = oss_mount_config
57+
self.nas_config = nas_config
58+
self.polar_fs_config = polar_fs_config
59+
5260
self.sandbox: Optional[Sandbox] = None
5361
self.sandbox_id = ""
5462

@@ -73,6 +81,9 @@ def _ensure_sandbox(self):
7381
template_type=self.template_type,
7482
template_name=self.template_name,
7583
sandbox_idle_timeout_seconds=self.sandbox_idle_timeout_seconds,
84+
oss_mount_config=self.oss_mount_config,
85+
nas_config=self.nas_config,
86+
polar_fs_config=self.polar_fs_config,
7687
config=self.config,
7788
)
7889
self.sandbox_id = self.sandbox.sandbox_id
@@ -182,12 +193,18 @@ def __init__(
182193
template_name: str,
183194
config: Optional[Config],
184195
sandbox_idle_timeout_seconds: int,
196+
oss_mount_config: Optional["OSSMountConfig"] = None,
197+
nas_config: Optional["NASConfig"] = None,
198+
polar_fs_config: Optional["PolarFsConfig"] = None,
185199
) -> None:
186200
super().__init__(
187201
template_name=template_name,
188202
template_type=TemplateType.CODE_INTERPRETER,
189203
sandbox_idle_timeout_seconds=sandbox_idle_timeout_seconds,
190204
config=config,
205+
oss_mount_config=oss_mount_config,
206+
nas_config=nas_config,
207+
polar_fs_config=polar_fs_config,
191208
)
192209

193210
# ==================== 健康检查 / Health Check ====================
@@ -695,13 +712,19 @@ def __init__(
695712
template_name: str,
696713
config: Optional[Config],
697714
sandbox_idle_timeout_seconds: int,
715+
oss_mount_config: Optional["OSSMountConfig"] = None,
716+
nas_config: Optional["NASConfig"] = None,
717+
polar_fs_config: Optional["PolarFsConfig"] = None,
698718
) -> None:
699719

700720
super().__init__(
701721
template_name=template_name,
702722
template_type=TemplateType.BROWSER,
703723
sandbox_idle_timeout_seconds=sandbox_idle_timeout_seconds,
704724
config=config,
725+
oss_mount_config=oss_mount_config,
726+
nas_config=nas_config,
727+
polar_fs_config=polar_fs_config,
705728
)
706729
self._playwright_sync: Optional["BrowserPlaywrightSync"] = None
707730

@@ -1349,6 +1372,9 @@ def sandbox_toolset(
13491372
template_type: TemplateType = TemplateType.CODE_INTERPRETER,
13501373
config: Optional[Config] = None,
13511374
sandbox_idle_timeout_seconds: int = 5 * 60,
1375+
oss_mount_config: Optional["OSSMountConfig"] = None,
1376+
nas_config: Optional["NASConfig"] = None,
1377+
polar_fs_config: Optional["PolarFsConfig"] = None,
13521378
) -> CommonToolSet:
13531379
"""将沙箱模板封装为 LangChain ``StructuredTool`` 列表。"""
13541380

@@ -1357,10 +1383,16 @@ def sandbox_toolset(
13571383
template_name=template_name,
13581384
config=config,
13591385
sandbox_idle_timeout_seconds=sandbox_idle_timeout_seconds,
1386+
oss_mount_config=oss_mount_config,
1387+
nas_config=nas_config,
1388+
polar_fs_config=polar_fs_config,
13601389
)
13611390
else:
13621391
return CodeInterpreterToolSet(
13631392
template_name=template_name,
13641393
config=config,
13651394
sandbox_idle_timeout_seconds=sandbox_idle_timeout_seconds,
1395+
oss_mount_config=oss_mount_config,
1396+
nas_config=nas_config,
1397+
polar_fs_config=polar_fs_config,
13661398
)

agentrun/sandbox/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
OSSMountPoint,
1818
PageableInput,
1919
PolarFsConfig,
20+
PolarFsMountConfig,
2021
SandboxInput,
2122
TemplateArmsConfiguration,
2223
TemplateContainerConfiguration,
@@ -66,6 +67,6 @@
6667
"OSSMountConfig",
6768
"OSSMountPoint",
6869
"PolarFsConfig",
69-
"PolarFsConfig",
70+
"PolarFsMountConfig",
7071
"CustomSandbox",
7172
]

0 commit comments

Comments
 (0)