sandbox-service
Installation
SKILL.md
功能
安全的代码执行沙盒服务,能够:
- 在隔离的 Docker 容器中执行代码
- 支持 Python、Shell、Bash 多种语言
- 自动超时控制和资源限制
- 执行后自动销毁容器,无状态残留
适用场景
- 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"
}
支持的语言
| 语言 | 标识 | 基础镜像 |
|---|---|---|
| Python | python, python3, py |
python:3.10-slim |
| Shell | shell, sh |
alpine:latest |
| Bash | bash |
bash:latest |
Related skills
More from lin-a1/skills-agent
ocr-service
高精度光学字符识别(OCR)服务。支持多语言、多格式图像的文字检测与提取,并提供文本区域坐标与置信度评分,适用于文档数字化与图像内容分析。
149websearch-service
基于 SearXNG 与 VLM 的实时联网搜索服务。专用于获取最新新闻、实时事件及特定事实。内置智能双层缓存(向量+数据库)与网页内容自动提取分析功能。
23rag-service
高性能 RAG 多路检索服务。集成 Milvus 向量数据库进行语义检索,并结合 Rerank 模型进行精准重排序,支持海量文档的高效存储与历史内容召回。
10embedding-service
文本向量化(Embedding)基础服务。将自然语言转换为高维稠密向量,为语义搜索、聚类分析、推荐系统等下游任务提供核心数据支持。
10deepsearch-service
基于 LLM 的深度迭代搜索与推理服务。擅长处理复杂问题,通过自动分解查询、多轮迭代检索、信息评估与验证,最终生成全面且结构化的深度分析报告。
10rerank-service
文档重排序服务(Reranker)。基于深度学习模型对检索候选结果进行细粒度相关性打分与重新排序,显著提升检索结果的精准度(Top-K 准确率)。
9