본문으로 건너뛰기

도구 및 도구 세트

도구는 에이전트의 기능을 확장하는 기능입니다. 도구는 논리적인 도구 세트로 구성되며 플랫폼별로 활성화하거나 비활성화할 수 있습니다.

사용 가능한 도구

Hermes는 웹 검색, 브라우저 자동화, 터미널 실행, 파일 편집, 메모리, 위임, RL 훈련, 메시지 전달, Home Assistant 등 다양한 내장 도구 레지스트리를 제공합니다.

노트

Honcho 교차 세션 메모리는 내장 도구 세트가 아니라 메모리 제공 플러그인(plugins/memory/honcho/)으로 제공됩니다. 설치 방법은 플러그인을 참조하세요.

상위 카테고리:

카테고리예시설명
web_search, web_extract웹을 검색하고 페이지 내용을 추출하세요.
터미널 및 파일terminal, process, read_file, patch명령을 실행하고 파일을 조작합니다.
브라우저browser_navigate, browser_snapshot, browser_vision텍스트 및 시각 지원을 통한 대화형 브라우저 자동화.
미디어vision_analyze, image_generate, text_to_speech멀티모달 분석 및 생성.
에이전트 오케스트레이션todo, clarify, execute_code, delegate_task계획 수립, 명확화, 코드 실행, 그리고 하위 에이전트 위임.
기억 & 회상memory, session_search지속 메모리 및 세션 검색.
자동화 및 제공cronjob, send_message만들기/목록/업데이트/일시정지/재개/실행/제거 작업이 있는 예약된 작업과 발신 메시지 전달.
통합ha_*, MCP 서버 도구, rl_*홈 어시스턴트, MCP, RL 훈련 및 기타 통합.

권위 있는 코드 기반 레지스트리에 대해서는 내장 도구 참조도구 세트 참조를 참조하십시오.

Nous Tool Gateway

유료 Nous Portal 구독자는 **Tool Gateway**를 통해 웹 검색, 이미지 생성, TTS 및 브라우저 자동화를 사용할 수 있습니다 — 별도의 API 키가 필요 없습니다. 이를 활성화하려면 hermes model를 실행하거나, hermes tools로 개별 도구를 구성할 수 있습니다.

도구 세트 사용

# Use specific toolsets
hermes chat --toolsets "web,terminal"

# See all available tools
hermes tools

# Configure tools per platform (interactive)
hermes tools

일반적인 도구 세트에는 web, search, terminal, file, browser, vision, image_gen, moa, skills, tts, todo, memory, session_search, cronjob, code_execution, delegation, clarify, homeassistant, messaging, spotify, discord, discord_admin, debugging, saferl가 포함됩니다.

전체 세트에 대해서는 도구 모음 참조를 참조하세요. 여기에는 hermes-cli, hermes-telegram과 같은 플랫폼 프리셋과 mcp-<server>와 같은 동적 MCP 도구 모음이 포함됩니다.

터미널 백엔드

터미널 도구는 다양한 환경에서 명령을 실행할 수 있습니다:

백엔드설명사용 사례
local기본값으로 자신의 컴퓨터에서 실행개발, 신뢰할 수 있는 작업
docker격리된 컨테이너보안, 재현성
ssh원격 서버샌드박싱, 에이전트가 자신의 코드에서 벗어나도록 유지
singularityHPC 컨테이너클러스터 컴퓨팅, 뿌리 없는
modal클라우드 실행서버리스, 확장
daytona클라우드 샌드박스 작업 공간지속적인 원격 개발 환경
vercel_sandboxVercel 샌드박스 클라우드 마이크로VM스냅샷 기반 파일 시스템 영속성을 통한 클라우드 실행

구성

# In ~/.hermes/config.yaml
terminal:
backend: local # or: docker, ssh, singularity, modal, daytona, vercel_sandbox
cwd: "." # Working directory
timeout: 180 # Command timeout in seconds

도커 백엔드

terminal:
backend: docker
docker_image: python:3.11-slim

전체 프로세스에서 공유되는 하나의 지속적인 컨테이너. Hermes는 첫 사용 시 단일 장기 실행 컨테이너(docker run -d... sleep 2h)를 시작하고, 모든 터미널, 파일 및 execute_code 호출을 docker exec를 통해 동일한 컨테이너로 라우팅합니다. 작업 디렉터리 변경, 설치된 패키지, 환경 조정, /workspace에 작성된 파일은 Hermes 프로세스의 생애 동안 하나의 도구 호출에서 다음 호출로, /new, /reset, delegate_task 하위 에이전트를 넘어 전달됩니다. 컨테이너는 종료 시 중지되고 제거됩니다.

이는 Docker 백엔드가 명령마다 새 컨테이너가 아니라 지속적인 샌드박스 VM처럼 동작함을 의미합니다. pip install foo을 한 번 설정하면, 세션 내내 유지됩니다. cd /workspace/project을 설정하면, 이후의 ls 호출은 해당 디렉터리를 참조합니다. 전체 라이프사이클 세부 정보와 Hermes 재시작 시 /workspace/root가 유지되는지를 제어하는 container_persistent 플래그는 Configuration → Docker Backend를 참조하세요.

SSH 백엔드

보안을 위해 권장 — 에이전트가 자신의 코드를 수정할 수 없음:

