A securely isolated Docker sandbox code execution service. Supports multi-language dynamic execution for Python, Shell, and Bash, with built-in timeouts and resource limits. Provides a trusted mode for controlled inter-service code integration calls.
安全的代码执行沙盒服务,能够:
--network nonefrom services.sandbox_service.client import SandboxClient
client = SandboxClient()
# 健康检查
status = client.health_check()
# 执行 Python 代码
result = client.execute("print(1+1)", language="python")
# 执行 Shell 命令
result = client.execute("echo Hello && date", language="shell")
# 自定义超时(秒)
result = client.execute(
code="import time; time.sleep(5)",
language="python",
timeout=10
)
# 传递环境变量
result = client.execute(
code="import os; print(os.environ.get('MY_VAR'))",
language="python",
env_vars={"MY_VAR": "hello"}
)
# 检查执行结果
if result["success"]:
print(f"输出: {result['stdout']}")
else:
print(f"错误: {result['stderr']}")
使用 trusted_mode=True 可以在代码中调用其他服务:
# 信任模式:允许访问 services 和网络
result = client.execute(
code='''
from services.embedding_service.client import EmbeddingServiceClient
from services.rerank_service.client import RerankServiceClient
# 获取 embedding
embed_client = EmbeddingServiceClient()
vec1 = embed_client.embed_query("人工智能")
vec2 = embed_client.embed_query("机器学习")
# 计算相似度
import math
dot = sum(a*b for a,b in zip(vec1, vec2))
norm1 = math.sqrt(sum(a*a for a in vec1))
norm2 = math.sqrt(sum(b*b for b in vec2))
similarity = dot / (norm1 * norm2)
print(f"相似度: {similarity:.4f}")
''',
language="python",
trusted_mode=True # 开启信任模式
)
信任模式注意事项:
{
"success": true,
"stdout": "2\n",
"stderr": "",
"exit_code": 0,
"execution_time": 1.058,
"error": null
}
{
"success": false,
"stdout": "",
"stderr": "执行超时(3秒)",
"exit_code": -1,
"execution_time": 3.05,
"error": "Execution timeout"
}
| 语言 | 标识 | 基础镜像 |
|------|------|----------|
| Python | python, python3, py | python:3.10-slim |
| Shell | shell, sh | alpine:latest |
| Bash | bash | bash:latest |
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer