Bug Description
I use a Nextcloud skill that includes a bundled node script for interacting with the Nextcloud instance. The skill_view tool returns a skill_dir field which includes the base path of the skill, where the SKILL.md resides.
However, this path is only valid if no sandboxing is active. It always returns /opt/data/skills instead of where the skills are actually mounted read only inside the docker sandbox (/root/.hermes/skills) which confuses the agent and lets him fail his action.
Steps to Reproduce
- Send message "Show me my todays calendar events using the nextcloud skill"
- Agent cannot find bundles scripts, where the Skill.md refers to
- Skill fails
Expected Behavior
The agent searches for the script in skill_dir which points to /root/.hermes/skills/nextcloud.
Actual Behavior
The agent searches for the script in skill_dir which points to /opt/data/skills/nextcloud, which does not exist in the sandbox.
Sometimes, the agents gets that the path does not exist and cannot find the bundled script and sometimes it searches for it and eventually finds it. But is is absolutely not reliable and confusing for the model.
Affected Component
Skills (skill loading, skill hub, skill guard)
Messaging Platform (if gateway-related)
No response
Debug Report
Won't share, as it contains too much information about internal infrastructure. I've read the logs and there is nothing of information in it.
This is the first part of the report:
--- hermes dump ---
version: 0.13.0 (2026.5.7) [(unknown)]
os: Linux 6.8.0-100-generic x86_64
python: 3.13.5
openai_sdk: 2.33.0
profile: default
hermes_home: ~/.
model: kimi-k2.6
provider: ollama-cloud
terminal: docker
api_keys:
openrouter not set
openai not set
anthropic not set
anthropic_token not set
nous not set
google/gemini not set
gemini not set
glm/zai not set
zai not set
kimi not set
minimax not set
deepseek not set
dashscope not set
huggingface not set
nvidia not set
ai_gateway not set
opencode_zen not set
opencode_go not set
kilocode not set
firecrawl set
tavily not set
browserbase not set
fal not set
elevenlabs not set
github not set
features:
toolsets: hermes-cli
mcp_servers: 0
memory_provider: built-in
gateway: stopped (docker (foreground))
platforms: none
cron_jobs: 2 active / 2 total
skills: 96
config_overrides:
agent.max_turns: 150
terminal.backend: docker
compression.threshold: 0.9
display.streaming: True
--- end dump ---
Operating System
Ubuntu 24.04 (Gateway in Docker, Sandbox is Podman-in-Docker)
Python Version
3.13.5
Hermes Version
0.14.0
Additional Logs / Traceback (optional)
Root Cause Analysis (optional)
No response
Proposed Fix (optional)
No response
Are you willing to submit a PR for this?
Bug Description
I use a Nextcloud skill that includes a bundled node script for interacting with the Nextcloud instance. The skill_view tool returns a skill_dir field which includes the base path of the skill, where the SKILL.md resides.
However, this path is only valid if no sandboxing is active. It always returns /opt/data/skills instead of where the skills are actually mounted read only inside the docker sandbox (/root/.hermes/skills) which confuses the agent and lets him fail his action.
Steps to Reproduce
Expected Behavior
The agent searches for the script in
skill_dirwhich points to/root/.hermes/skills/nextcloud.Actual Behavior
The agent searches for the script in
skill_dirwhich points to/opt/data/skills/nextcloud, which does not exist in the sandbox.Sometimes, the agents gets that the path does not exist and cannot find the bundled script and sometimes it searches for it and eventually finds it. But is is absolutely not reliable and confusing for the model.
Affected Component
Skills (skill loading, skill hub, skill guard)
Messaging Platform (if gateway-related)
No response
Debug Report
Operating System
Ubuntu 24.04 (Gateway in Docker, Sandbox is Podman-in-Docker)
Python Version
3.13.5
Hermes Version
0.14.0
Additional Logs / Traceback (optional)
Root Cause Analysis (optional)
No response
Proposed Fix (optional)
No response
Are you willing to submit a PR for this?