Agent Sandbox Registry

awesome-templates

Sandbox runtime for AI agents driven by N…

无英文版

hermes-agent/README.md

hermes-agent

中文版 | English


English

Sandbox runtime for AI agents driven by NousResearch Hermes models, supporting tool calling and multimodal tasks.

Environment

This template comes preinstalled with the following tools and dependencies:

Category Details
Base image python:3.12-slim
Python Python 3.12 + venv (at /opt/venv)
Node.js Node.js 22.x + npm
Python packages uv, openai>=1.0, httpx, rich, pyyaml
System tools git, curl, xz-utils, build-essential, ripgrep, ffmpeg
Resources 2 CPU / 4096 MB memory (8192 MB recommended for browser scenarios)

Installation

Install from a local path:

abx template install ./hermes-agent --registry-type local

Install from GitHub:

abx template install alibaba-agent-sandbox/awesome-templates//hermes-agent

Usage

Create a sandbox instance and pass in the LLM configuration:

abx create --template hermes-agent \
    --env OPENAI_API_KEY=sk-xxx \
    --env OPENAI_BASE_URL=https://api.your-provider.com/v1

Quickly install agent frameworks with uv:

abx exec <sandbox-id> -- uv pip install langchain langgraph

Call a Hermes model via the OpenAI-compatible interface:

abx exec <sandbox-id> -- python3 -c "
from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
    model='NousResearch/Hermes-3-Llama-3.1-8B',
    messages=[{'role': 'user', 'content': 'Write a file search tool'}],
    tools=[{
        'type': 'function',
        'function': {
            'name': 'search_files',
            'description': 'Search files',
            'parameters': {'type': 'object', 'properties': {'query': {'type': 'string'}}}
        }
    }]
)
print(response.choices[0].message)
"

Using the Python SDK:

from agent_sandbox import Sandbox

sandbox = Sandbox.create_sync(
    template="hermes-agent",
    env={
        "OPENAI_API_KEY": "sk-xxx",
        "OPENAI_BASE_URL": "https://api.your-provider.com/v1"
    }
)

result = sandbox.commands.run("python3 --version && uv --version")
print(result.stdout)

Configuration

Environment Variables

Variable Description Required
OPENAI_API_KEY LLM provider API key Yes
OPENAI_BASE_URL LLM API base URL (for self-hosted or third-party hosting) No
WORKSPACE Working directory path, defaults to /workspace No

Managing Dependencies with uv

This template ships with uv, a high-performance Python package manager. Using uv instead of pip is recommended:

# Install packages with uv (much faster than pip)
abx exec <sandbox-id> -- uv pip install <package-name>

# Create a project with uv
abx exec <sandbox-id> -- uv init my-agent-project

Notes


中文

NousResearch Hermes 系列模型驱动的 AI Agent 沙箱运行环境,支持工具调用(Tool Calling)和多模态任务。

环境说明

本模板预装以下工具和依赖:

类别 内容
基础镜像 python:3.12-slim
Python Python 3.12 + venv 虚拟环境(位于 /opt/venv)
Node.js Node.js 22.x + npm
Python 包 uv、openai>=1.0、httpx、rich、pyyaml
系统工具 git、curl、xz-utils、build-essential、ripgrep、ffmpeg
资源配置 2 CPU / 4096 MB 内存(建议 8192 MB 带浏览器场景)

安装方式

从本地安装:

abx template install ./hermes-agent --registry-type local

从 GitHub 安装:

abx template install alibaba-agent-sandbox/awesome-templates//hermes-agent

使用示例

创建沙箱实例并传入 LLM 配置:

abx create --template hermes-agent \
    --env OPENAI_API_KEY=sk-xxx \
    --env OPENAI_BASE_URL=https://api.your-provider.com/v1

使用 uv 快速安装 Agent 框架:

abx exec <sandbox-id> -- uv pip install langchain langgraph

通过 OpenAI 兼容接口调用 Hermes 模型:

abx exec <sandbox-id> -- python3 -c "
from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
    model='NousResearch/Hermes-3-Llama-3.1-8B',
    messages=[{'role': 'user', 'content': '编写一个文件搜索工具'}],
    tools=[{
        'type': 'function',
        'function': {
            'name': 'search_files',
            'description': '搜索文件',
            'parameters': {'type': 'object', 'properties': {'query': {'type': 'string'}}}
        }
    }]
)
print(response.choices[0].message)
"

使用 Python SDK:

from agent_sandbox import Sandbox

sandbox = Sandbox.create_sync(
    template="hermes-agent",
    env={
        "OPENAI_API_KEY": "sk-xxx",
        "OPENAI_BASE_URL": "https://api.your-provider.com/v1"
    }
)

result = sandbox.commands.run("python3 --version && uv --version")
print(result.stdout)

配置说明

环境变量

变量名 说明 必填
OPENAI_API_KEY LLM 提供商 API 密钥 是
OPENAI_BASE_URL LLM API 基础 URL(用于自部署或第三方托管) 否
WORKSPACE 工作目录路径,默认 /workspace 否

使用 uv 管理依赖

本模板预装 uv 作为高性能 Python 包管理器,建议使用 uv 替代 pip:

# 使用 uv 安装包(速度远快于 pip)
abx exec <sandbox-id> -- uv pip install <package-name>

# 使用 uv 创建项目
abx exec <sandbox-id> -- uv init my-agent-project

注意事项

Deploy and local e2e

Install and register this template:

abx template install alibaba-agent-sandbox/awesome-templates//hermes-agent

From this directory (build, push, and register):

abx deploy

From the repository root, with agent-sandbox-server and httpx installed:

python3 scripts/run_local_e2e.py

That starts python3 commands.py in this directory and runs e2e_test.py.