terminal:
backend: ssh
````bash
# Set credentials in ~/.hermes/.env
TERMINAL_SSH_HOST=my-server.example.com
TERMINAL_SSH_USER=myuser
TERMINAL_SSH_KEY=~/.ssh/id_rsa

싱귤래리티/앱타이너

# Pre-build SIF for parallel workers
apptainer build ~/python.sif docker://python:3.11-slim

# Configure
hermes config set terminal.backend singularity
hermes config set terminal.singularity_image ~/python.sif
uv pip install modal
modal setup
hermes config set terminal.backend modal

버셀 샌드박스

pip install 'hermes-agent[vercel]'
hermes config set terminal.backend vercel_sandbox
hermes config set terminal.vercel_runtime node24
``VERCEL_TOKEN`, `VERCEL_PROJECT_ID`, `VERCEL_TEAM_ID` 모두로 인증하십시오. 이 액세스 토큰 설정은 Render, Railway, Docker 및 유사한 호스트에서 배포 및 일반적인 장기 실행 Hermes 프로세스에 대한 지원 경로입니다. 지원되는 런타임은 `node24`, `node22`, `python3.13`이며; Hermes는 원격 작업 공간 루트로 `/vercel/sandbox`를 기본값으로 사용합니다.

일회성 로컬 개발의 경우, Hermes는 짧은 유효 기간의 Vercel OIDC 토큰도 허용합니다:

```bash
VERCEL_OIDC_TOKEN="$(vc project token <project-name>)" hermes chat

연결된 Vercel 프로젝트 디렉토리에서:

VERCEL_OIDC_TOKEN="$(vc project token)" hermes chat
``container_persistent: true`를 사용하여, Hermes는 동일한 작업에 대한 샌드박스 재생성 시 파일 시스템 상태를 보존하기 위해 Vercel 스냅샷을 사용합니다. 여기에는 샌드박스 내 Hermes와 동기화된 자격 증명, 스킬, 캐시 파일이 포함될 수 있습니다. 스냅샷은 활성 프로세스, PID 공간, 동일한 라이브 샌드박스 아이덴티티를 보존하지 않습니다.

백그라운드 터미널 명령은 Hermes의 일반적인 비현지 프로세스 흐름을 사용합니다: spawn, poll, wait, log, kill은 샌드박스가 활성 상태일 때 정상적인 프로세스 도구를 통해 작동하지만, Hermes는 정리 또는 재시작 후에 기본적인 Vercel 분리 프로세스 복구를 제공하지 않습니다.

`container_disk`를 설정하지 않거나 공유 기본값 `51200`로 두십시오; Vercel Sandbox에서는 사용자 지정 디스크 크기 설정이 지원되지 않으며 진단/백엔드 생성이 실패합니다.

### 컨테이너 리소스 \{#container-resources}

모든 컨테이너 백엔드에 대한 CPU, 메모리, 디스크 및 지속성을 구성합니다:

```yaml
terminal:
backend: docker # or singularity, modal, daytona, vercel_sandbox
container_cpu: 1 # CPU cores (default: 1)
container_memory: 5120 # Memory in MB (default: )
container_disk: 51200 # Disk in MB (default: )
container_persistent: true # Persist filesystem across sessions (default: true)
``container_persistent: true`일 때, 설치된 패키지, 파일 및 설정이 세션 간에 유지됩니다.

### 컨테이너 보안 \{#singularityapptainer}

모든 컨테이너 백엔드는 보안 강화와 함께 실행됩니다:

- 읽기 전용 루트 파일 시스템 (Docker)
- 모든 리눅스 권한이 제거됨
- 권한 상승 없음
- PID 제한 (256개 프로세스)
- 완전한 네임스페이스 격리
- 볼륨을 통한 지속적인 작업 공간, 쓰기 가능한 루트 레이어 아님

Docker는 선택적으로 `terminal.docker_forward_env`를 통해 명시적인 환경 허용 목록을 받을 수 있지만, 전달된 변수는 컨테이너 내부의 명령에서 볼 수 있으며 해당 세션에 노출된 것으로 처리해야 합니다.

## 백그라운드 프로세스 관리 \{#modal-serverless-cloud}

백그라운드 프로세스를 시작하고 관리합니다:

```python
terminal(command="pytest -v tests/", background=true)
# Returns: {"session_id": "proc_abc123", "pid": 12345}

# Then manage with the process tool:
process(action="list") # Show all running processes
process(action="poll", session_id="proc_abc123") # Check status
process(action="wait", session_id="proc_abc123") # Block until done
process(action="log", session_id="proc_abc123") # Full output
process(action="kill", session_id="proc_abc123") # Terminate
process(action="write", session_id="proc_abc123", data="y") # Send input

PTY 모드(pty=true)는 Codex 및 Claude Code와 같은 대화형 CLI 도구를 활성화합니다.

수도 지원

명령어에 sudo가 필요하면 비밀번호를 입력하라는 메시지가 표시됩니다(세션 동안 캐시됨). 또는 SUDO_PASSWORD~/.hermes/.env에 설정하세요.

경고

메시징 플랫폼에서 sudo가 실패하면 출력에는 SUDO_PASSWORD~/.hermes/.env에 추가하라는 팁이 포함됩니다.