agentsclimarketplace

Sandbox service

Skill Lin-A1/skills-agent/services/sandbox_service

根据agent skill理念构建的通用智能体框架

Install
npx -y skills add Lin-A1/skills-agent --skill sandbox_service

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 7 stars7 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

安全隔离的 Docker 沙盒代码执行服务。支持 Python/Shell/Bash 多语言动态执行,内置超时与资源限制。提供信任模式用于服务间代码融合调用。

SKILL.md

3.0 KB, as published. Nobody here has run it

功能

安全的代码执行沙盒服务,能够:

  1. 在隔离的 Docker 容器中执行代码
  2. 支持 Python、Shell、Bash 多种语言
  3. 自动超时控制和资源限制
  4. 执行后自动销毁容器,无状态残留

适用场景

  • Agent 需要执行代码验证结果
  • 运行用户提供的代码片段
  • 数据处理和计算任务
  • 脚本执行和自动化

安全限制

  • 网络隔离:--network none
  • 内存限制:256MB
  • CPU 限制:1 核
  • 执行时间:最长 60 秒
  • 用户权限:非 root (nobody)
  • 文件系统:只读

调用方式

from 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  # 开启信任模式
)

信任模式注意事项:

  • 允许访问 myagent_network 网络
  • 可以调用其他服务的 Python 客户端
  • 适合 Agent 代码融合场景
  • 仍有内存和 CPU 限制

返回格式

{
  "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"
}

支持的语言

语言标识基础镜像
Pythonpython, python3, pypython:3.10-slim
Shellshell, shalpine:latest
Bashbashbash:latest

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.