도구 및 도구 세트
도구는 에이전트의 기능을 확장하는 기능입니다. 도구는 논리적인 도구 세트로 구성되며 플랫폼별로 활성화하거나 비활성화할 수 있습니다.
사용 가능한 도구
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 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, safe 및 rl가 포함됩니다.
전체 세트에 대해서는 도구 모음 참조를 참조하세요. 여기에는 hermes-cli, hermes-telegram과 같은 플랫폼 프리셋과 mcp-<server>와 같은 동적 MCP 도구 모음이 포함됩니다.
터미널 백엔드
터미널 도구는 다양한 환경에서 명령을 실행할 수 있습니다:
| 백엔드 | 설명 | 사용 사례 |
|---|---|---|
local | 기본값으로 자신의 컴퓨터에서 실행 | 개발, 신뢰할 수 있는 작업 |
docker | 격리된 컨테이너 | 보안, 재현성 |
ssh | 원격 서버 | 샌드박싱, 에이전트가 자신의 코드에서 벗어나도록 유지 |
singularity | HPC 컨테이너 | 클러스터 컴퓨팅, 뿌리 없는 |
modal | 클라우드 실행 | 서버리스, 확장 |
daytona | 클라우드 샌드박스 작업 공간 | 지속적인 원격 개발 환경 |
vercel_sandbox | Vercel 샌드박스 클라우드 마이크로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에 추가하라는 팁이 포함됩니다.