The Hermes Agent Docker image (Debian 13 trixie) does not install the python3-venv package, which provides the ensurepip module. Without it, the lazy dependencies installer's fallback path (python -m ensurepip → python -m pip install) always fails, producing a confusing error message.
The preferred install path (Tier 1 via uv pip install) works fine — but if it ever fails for any transient reason (network blip, first-call uv cache init, etc.), the fallback is completely broken.
Hermes automatically installs the required python deps before running the tool and returning the result to the model
--- hermes dump ---
version: 0.15.2 (2026.5.29.2) [77a1650c]
os: Linux 7.0.0-15-generic x86_64
python: 3.13.5
openai_sdk: 2.24.0
profile: default
hermes_home: ~/.
model: deepseek/deepseek-v4-flash
provider: openrouter
terminal: local
api_keys:
openrouter 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
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: holographic
gateway: stopped (s6 (container supervisor))
platforms: telegram, homeassistant
cron_jobs: 0 active / 0 total
skills: 103
config_overrides:
display.streaming: True
--- end dump ---
--- agent.log (last 200 lines) ---
2026-06-01 07:10:01,900 INFO run_agent: OpenAI client closed (stream_request_complete, shared=False, tcp_force_closed=0) thread=Thread-135 (_call):135390550693568 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:10:01,902 INFO [20260601_060219_db8128e3] agent.conversation_loop: API call #42: model=deepseek/deepseek-v4-flash provider=openrouter in=77452 out=688 total=78140 latency=6.9s cache=77184/77452 (100%)
2026-06-01 07:10:02,813 INFO [20260601_060219_db8128e3] agent.tool_executor: tool terminal completed (0.91s, 662 chars)
2026-06-01 07:10:02,884 INFO run_agent: OpenAI client created (chat_completion_stream_request, shared=False) thread=Thread-137 (_call):135390550693568 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:10:08,593 INFO run_agent: OpenAI client closed (stream_request_complete, shared=False, tcp_force_closed=0) thread=Thread-137 (_call):135390550693568 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:10:08,594 INFO [20260601_060219_db8128e3] agent.conversation_loop: API call #43: model=deepseek/deepseek-v4-flash provider=openrouter in=78375 out=574 total=78949 latency=5.8s cache=77952/78375 (99%)
2026-06-01 07:10:08,737 INFO [20260601_060219_db8128e3] agent.tool_executor: tool search_files completed (0.14s, 3273 chars)
2026-06-01 07:10:08,806 INFO run_agent: OpenAI client created (chat_completion_stream_request, shared=False) thread=Thread-140 (_call):135390550693568 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:10:12,595 INFO run_agent: OpenAI client closed (stream_request_complete, shared=False, tcp_force_closed=0) thread=Thread-140 (_call):135390550693568 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:10:12,597 INFO [20260601_060219_db8128e3] agent.conversation_loop: API call #44: model=deepseek/deepseek-v4-flash provider=openrouter in=79958 out=335 total=80293 latency=3.8s cache=78720/79958 (98%)
2026-06-01 07:10:12,688 INFO agent.tool_executor: tool search_files completed (0.08s, 2774 chars)
2026-06-01 07:10:12,700 INFO agent.tool_executor: tool search_files completed (0.09s, 1229 chars)
2026-06-01 07:10:12,768 INFO run_agent: OpenAI client created (chat_completion_stream_request, shared=False) thread=Thread-145 (_call):135390550693568 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:10:18,157 INFO run_agent: OpenAI client closed (stream_request_complete, shared=False, tcp_force_closed=0) thread=Thread-145 (_call):135390550693568 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:10:18,158 INFO [20260601_060219_db8128e3] agent.conversation_loop: API call #45: model=deepseek/deepseek-v4-flash provider=openrouter in=81638 out=198 total=81836 latency=5.4s cache=80000/81638 (98%)
2026-06-01 07:10:18,415 INFO agent.tool_executor: tool read_file completed (0.25s, 2796 chars)
2026-06-01 07:10:18,435 INFO agent.tool_executor: tool read_file completed (0.27s, 1568 chars)
2026-06-01 07:10:18,503 INFO run_agent: OpenAI client created (chat_completion_stream_request, shared=False) thread=Thread-154 (_call):135390550693568 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:10:35,908 INFO run_agent: OpenAI client closed (stream_request_complete, shared=False, tcp_force_closed=0) thread=Thread-154 (_call):135390550693568 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:10:35,909 INFO [20260601_060219_db8128e3] agent.conversation_loop: API call #46: model=deepseek/deepseek-v4-flash provider=openrouter in=83108 out=1704 total=84812 latency=17.4s cache=81536/83108 (98%)
2026-06-01 07:10:36,164 INFO [20260601_060219_db8128e3] agent.conversation_loop: Turn ended: reason=text_response(finish_reason=stop) model=deepseek/deepseek-v4-flash api_calls=10/90 budget=10/90 tool_turns=42 last_msg_role=assistant response_len=1649 session=20260601_060219_db8128e3
2026-06-01 07:10:36,937 INFO gateway.run: Suppressing normal final send for session agent:main:telegram:dm:8650994806: final delivery already confirmed (streamed=True previewed=False content_delivered=True).
2026-06-01 07:10:36,938 INFO gateway.run: response ready: platform=telegram chat=8650994806 time=98.5s api_calls=10 response=1649 chars
2026-06-01 07:11:38,764 INFO gateway.platforms.telegram: [Telegram] Flushing text batch agent:main:telegram:dm:8650994806 (28 chars)
2026-06-01 07:11:38,766 INFO gateway.run: inbound message: platform=telegram user=Shawn chat=8650994806 msg='Yeah go ahead and draft that'
2026-06-01 07:11:39,109 INFO [20260601_060219_db8128e3] agent.conversation_loop: conversation turn: session=20260601_060219_db8128e3 model=deepseek/deepseek-v4-flash provider=openrouter platform=telegram history=108 msg='Yeah go ahead and draft that'
2026-06-01 07:11:39,161 INFO run_agent: OpenAI client created (chat_completion_stream_request, shared=False) thread=Thread-155 (_call):135390550693568 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:11:46,449 INFO run_agent: OpenAI client closed (stream_request_complete, shared=False, tcp_force_closed=0) thread=Thread-155 (_call):135390550693568 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:11:46,450 INFO [20260601_060219_db8128e3] agent.conversation_loop: API call #47: model=deepseek/deepseek-v4-flash provider=openrouter in=84821 out=211 total=85032 latency=7.3s
2026-06-01 07:11:46,469 INFO tools.web_tools: Web search via firecrawl: 'site:github.com/nousresearch/hermes-agent/issues ensurepip python3-venv pip lazy_deps' (limit: 5)
2026-06-01 07:11:46,469 INFO plugins.web.firecrawl.provider: Firecrawl search: 'site:github.com/nousresearch/hermes-agent/issues ensurepip python3-venv pip lazy_deps' (limit=5)
2026-06-01 07:11:46,470 INFO tools.web_tools: Web search via firecrawl: 'site:github.com/nousresearch/hermes-agent/issues firecrawl lazy install' (limit: 5)
2026-06-01 07:11:46,471 INFO plugins.web.firecrawl.provider: Firecrawl search: 'site:github.com/nousresearch/hermes-agent/issues firecrawl lazy install' (limit=5)
2026-06-01 07:11:47,486 INFO plugins.web.firecrawl.provider: Firecrawl: found 5 search results
2026-06-01 07:11:47,487 INFO agent.tool_executor: tool web_search completed (1.03s, 1985 chars)
2026-06-01 07:11:47,511 INFO plugins.web.firecrawl.provider: Firecrawl: found 1 search results
2026-06-01 07:11:47,512 INFO agent.tool_executor: tool web_search completed (1.06s, 441 chars)
2026-06-01 07:11:47,578 INFO run_agent: OpenAI client created (chat_completion_stream_request, shared=False) thread=Thread-156 (_call):135390542300864 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:11:51,155 INFO run_agent: OpenAI client closed (stream_request_complete, shared=False, tcp_force_closed=0) thread=Thread-156 (_call):135390542300864 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:11:51,156 INFO [20260601_060219_db8128e3] agent.conversation_loop: API call #48: model=deepseek/deepseek-v4-flash provider=openrouter in=85768 out=193 total=85961 latency=3.6s cache=84864/85768 (99%)
2026-06-01 07:11:51,161 INFO [20260601_060219_db8128e3] tools.web_tools: Extracting content from 2 URL(s)
2026-06-01 07:11:51,184 INFO [20260601_060219_db8128e3] tools.web_tools: Web extract via firecrawl: 2 URL(s)
2026-06-01 07:11:51,185 INFO [20260601_060219_db8128e3] plugins.web.firecrawl.provider: Firecrawl scraping: https://github.com/NousResearch/hermes-agent/issues/2648
2026-06-01 07:11:54,514 INFO [20260601_060219_db8128e3] plugins.web.firecrawl.provider: Firecrawl scraping: https://github.com/NousResearch/hermes-agent/issues/24967
2026-06-01 07:11:56,976 INFO [20260601_060219_db8128e3] tools.web_tools: Extracted content from 2 pages
2026-06-01 07:11:57,048 INFO [20260601_060219_db8128e3] tools.web_tools: Processing extracted content with LLM (parallel)...
2026-06-01 07:11:57,050 INFO [20260601_060219_db8128e3] tools.web_tools: Processing content with LLM (22093 characters)
2026-06-01 07:11:57,093 INFO [20260601_060219_db8128e3] tools.web_tools: Processing content with LLM (26256 characters)
2026-06-01 07:12:03,826 INFO [20260601_060219_db8128e3] tools.web_tools: Content processed: 26256 -> 3850 chars (14.7%)
2026-06-01 07:12:14,375 INFO [20260601_060219_db8128e3] tools.web_tools: Content processed: 22093 -> 4380 chars (19.8%)
2026-06-01 07:12:14,377 INFO [20260601_060219_db8128e3] tools.web_tools: https://github.com/NousResearch/hermes-agent/issues/2648 (processed)
2026-06-01 07:12:14,378 INFO [20260601_060219_db8128e3] tools.web_tools: https://github.com/NousResearch/hermes-agent/issues/24967 (processed)
2026-06-01 07:12:14,380 INFO [20260601_060219_db8128e3] agent.tool_executor: tool web_extract completed (23.22s, 9032 chars)
2026-06-01 07:12:14,445 INFO run_agent: OpenAI client created (chat_completion_stream_request, shared=False) thread=Thread-157 (_call):135390238336704 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:12:22,935 INFO run_agent: OpenAI client closed (stream_request_complete, shared=False, tcp_force_closed=0) thread=Thread-157 (_call):135390238336704 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:12:22,936 INFO [20260601_060219_db8128e3] agent.conversation_loop: API call #49: model=deepseek/deepseek-v4-flash provider=openrouter in=88721 out=276 total=88997 latency=8.5s cache=8064/88721 (9%)
2026-06-01 07:12:23,160 INFO [20260601_060219_db8128e3] agent.tool_executor: tool terminal completed (0.22s, 72 chars)
2026-06-01 07:12:23,242 INFO run_agent: OpenAI client created (chat_completion_stream_request, shared=False) thread=Thread-159 (_call):135390238336704 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:12:42,824 INFO run_agent: OpenAI client closed (stream_request_complete, shared=False, tcp_force_closed=0) thread=Thread-159 (_call):135390238336704 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:12:42,825 INFO [20260601_060219_db8128e3] agent.conversation_loop: API call #50: model=deepseek/deepseek-v4-flash provider=openrouter in=89033 out=218 total=89251 latency=19.6s cache=88704/89033 (100%)
2026-06-01 07:12:43,003 INFO [20260601_060219_db8128e3] agent.tool_executor: tool terminal completed (0.17s, 91 chars)
2026-06-01 07:12:43,078 INFO run_agent: OpenAI client created (chat_completion_stream_request, shared=False) thread=Thread-161 (_call):135390238336704 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:12:52,014 INFO run_agent: OpenAI client closed (stream_request_complete, shared=False, tcp_force_closed=0) thread=Thread-161 (_call):135390238336704 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:12:52,016 INFO [20260601_060219_db8128e3] agent.conversation_loop: API call #51: model=deepseek/deepseek-v4-flash provider=openrouter in=89296 out=1168 total=90464 latency=9.0s cache=88960/89296 (100%)
2026-06-01 07:12:52,071 INFO [20260601_060219_db8128e3] agent.conversation_loop: Turn ended: reason=text_response(finish_reason=stop) model=deepseek/deepseek-v4-flash api_calls=5/90 budget=5/90 tool_turns=46 last_msg_role=assistant response_len=3867 session=20260601_060219_db8128e3
2026-06-01 07:12:52,157 INFO run_agent: OpenAI client created (agent_init, shared=True) thread=bg-review:135390238336704 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:12:52,306 INFO [20260601_060219_db8128e3] agent.conversation_loop: conversation turn: session=20260601_060219_db8128e3 model=deepseek/deepseek-v4-flash provider=openrouter platform=telegram history=119 msg='Review the conversation above and update the skill library. Be ACTIVE — most ses...'
2026-06-01 07:12:52,375 INFO run_agent: OpenAI client created (chat_completion_stream_request, shared=False) thread=Thread-162 (_call):135390246729408 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:12:52,906 INFO gateway.run: Suppressing normal final send for session agent:main:telegram:dm:8650994806: final delivery already confirmed (streamed=True previewed=False content_delivered=True).
2026-06-01 07:12:52,907 INFO gateway.run: response ready: platform=telegram chat=8650994806 time=74.1s api_calls=5 response=3867 chars
2026-06-01 07:13:19,738 INFO run_agent: OpenAI client closed (stream_request_complete, shared=False, tcp_force_closed=0) thread=Thread-162 (_call):135390246729408 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:13:19,739 INFO [20260601_060219_db8128e3] agent.conversation_loop: API call #1: model=deepseek/deepseek-v4-flash provider=openrouter in=90992 out=1813 total=92805 latency=27.4s
2026-06-01 07:13:19,811 INFO [20260601_060219_db8128e3] agent.tool_executor: tool skills_list completed (0.07s, 1996 chars)
2026-06-01 07:13:19,833 INFO run_agent: OpenAI client created (chat_completion_stream_request, shared=False) thread=Thread-163 (_call):135390246729408 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:13:26,833 INFO run_agent: OpenAI client closed (stream_request_complete, shared=False, tcp_force_closed=0) thread=Thread-163 (_call):135390246729408 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:13:26,834 INFO [20260601_060219_db8128e3] agent.conversation_loop: API call #2: model=deepseek/deepseek-v4-flash provider=openrouter in=93279 out=114 total=93393 latency=7.0s
2026-06-01 07:13:26,891 INFO [20260601_060219_db8128e3] agent.tool_executor: tool skill_view completed (0.05s, 8133 chars)
2026-06-01 07:13:26,960 INFO run_agent: OpenAI client created (chat_completion_stream_request, shared=False) thread=Thread-164 (_call):135390246729408 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:13:35,785 INFO run_agent: OpenAI client closed (stream_request_complete, shared=False, tcp_force_closed=0) thread=Thread-164 (_call):135390246729408 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:13:35,786 INFO [20260601_060219_db8128e3] agent.conversation_loop: API call #3: model=deepseek/deepseek-v4-flash provider=openrouter in=95726 out=435 total=96161 latency=8.9s
2026-06-01 07:13:35,847 INFO [20260601_060219_db8128e3] agent.tool_executor: tool skill_view completed (0.06s, 3452 chars)
2026-06-01 07:13:35,911 INFO run_agent: OpenAI client created (chat_completion_stream_request, shared=False) thread=Thread-165 (_call):135390246729408 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:13:39,439 INFO gateway.memory_monitor: [MEMORY] rss=274MB gc=(1231, 9, 3) threads=15 uptime=4500s
2026-06-01 07:14:48,362 INFO run_agent: OpenAI client closed (stream_request_complete, shared=False, tcp_force_closed=0) thread=Thread-165 (_call):135390246729408 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:14:48,364 INFO [20260601_060219_db8128e3] agent.conversation_loop: API call #4: model=deepseek/deepseek-v4-flash provider=openrouter in=72521 out=3075 total=75596 latency=72.5s cache=512/72521 (1%)
2026-06-01 07:14:48,406 INFO [20260601_060219_db8128e3] agent.tool_executor: tool skill_manage completed (0.04s, 109 chars)
2026-06-01 07:14:48,460 INFO run_agent: OpenAI client created (chat_completion_stream_request, shared=False) thread=Thread-166 (_call):135390246729408 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:15:11,825 INFO run_agent: OpenAI client closed (stream_request_complete, shared=False, tcp_force_closed=0) thread=Thread-166 (_call):135390246729408 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:15:11,827 INFO [20260601_060219_db8128e3] agent.conversation_loop: API call #5: model=deepseek/deepseek-v4-flash provider=openrouter in=74039 out=1047 total=75086 latency=23.4s
2026-06-01 07:15:11,857 INFO [20260601_060219_db8128e3] agent.tool_executor: tool skill_manage completed (0.03s, 261 chars)
2026-06-01 07:15:11,951 INFO run_agent: OpenAI client created (chat_completion_stream_request, shared=False) thread=Thread-167 (_call):135390246729408 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:15:23,675 INFO run_agent: OpenAI client closed (stream_request_complete, shared=False, tcp_force_closed=0) thread=Thread-167 (_call):135390246729408 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:15:23,676 INFO [20260601_060219_db8128e3] agent.conversation_loop: API call #6: model=deepseek/deepseek-v4-flash provider=openrouter in=75128 out=360 total=75488 latency=11.8s cache=1280/75128 (2%)
2026-06-01 07:15:23,698 INFO [20260601_060219_db8128e3] agent.tool_executor: tool skill_manage completed (0.02s, 109 chars)
2026-06-01 07:15:23,748 INFO run_agent: OpenAI client created (chat_completion_stream_request, shared=False) thread=Thread-168 (_call):135390246729408 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:15:32,064 INFO run_agent: OpenAI client closed (stream_request_complete, shared=False, tcp_force_closed=0) thread=Thread-168 (_call):135390246729408 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:15:32,065 INFO [20260601_060219_db8128e3] agent.conversation_loop: API call #7: model=deepseek/deepseek-v4-flash provider=openrouter in=75488 out=79 total=75567 latency=8.3s
2026-06-01 07:15:32,115 INFO [20260601_060219_db8128e3] agent.tool_executor: tool skill_view completed (0.05s, 12030 chars)
2026-06-01 07:15:32,185 INFO run_agent: OpenAI client created (chat_completion_stream_request, shared=False) thread=Thread-169 (_call):135390246729408 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:15:46,237 INFO run_agent: OpenAI client closed (stream_request_complete, shared=False, tcp_force_closed=0) thread=Thread-169 (_call):135390246729408 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:15:46,238 INFO [20260601_060219_db8128e3] agent.conversation_loop: API call #8: model=deepseek/deepseek-v4-flash provider=openrouter in=79007 out=745 total=79752 latency=14.1s cache=75264/79007 (95%)
2026-06-01 07:15:46,244 INFO [20260601_060219_db8128e3] agent.conversation_loop: Turn ended: reason=text_response(finish_reason=stop) model=deepseek/deepseek-v4-flash api_calls=8/16 budget=8/16 tool_turns=53 last_msg_role=assistant response_len=1291 session=20260601_060219_db8128e3
2026-06-01 07:15:46,248 INFO [20260601_060219_db8128e3] run_agent: OpenAI client closed (agent_close, shared=True, tcp_force_closed=0) thread=bg-review:135390238336704 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 07:17:56,607 INFO tools.terminal_tool: Cleaned up inactive environment for task: default
2026-06-01 07:18:39,440 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(657, 10, 3) threads=13 uptime=4800s
2026-06-01 07:23:39,441 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(1533, 10, 3) threads=13 uptime=5100s
2026-06-01 07:28:39,442 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(602, 11, 3) threads=13 uptime=5400s
2026-06-01 07:33:39,442 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(1493, 11, 3) threads=13 uptime=5700s
2026-06-01 07:38:39,443 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(855, 0, 4) threads=13 uptime=6000s
2026-06-01 07:43:39,444 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(1680, 0, 4) threads=13 uptime=6300s
2026-06-01 07:48:39,453 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(810, 1, 4) threads=13 uptime=6600s
2026-06-01 07:53:39,454 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(1701, 1, 4) threads=13 uptime=6900s
2026-06-01 07:58:39,455 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(789, 2, 4) threads=13 uptime=7200s
2026-06-01 08:03:39,456 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(1715, 2, 4) threads=13 uptime=7500s
2026-06-01 08:08:39,456 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(623, 3, 4) threads=13 uptime=7800s
2026-06-01 08:13:39,457 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(1447, 3, 4) threads=13 uptime=8100s
2026-06-01 08:14:53,135 INFO gateway.run: Agent cache idle-TTL evict: session=agent:main:telegram:dm:8650994806 (idle=3721s)
2026-06-01 08:14:53,137 INFO run_agent: OpenAI client closed (cache_evict, shared=True, tcp_force_closed=0) thread=agent-cache-idle-agent:main:telegram:dm:8:135390238336704 provider=openrouter base_url=https://openrouter.ai/api/v1 model=deepseek/deepseek-v4-flash
2026-06-01 08:14:53,137 INFO gateway.run: Agent cache idle sweep: evicted 1 agent(s)
2026-06-01 08:18:39,458 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(629, 4, 4) threads=13 uptime=8400s
2026-06-01 08:23:39,459 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(1495, 4, 4) threads=13 uptime=8700s
2026-06-01 08:28:39,460 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(538, 5, 4) threads=13 uptime=9000s
2026-06-01 08:33:39,461 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(1404, 5, 4) threads=13 uptime=9300s
2026-06-01 08:38:39,461 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(569, 6, 4) threads=13 uptime=9600s
2026-06-01 08:43:39,462 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(1368, 6, 4) threads=13 uptime=9900s
2026-06-01 08:48:39,463 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(539, 7, 4) threads=13 uptime=10200s
2026-06-01 08:53:39,464 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(1431, 7, 4) threads=13 uptime=10500s
2026-06-01 08:58:39,464 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(541, 8, 4) threads=13 uptime=10800s
2026-06-01 09:03:39,465 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(1467, 8, 4) threads=13 uptime=11100s
2026-06-01 09:08:39,466 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(593, 9, 4) threads=13 uptime=11400s
2026-06-01 09:13:39,467 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(1418, 9, 4) threads=13 uptime=11700s
2026-06-01 09:18:39,468 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(572, 10, 4) threads=13 uptime=12000s
2026-06-01 09:23:39,468 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(1463, 10, 4) threads=13 uptime=12300s
2026-06-01 09:28:39,469 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(450, 11, 4) threads=13 uptime=12600s
2026-06-01 09:33:39,470 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(1340, 11, 4) threads=13 uptime=12900s
2026-06-01 09:38:39,470 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(789, 0, 5) threads=13 uptime=13200s
2026-06-01 09:43:39,471 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(1589, 0, 5) threads=13 uptime=13500s
2026-06-01 09:48:39,472 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(745, 1, 5) threads=13 uptime=13800s
2026-06-01 09:53:39,472 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(106, 2, 5) threads=13 uptime=14100s
2026-06-01 09:58:39,473 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(1132, 2, 5) threads=13 uptime=14400s
2026-06-01 10:03:39,474 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(323, 3, 5) threads=13 uptime=14700s
2026-06-01 10:08:39,475 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(1214, 3, 5) threads=13 uptime=15000s
2026-06-01 10:13:39,475 INFO gateway.memory_monitor: [MEMORY] rss=279MB gc=(278, 4, 5) threads=13 uptime=15300s
2026-06-01 10:18:39,476 INFO gateway.memory_monitor: [MEMORY] rss=279MB gc=(1370, 4, 5) threads=13 uptime=15600s
2026-06-01 10:23:39,477 INFO gateway.memory_monitor: [MEMORY] rss=279MB gc=(326, 5, 5) threads=13 uptime=15900s
2026-06-01 10:28:39,478 INFO gateway.memory_monitor: [MEMORY] rss=279MB gc=(1147, 5, 5) threads=13 uptime=16200s
2026-06-01 10:33:39,478 INFO gateway.memory_monitor: [MEMORY] rss=279MB gc=(293, 6, 5) threads=13 uptime=16500s
2026-06-01 10:38:39,479 INFO gateway.memory_monitor: [MEMORY] rss=279MB gc=(1188, 6, 5) threads=13 uptime=16800s
2026-06-01 10:43:39,480 INFO gateway.memory_monitor: [MEMORY] rss=279MB gc=(106, 7, 5) threads=13 uptime=17100s
2026-06-01 10:48:39,480 INFO gateway.memory_monitor: [MEMORY] rss=279MB gc=(963, 7, 5) threads=13 uptime=17400s
2026-06-01 10:53:39,481 INFO gateway.memory_monitor: [MEMORY] rss=279MB gc=(104, 8, 5) threads=13 uptime=17700s
2026-06-01 10:58:39,481 INFO gateway.memory_monitor: [MEMORY] rss=279MB gc=(1042, 8, 5) threads=13 uptime=18000s
2026-06-01 11:03:39,482 INFO gateway.memory_monitor: [MEMORY] rss=279MB gc=(1968, 8, 5) threads=13 uptime=18300s
2026-06-01 11:08:39,483 INFO gateway.memory_monitor: [MEMORY] rss=279MB gc=(836, 9, 5) threads=13 uptime=18600s
2026-06-01 11:13:39,484 INFO gateway.memory_monitor: [MEMORY] rss=279MB gc=(1927, 9, 5) threads=13 uptime=18900s
2026-06-01 11:18:39,485 INFO gateway.memory_monitor: [MEMORY] rss=279MB gc=(1042, 10, 5) threads=13 uptime=19200s
2026-06-01 11:23:39,486 INFO gateway.memory_monitor: [MEMORY] rss=279MB gc=(1866, 10, 5) threads=13 uptime=19500s
2026-06-01 11:28:39,486 INFO gateway.memory_monitor: [MEMORY] rss=279MB gc=(843, 11, 5) threads=13 uptime=19800s
2026-06-01 11:33:39,487 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(231, 0, 6) threads=13 uptime=20100s
2026-06-01 11:38:39,488 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(1055, 0, 6) threads=13 uptime=20400s
2026-06-01 11:43:39,488 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(1921, 0, 6) threads=13 uptime=20700s
2026-06-01 11:48:39,489 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(899, 1, 6) threads=13 uptime=21000s
2026-06-01 11:53:39,490 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(1900, 1, 6) threads=13 uptime=21300s
2026-06-01 11:58:39,491 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(1009, 2, 6) threads=13 uptime=21600s
2026-06-01 12:03:39,491 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(201, 3, 6) threads=13 uptime=21900s
2026-06-01 12:08:39,492 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(1026, 3, 6) threads=13 uptime=22200s
2026-06-01 12:13:39,493 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(387, 4, 6) threads=13 uptime=22500s
2026-06-01 12:18:39,493 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(1278, 4, 6) threads=13 uptime=22800s
2026-06-01 12:23:39,494 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(168, 5, 6) threads=13 uptime=23100s
2026-06-01 12:28:39,495 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(1025, 5, 6) threads=13 uptime=23400s
2026-06-01 12:33:39,496 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(197, 6, 6) threads=13 uptime=23700s
2026-06-01 12:38:39,496 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(996, 6, 6) threads=13 uptime=24000s
2026-06-01 12:43:39,497 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(1886, 6, 6) threads=13 uptime=24300s
2026-06-01 12:48:39,498 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(839, 7, 6) threads=13 uptime=24600s
2026-06-01 12:53:39,498 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(1865, 7, 6) threads=13 uptime=24900s
2026-06-01 12:58:39,499 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(917, 8, 6) threads=13 uptime=25200s
2026-06-01 13:03:39,499 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(1844, 8, 6) threads=13 uptime=25500s
2026-06-01 13:08:39,500 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(713, 9, 6) threads=13 uptime=25800s
2026-06-01 13:13:39,501 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(1804, 9, 6) threads=13 uptime=26100s
2026-06-01 13:18:39,502 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(918, 10, 6) threads=13 uptime=26400s
2026-06-01 13:23:39,502 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(1742, 10, 6) threads=13 uptime=26700s
2026-06-01 13:28:39,502 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(775, 11, 6) threads=13 uptime=27000s
2026-06-01 13:33:39,503 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(136, 0, 7) threads=13 uptime=27300s
2026-06-01 13:38:39,504 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(960, 0, 7) threads=13 uptime=27600s
2026-06-01 13:40:54,515 INFO gateway.platforms.homeassistant: [Homeassistant] Reconnecting in 5s...
2026-06-01 13:40:59,564 WARNING gateway.platforms.homeassistant: [Homeassistant] Reconnection failed: 502, message='Invalid response status', url='wss://hass.wn.zone/api/websocket'
2026-06-01 13:40:59,565 INFO gateway.platforms.homeassistant: [Homeassistant] Reconnecting in 10s...
2026-06-01 13:41:09,603 WARNING gateway.platforms.homeassistant: [Homeassistant] Reconnection failed: 502, message='Invalid response status', url='wss://hass.wn.zone/api/websocket'
2026-06-01 13:41:09,604 INFO gateway.platforms.homeassistant: [Homeassistant] Reconnecting in 30s...
2026-06-01 13:41:39,642 INFO gateway.platforms.homeassistant: [Homeassistant] Reconnected
2026-06-01 13:43:39,505 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(1834, 0, 7) threads=13 uptime=27900s
2026-06-01 13:46:51,444 INFO gateway.platforms.homeassistant: [Homeassistant] Reconnecting in 5s...
2026-06-01 13:46:56,502 WARNING gateway.platforms.homeassistant: [Homeassistant] Reconnection failed: 502, message='Invalid response status', url='wss://hass.wn.zone/api/websocket'
2026-06-01 13:46:56,503 INFO gateway.platforms.homeassistant: [Homeassistant] Reconnecting in 10s...
2026-06-01 13:47:06,548 WARNING gateway.platforms.homeassistant: [Homeassistant] Reconnection failed: 502, message='Invalid response status', url='wss://hass.wn.zone/api/websocket'
2026-06-01 13:47:06,548 INFO gateway.platforms.homeassistant: [Homeassistant] Reconnecting in 30s...
2026-06-01 13:47:36,665 INFO gateway.platforms.homeassistant: [Homeassistant] Reconnected
2026-06-01 13:48:39,506 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(813, 1, 7) threads=13 uptime=28200s
2026-06-01 13:53:39,506 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(1814, 1, 7) threads=13 uptime=28500s
2026-06-01 13:58:39,507 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(857, 2, 7) threads=13 uptime=28800s
--- errors.log (last 100 lines) ---
2026-06-01 04:45:57,458 WARNING [20260601_025151_dbf63dff] agent.tool_executor: Tool web_search returned error (0.09s): {"error": "Error searching web: Feature 'search.firecrawl' unavailable: pip install failed: pip not available and ensurepip failed: Command '['/opt/hermes/.venv/bin/python3', '-m', 'ensurepip', '--upg
2026-06-01 04:48:07,963 WARNING [20260601_025151_dbf63dff] agent.tool_executor: Tool terminal returned error (0.20s): {"output": "=== execvp source ===\nTraceback (most recent call last):\n File \"<string>\", line 6, in <module>\n print(inspect.getsource(os.execvp))\n ~~~~~~~~~~~~~~~~~^^^^^^^^^^^\n File
2026-06-01 04:51:19,065 WARNING [20260601_025151_dbf63dff] agent.tool_executor: Tool terminal returned error (0.26s): {"output": "Checks ``TERMUX_VERSION`` (set by Termux) or the Termux-specific\n return bool(os.getenv(\"TERMUX_VERSION\") or \"com.termux/files/usr\" in prefix)\n---\nunknown\n---", "exit_code": 1,
2026-06-01 04:51:20,177 WARNING [20260601_025151_dbf63dff] agent.tool_executor: Tool terminal returned error (0.11s): {"output": "", "exit_code": 1, "error": null}
2026-06-01 04:56:50,331 WARNING [20260601_025151_dbf63dff] agent.tool_executor: Tool terminal returned error (0.25s): {"output": "Traceback (most recent call last):\n File \"<string>\", line 3, in <module>\n print(inspect.getsource(os.get_exec_path))\n ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^\n File \"/usr/l
2026-06-01 05:18:13,929 WARNING hermes.lint.lsp: lsp[pyright] server unavailable: pyright not found (install via `hermes lsp install <id>` or set lsp.servers.<id>.command)
2026-06-01 05:23:10,119 WARNING [20260601_025151_dbf63dff] agent.tool_executor: Tool terminal returned error (60.21s): {"output": "/usr/bin/bash: command substitution: line 26: syntax error near unexpected token `\"sleep\",'\n/usr/bin/bash: command substitution: line 26: `os.execvp(\"sleep\", [\"sleep\", \"infinity\"]
2026-06-01 05:24:54,017 WARNING [20260601_025151_dbf63dff] agent.tool_executor: Tool terminal returned error (1.40s): {"output": "", "exit_code": -1, "error": "BLOCKED by smart approval: Security scan — [HIGH] GitHub Fine-Grained PAT detected: A credential matching a known provider pattern was found in the input. Cre
2026-06-01 05:25:47,889 WARNING [20260601_025151_dbf63dff] agent.tool_executor: Tool terminal returned error (30.45s): {"output": "remote: Repository not found.\nfatal: repository 'https://github.com/karmeleon/hermes-agent.git/' not found", "exit_code": 128, "error": null, "approval": "Command required approval (Secur
2026-06-01 05:26:40,010 WARNING [20260601_025151_dbf63dff] agent.tool_executor: Tool terminal returned error (3.28s): {"output": "error: remote fork already exists.", "exit_code": 3, "error": null, "approval": "Command was flagged (Security scan — [HIGH] GitHub Fine-Grained PAT detected: A credential matching a known
2026-06-01 05:26:47,164 WARNING [20260601_025151_dbf63dff] agent.tool_executor: Tool terminal returned error (0.89s): {"output": "remote: Permission to karmeleon/hermes-agent.git denied to karmeleon.\nfatal: unable to access 'https://github.com/karmeleon/hermes-agent.git/': The requested URL returned error: 403", "ex
2026-06-01 05:27:02,231 WARNING [20260601_025151_dbf63dff] agent.tool_executor: Tool terminal returned error (0.74s): {"output": "remote: Permission to karmeleon/hermes-agent.git denied to karmeleon.\nfatal: unable to access 'https://github.com/karmeleon/hermes-agent.git/': The requested URL returned error: 403", "ex
2026-06-01 05:28:03,049 WARNING [20260601_025151_dbf63dff] agent.tool_executor: Tool terminal returned error (0.72s): {"output": "remote: Permission to karmeleon/hermes-agent.git denied to karmeleon.\nfatal: unable to access 'https://github.com/karmeleon/hermes-agent.git/': The requested URL returned error: 403", "ex
2026-06-01 05:28:29,376 WARNING [20260601_025151_dbf63dff] agent.tool_executor: Tool terminal returned error (10.07s): {"output": "remote: Invalid username or token. Password authentication is not supported for Git operations.\nfatal: Authentication failed for 'https://github.com/karmeleon/hermes-agent.git/'", "exit_c
2026-06-01 05:30:03,348 WARNING [20260601_025151_dbf63dff] agent.tool_executor: Tool skill_manage returned error (0.01s): {"success": false, "error": "File must be under one of: assets, references, scripts, templates. Got: 'SKILL.md'"}
2026-06-01 05:45:42,501 WARNING gateway.run: Shutdown context: signal=SIGTERM under_systemd=yes parent_pid=1 parent_name=tini loadavg_1m=1.13 parent_cmdline='/usr/bin/tini -g -- /opt/hermes/docker/entrypoint.sh gateway run'
2026-06-01 05:45:52,050 WARNING gateway.run: Secret redaction: DISABLED (HERMES_REDACT_SECRETS=*** API keys and tokens may appear verbatim in chat output, session JSONs, and logs. Set security.redact_secrets: true in config.yaml to re-enable.
2026-06-01 05:45:54,840 WARNING gateway.platforms.homeassistant: [Homeassistant] No watch_domains, watch_entities, or watch_all configured. All state_changed events will be dropped. Configure filters in your HA platform config to receive events.
2026-06-01 05:45:54,986 ERROR gateway.platforms.api_server: [Api_Server] Refusing to start: API_SERVER_KEY is required for the API server, including loopback-only binds on 127.0.0.1.
2026-06-01 05:45:54,986 WARNING gateway.run: ✗ api_server failed to connect
2026-06-01 05:46:26,029 ERROR gateway.platforms.api_server: [Api_Server] Refusing to start: API_SERVER_KEY is required for the API server, including loopback-only binds on 127.0.0.1.
2026-06-01 05:46:44,247 WARNING gateway.run: Shutdown context: signal=SIGTERM under_systemd=yes parent_pid=1 parent_name=s6-svscan loadavg_1m=1.26 parent_cmdline='/package/admin/s6/command/s6-svscan -d4 -- /run/service'
2026-06-01 05:46:53,430 WARNING gateway.run: Secret redaction: DISABLED (HERMES_REDACT_SECRETS=*** API keys and tokens may appear verbatim in chat output, session JSONs, and logs. Set security.redact_secrets: true in config.yaml to re-enable.
2026-06-01 05:46:55,822 WARNING gateway.platforms.homeassistant: [Homeassistant] No watch_domains, watch_entities, or watch_all configured. All state_changed events will be dropped. Configure filters in your HA platform config to receive events.
2026-06-01 05:46:55,912 ERROR gateway.platforms.api_server: [Api_Server] Refusing to start: API_SERVER_KEY is required for the API server, including loopback-only binds on 127.0.0.1.
2026-06-01 05:46:55,912 WARNING gateway.run: ✗ api_server failed to connect
2026-06-01 05:47:26,971 ERROR gateway.platforms.api_server: [Api_Server] Refusing to start: API_SERVER_KEY is required for the API server, including loopback-only binds on 127.0.0.1.
2026-06-01 05:48:27,032 ERROR gateway.platforms.api_server: [Api_Server] Refusing to start: API_SERVER_KEY is required for the API server, including loopback-only binds on 127.0.0.1.
2026-06-01 05:49:34,957 WARNING gateway.run: Shutdown context: signal=SIGTERM under_systemd=yes parent_pid=1 parent_name=s6-svscan loadavg_1m=1.29 parent_cmdline='/package/admin/s6/command/s6-svscan -d4 -- /run/service'
2026-06-01 05:49:45,012 WARNING gateway.run: Secret redaction: DISABLED (HERMES_REDACT_SECRETS=*** API keys and tokens may appear verbatim in chat output, session JSONs, and logs. Set security.redact_secrets: true in config.yaml to re-enable.
2026-06-01 05:49:47,465 WARNING gateway.platforms.homeassistant: [Homeassistant] No watch_domains, watch_entities, or watch_all configured. All state_changed events will be dropped. Configure filters in your HA platform config to receive events.
2026-06-01 05:49:47,561 ERROR gateway.platforms.api_server: [Api_Server] Refusing to start: API_SERVER_KEY is required for the API server, including loopback-only binds on 127.0.0.1.
2026-06-01 05:49:47,561 WARNING gateway.run: ✗ api_server failed to connect
2026-06-01 05:50:18,616 ERROR gateway.platforms.api_server: [Api_Server] Refusing to start: API_SERVER_KEY is required for the API server, including loopback-only binds on 127.0.0.1.
2026-06-01 05:51:18,685 ERROR gateway.platforms.api_server: [Api_Server] Refusing to start: API_SERVER_KEY is required for the API server, including loopback-only binds on 127.0.0.1.
2026-06-01 05:53:19,405 ERROR gateway.platforms.api_server: [Api_Server] Refusing to start: API_SERVER_KEY is required for the API server, including loopback-only binds on 127.0.0.1.
2026-06-01 05:53:57,579 WARNING gateway.run: Shutdown context: signal=SIGTERM under_systemd=yes parent_pid=1 parent_name=s6-svscan loadavg_1m=1.22 parent_cmdline='/package/admin/s6/command/s6-svscan -d4 -- /run/service'
2026-06-01 05:54:04,977 WARNING hermes_cli.web_server: Binding to 0.0.0.0 with --insecure — the dashboard has no robust authentication. Only use on trusted networks.
2026-06-01 05:54:07,568 WARNING gateway.run: Secret redaction: DISABLED (HERMES_REDACT_SECRETS=*** API keys and tokens may appear verbatim in chat output, session JSONs, and logs. Set security.redact_secrets: true in config.yaml to re-enable.
2026-06-01 05:54:10,278 WARNING gateway.platforms.homeassistant: [Homeassistant] No watch_domains, watch_entities, or watch_all configured. All state_changed events will be dropped. Configure filters in your HA platform config to receive events.
2026-06-01 05:54:10,424 ERROR gateway.platforms.api_server: [Api_Server] Refusing to start: API_SERVER_KEY is required for the API server, including loopback-only binds on 127.0.0.1.
2026-06-01 05:54:10,425 WARNING gateway.run: ✗ api_server failed to connect
2026-06-01 05:54:41,478 ERROR gateway.platforms.api_server: [Api_Server] Refusing to start: API_SERVER_KEY is required for the API server, including loopback-only binds on 127.0.0.1.
2026-06-01 05:55:41,559 ERROR gateway.platforms.api_server: [Api_Server] Refusing to start: API_SERVER_KEY is required for the API server, including loopback-only binds on 127.0.0.1.
2026-06-01 05:57:41,702 ERROR gateway.platforms.api_server: [Api_Server] Refusing to start: API_SERVER_KEY is required for the API server, including loopback-only binds on 127.0.0.1.
2026-06-01 05:58:29,952 WARNING gateway.run: Shutdown context: signal=SIGTERM under_systemd=yes parent_pid=1 parent_name=s6-svscan loadavg_1m=0.83 parent_cmdline='/package/admin/s6/command/s6-svscan -d4 -- /run/service'
2026-06-01 05:58:37,384 WARNING hermes_cli.web_server: Binding to 0.0.0.0 with --insecure — the dashboard has no robust authentication. Only use on trusted networks.
2026-06-01 05:58:39,613 WARNING gateway.run: Secret redaction: DISABLED (HERMES_REDACT_SECRETS=*** API keys and tokens may appear verbatim in chat output, session JSONs, and logs. Set security.redact_secrets: true in config.yaml to re-enable.
2026-06-01 05:58:42,269 WARNING gateway.platforms.homeassistant: [Homeassistant] No watch_domains, watch_entities, or watch_all configured. All state_changed events will be dropped. Configure filters in your HA platform config to receive events.
2026-06-01 05:58:42,442 ERROR gateway.platforms.api_server: [Api_Server] Refusing to start: API_SERVER_KEY is required for the API server, including loopback-only binds on 127.0.0.1.
2026-06-01 05:58:42,442 WARNING gateway.run: ✗ api_server failed to connect
2026-06-01 05:59:13,509 ERROR gateway.platforms.api_server: [Api_Server] Refusing to start: API_SERVER_KEY is required for the API server, including loopback-only binds on 127.0.0.1.
2026-06-01 06:00:13,576 ERROR gateway.platforms.api_server: [Api_Server] Refusing to start: API_SERVER_KEY is required for the API server, including loopback-only binds on 127.0.0.1.
2026-06-01 06:02:13,689 ERROR gateway.platforms.api_server: [Api_Server] Refusing to start: API_SERVER_KEY is required for the API server, including loopback-only binds on 127.0.0.1.
2026-06-01 06:02:46,516 WARNING tools.web_tools: https://example.com (no content to process)
2026-06-01 06:02:46,518 WARNING [20260601_060219_db8128e3] agent.tool_executor: Tool web_search returned error (0.12s): {"error": "Error searching web: Feature 'search.firecrawl' unavailable: pip install failed: pip not available and ensurepip failed: Command '['/opt/hermes/.venv/bin/python3', '-m', 'ensurepip', '--upg
2026-06-01 06:02:46,518 WARNING [20260601_060219_db8128e3] agent.tool_executor: Tool web_extract returned error (0.30s): {
"results": [
{
"url": "https://example.com",
"title": "",
"content": "",
"error": "Feature 'search.firecrawl' unavailable: pip install failed: pip not available and ens
2026-06-01 06:03:04,330 WARNING tools.web_tools: https://example.com (no content to process)
2026-06-01 06:03:04,331 WARNING [20260601_060219_db8128e3] agent.tool_executor: Tool web_search returned error (0.21s): {"error": "Error searching web: Feature 'search.firecrawl' unavailable: pip install failed: pip not available and ensurepip failed: Command '['/opt/hermes/.venv/bin/python3', '-m', 'ensurepip', '--upg
2026-06-01 06:03:04,331 WARNING [20260601_060219_db8128e3] agent.tool_executor: Tool web_extract returned error (0.27s): {
"results": [
{
"url": "https://example.com",
"title": "",
"content": "",
"error": "Feature 'search.firecrawl' unavailable: pip install failed: pip not available and ens
2026-06-01 06:03:35,476 WARNING tools.web_tools: https://example.com (no content to process)
2026-06-01 06:03:35,477 WARNING [20260601_060219_db8128e3] agent.tool_executor: Tool web_search returned error (0.14s): {"error": "Error searching web: Feature 'search.firecrawl' unavailable: pip install failed: pip not available and ensurepip failed: Command '['/opt/hermes/.venv/bin/python3', '-m', 'ensurepip', '--upg
2026-06-01 06:03:35,477 WARNING [20260601_060219_db8128e3] agent.tool_executor: Tool web_extract returned error (0.23s): {
"results": [
{
"url": "https://example.com",
"title": "",
"content": "",
"error": "Feature 'search.firecrawl' unavailable: pip install failed: pip not available and ens
2026-06-01 06:04:14,454 WARNING [20260601_060219_db8128e3] agent.tool_executor: Tool web_search returned error (1.92s): {"error": "Error searching web: Feature 'search.firecrawl' unavailable: pip install failed: ERROR: Could not install packages due to an OSError: [Errno 2] No such file or directory: '/opt/hermes/.venv
2026-06-01 06:04:14,454 WARNING [20260601_060219_db8128e3] agent.tool_executor: Tool web_extract returned error (3.14s): {
"results": [
{
"url": "https://example.com",
"title": "Example Domain",
"content": "# Example Domain\n\nThis domain is for use in documentation examples without needing permi
2026-06-01 06:06:14,589 ERROR gateway.platforms.api_server: [Api_Server] Refusing to start: API_SERVER_KEY is required for the API server, including loopback-only binds on 127.0.0.1.
2026-06-01 06:11:14,930 ERROR gateway.platforms.api_server: [Api_Server] Refusing to start: API_SERVER_KEY is required for the API server, including loopback-only binds on 127.0.0.1.
2026-06-01 06:16:15,251 ERROR gateway.platforms.api_server: [Api_Server] Refusing to start: API_SERVER_KEY is required for the API server, including loopback-only binds on 127.0.0.1.
2026-06-01 06:21:15,552 ERROR gateway.platforms.api_server: [Api_Server] Refusing to start: API_SERVER_KEY is required for the API server, including loopback-only binds on 127.0.0.1.
2026-06-01 06:26:15,863 ERROR gateway.platforms.api_server: [Api_Server] Refusing to start: API_SERVER_KEY is required for the API server, including loopback-only binds on 127.0.0.1.
2026-06-01 06:31:16,197 ERROR gateway.platforms.api_server: [Api_Server] Refusing to start: API_SERVER_KEY is required for the API server, including loopback-only binds on 127.0.0.1.
2026-06-01 06:31:16,208 WARNING gateway.run: api_server paused after 10 consecutive failures (failed to reconnect) — fix the underlying issue then run `/platform resume api_server` to retry, or `hermes gateway restart` to restart the gateway.
2026-06-01 06:57:36,157 WARNING [20260601_060219_db8128e3] agent.tool_executor: Tool terminal returned error (0.18s): {"output": "/usr/bin/python3\n---\nPython 3.13.5\n---\n/usr/bin/bash: line 3: pip: command not found\n---\n/usr/bin/bash: line 3: pip3: command not found", "exit_code": 127, "error": null}
2026-06-01 13:40:59,564 WARNING gateway.platforms.homeassistant: [Homeassistant] Reconnection failed: 502, message='Invalid response status', url='wss://hass.wn.zone/api/websocket'
2026-06-01 13:41:09,603 WARNING gateway.platforms.homeassistant: [Homeassistant] Reconnection failed: 502, message='Invalid response status', url='wss://hass.wn.zone/api/websocket'
2026-06-01 13:46:56,502 WARNING gateway.platforms.homeassistant: [Homeassistant] Reconnection failed: 502, message='Invalid response status', url='wss://hass.wn.zone/api/websocket'
2026-06-01 13:47:06,548 WARNING gateway.platforms.homeassistant: [Homeassistant] Reconnection failed: 502, message='Invalid response status', url='wss://hass.wn.zone/api/websocket'
--- gateway.log (last 100 lines) ---
2026-06-01 07:11:38,764 INFO gateway.platforms.telegram: [Telegram] Flushing text batch agent:main:telegram:dm:8650994806 (28 chars)
2026-06-01 07:11:38,766 INFO gateway.run: inbound message: platform=telegram user=Shawn chat=8650994806 msg='Yeah go ahead and draft that'
2026-06-01 07:12:52,906 INFO gateway.run: Suppressing normal final send for session agent:main:telegram:dm:8650994806: final delivery already confirmed (streamed=True previewed=False content_delivered=True).
2026-06-01 07:12:52,907 INFO gateway.run: response ready: platform=telegram chat=8650994806 time=74.1s api_calls=5 response=3867 chars
2026-06-01 07:13:39,439 INFO gateway.memory_monitor: [MEMORY] rss=274MB gc=(1231, 9, 3) threads=15 uptime=4500s
2026-06-01 07:18:39,440 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(657, 10, 3) threads=13 uptime=4800s
2026-06-01 07:23:39,441 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(1533, 10, 3) threads=13 uptime=5100s
2026-06-01 07:28:39,442 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(602, 11, 3) threads=13 uptime=5400s
2026-06-01 07:33:39,442 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(1493, 11, 3) threads=13 uptime=5700s
2026-06-01 07:38:39,443 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(855, 0, 4) threads=13 uptime=6000s
2026-06-01 07:43:39,444 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(1680, 0, 4) threads=13 uptime=6300s
2026-06-01 07:48:39,453 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(810, 1, 4) threads=13 uptime=6600s
2026-06-01 07:53:39,454 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(1701, 1, 4) threads=13 uptime=6900s
2026-06-01 07:58:39,455 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(789, 2, 4) threads=13 uptime=7200s
2026-06-01 08:03:39,456 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(1715, 2, 4) threads=13 uptime=7500s
2026-06-01 08:08:39,456 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(623, 3, 4) threads=13 uptime=7800s
2026-06-01 08:13:39,457 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(1447, 3, 4) threads=13 uptime=8100s
2026-06-01 08:14:53,135 INFO gateway.run: Agent cache idle-TTL evict: session=agent:main:telegram:dm:8650994806 (idle=3721s)
2026-06-01 08:14:53,137 INFO gateway.run: Agent cache idle sweep: evicted 1 agent(s)
2026-06-01 08:18:39,458 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(629, 4, 4) threads=13 uptime=8400s
2026-06-01 08:23:39,459 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(1495, 4, 4) threads=13 uptime=8700s
2026-06-01 08:28:39,460 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(538, 5, 4) threads=13 uptime=9000s
2026-06-01 08:33:39,461 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(1404, 5, 4) threads=13 uptime=9300s
2026-06-01 08:38:39,461 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(569, 6, 4) threads=13 uptime=9600s
2026-06-01 08:43:39,462 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(1368, 6, 4) threads=13 uptime=9900s
2026-06-01 08:48:39,463 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(539, 7, 4) threads=13 uptime=10200s
2026-06-01 08:53:39,464 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(1431, 7, 4) threads=13 uptime=10500s
2026-06-01 08:58:39,464 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(541, 8, 4) threads=13 uptime=10800s
2026-06-01 09:03:39,465 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(1467, 8, 4) threads=13 uptime=11100s
2026-06-01 09:08:39,466 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(593, 9, 4) threads=13 uptime=11400s
2026-06-01 09:13:39,467 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(1418, 9, 4) threads=13 uptime=11700s
2026-06-01 09:18:39,468 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(572, 10, 4) threads=13 uptime=12000s
2026-06-01 09:23:39,468 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(1463, 10, 4) threads=13 uptime=12300s
2026-06-01 09:28:39,469 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(450, 11, 4) threads=13 uptime=12600s
2026-06-01 09:33:39,470 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(1340, 11, 4) threads=13 uptime=12900s
2026-06-01 09:38:39,470 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(789, 0, 5) threads=13 uptime=13200s
2026-06-01 09:43:39,471 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(1589, 0, 5) threads=13 uptime=13500s
2026-06-01 09:48:39,472 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(745, 1, 5) threads=13 uptime=13800s
2026-06-01 09:53:39,472 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(106, 2, 5) threads=13 uptime=14100s
2026-06-01 09:58:39,473 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(1132, 2, 5) threads=13 uptime=14400s
2026-06-01 10:03:39,474 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(323, 3, 5) threads=13 uptime=14700s
2026-06-01 10:08:39,475 INFO gateway.memory_monitor: [MEMORY] rss=278MB gc=(1214, 3, 5) threads=13 uptime=15000s
2026-06-01 10:13:39,475 INFO gateway.memory_monitor: [MEMORY] rss=279MB gc=(278, 4, 5) threads=13 uptime=15300s
2026-06-01 10:18:39,476 INFO gateway.memory_monitor: [MEMORY] rss=279MB gc=(1370, 4, 5) threads=13 uptime=15600s
2026-06-01 10:23:39,477 INFO gateway.memory_monitor: [MEMORY] rss=279MB gc=(326, 5, 5) threads=13 uptime=15900s
2026-06-01 10:28:39,478 INFO gateway.memory_monitor: [MEMORY] rss=279MB gc=(1147, 5, 5) threads=13 uptime=16200s
2026-06-01 10:33:39,478 INFO gateway.memory_monitor: [MEMORY] rss=279MB gc=(293, 6, 5) threads=13 uptime=16500s
2026-06-01 10:38:39,479 INFO gateway.memory_monitor: [MEMORY] rss=279MB gc=(1188, 6, 5) threads=13 uptime=16800s
2026-06-01 10:43:39,480 INFO gateway.memory_monitor: [MEMORY] rss=279MB gc=(106, 7, 5) threads=13 uptime=17100s
2026-06-01 10:48:39,480 INFO gateway.memory_monitor: [MEMORY] rss=279MB gc=(963, 7, 5) threads=13 uptime=17400s
2026-06-01 10:53:39,481 INFO gateway.memory_monitor: [MEMORY] rss=279MB gc=(104, 8, 5) threads=13 uptime=17700s
2026-06-01 10:58:39,481 INFO gateway.memory_monitor: [MEMORY] rss=279MB gc=(1042, 8, 5) threads=13 uptime=18000s
2026-06-01 11:03:39,482 INFO gateway.memory_monitor: [MEMORY] rss=279MB gc=(1968, 8, 5) threads=13 uptime=18300s
2026-06-01 11:08:39,483 INFO gateway.memory_monitor: [MEMORY] rss=279MB gc=(836, 9, 5) threads=13 uptime=18600s
2026-06-01 11:13:39,484 INFO gateway.memory_monitor: [MEMORY] rss=279MB gc=(1927, 9, 5) threads=13 uptime=18900s
2026-06-01 11:18:39,485 INFO gateway.memory_monitor: [MEMORY] rss=279MB gc=(1042, 10, 5) threads=13 uptime=19200s
2026-06-01 11:23:39,486 INFO gateway.memory_monitor: [MEMORY] rss=279MB gc=(1866, 10, 5) threads=13 uptime=19500s
2026-06-01 11:28:39,486 INFO gateway.memory_monitor: [MEMORY] rss=279MB gc=(843, 11, 5) threads=13 uptime=19800s
2026-06-01 11:33:39,487 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(231, 0, 6) threads=13 uptime=20100s
2026-06-01 11:38:39,488 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(1055, 0, 6) threads=13 uptime=20400s
2026-06-01 11:43:39,488 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(1921, 0, 6) threads=13 uptime=20700s
2026-06-01 11:48:39,489 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(899, 1, 6) threads=13 uptime=21000s
2026-06-01 11:53:39,490 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(1900, 1, 6) threads=13 uptime=21300s
2026-06-01 11:58:39,491 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(1009, 2, 6) threads=13 uptime=21600s
2026-06-01 12:03:39,491 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(201, 3, 6) threads=13 uptime=21900s
2026-06-01 12:08:39,492 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(1026, 3, 6) threads=13 uptime=22200s
2026-06-01 12:13:39,493 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(387, 4, 6) threads=13 uptime=22500s
2026-06-01 12:18:39,493 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(1278, 4, 6) threads=13 uptime=22800s
2026-06-01 12:23:39,494 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(168, 5, 6) threads=13 uptime=23100s
2026-06-01 12:28:39,495 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(1025, 5, 6) threads=13 uptime=23400s
2026-06-01 12:33:39,496 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(197, 6, 6) threads=13 uptime=23700s
2026-06-01 12:38:39,496 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(996, 6, 6) threads=13 uptime=24000s
2026-06-01 12:43:39,497 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(1886, 6, 6) threads=13 uptime=24300s
2026-06-01 12:48:39,498 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(839, 7, 6) threads=13 uptime=24600s
2026-06-01 12:53:39,498 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(1865, 7, 6) threads=13 uptime=24900s
2026-06-01 12:58:39,499 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(917, 8, 6) threads=13 uptime=25200s
2026-06-01 13:03:39,499 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(1844, 8, 6) threads=13 uptime=25500s
2026-06-01 13:08:39,500 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(713, 9, 6) threads=13 uptime=25800s
2026-06-01 13:13:39,501 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(1804, 9, 6) threads=13 uptime=26100s
2026-06-01 13:18:39,502 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(918, 10, 6) threads=13 uptime=26400s
2026-06-01 13:23:39,502 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(1742, 10, 6) threads=13 uptime=26700s
2026-06-01 13:28:39,502 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(775, 11, 6) threads=13 uptime=27000s
2026-06-01 13:33:39,503 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(136, 0, 7) threads=13 uptime=27300s
2026-06-01 13:38:39,504 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(960, 0, 7) threads=13 uptime=27600s
2026-06-01 13:40:54,515 INFO gateway.platforms.homeassistant: [Homeassistant] Reconnecting in 5s...
2026-06-01 13:40:59,564 WARNING gateway.platforms.homeassistant: [Homeassistant] Reconnection failed: 502, message='Invalid response status', url='wss://hass.wn.zone/api/websocket'
2026-06-01 13:40:59,565 INFO gateway.platforms.homeassistant: [Homeassistant] Reconnecting in 10s...
2026-06-01 13:41:09,603 WARNING gateway.platforms.homeassistant: [Homeassistant] Reconnection failed: 502, message='Invalid response status', url='wss://hass.wn.zone/api/websocket'
2026-06-01 13:41:09,604 INFO gateway.platforms.homeassistant: [Homeassistant] Reconnecting in 30s...
2026-06-01 13:41:39,642 INFO gateway.platforms.homeassistant: [Homeassistant] Reconnected
2026-06-01 13:43:39,505 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(1834, 0, 7) threads=13 uptime=27900s
2026-06-01 13:46:51,444 INFO gateway.platforms.homeassistant: [Homeassistant] Reconnecting in 5s...
2026-06-01 13:46:56,502 WARNING gateway.platforms.homeassistant: [Homeassistant] Reconnection failed: 502, message='Invalid response status', url='wss://hass.wn.zone/api/websocket'
2026-06-01 13:46:56,503 INFO gateway.platforms.homeassistant: [Homeassistant] Reconnecting in 10s...
2026-06-01 13:47:06,548 WARNING gateway.platforms.homeassistant: [Homeassistant] Reconnection failed: 502, message='Invalid response status', url='wss://hass.wn.zone/api/websocket'
2026-06-01 13:47:06,548 INFO gateway.platforms.homeassistant: [Homeassistant] Reconnecting in 30s...
2026-06-01 13:47:36,665 INFO gateway.platforms.homeassistant: [Homeassistant] Reconnected
2026-06-01 13:48:39,506 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(813, 1, 7) threads=13 uptime=28200s
2026-06-01 13:53:39,506 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(1814, 1, 7) threads=13 uptime=28500s
2026-06-01 13:58:39,507 INFO gateway.memory_monitor: [MEMORY] rss=286MB gc=(857, 2, 7) threads=13 uptime=28800s
On Debian 13 (trixie), the python3-venv package is what provides the ensurepip module. Without it, python3 -m ensurepip is a ModuleNotFoundError.
The lazy deps installer in tools/lazy_deps.py:_venv_pip_install uses a 3-tier ladder:
Tier 2 is always broken on this container because ensurepip doesn't exist. If Tier 1 (uv) ever returns non-zero, the user gets an unhelpful error message blaming pip when the real issue could be anything.
The lazy deps spec is pinned to an exact version (e.g., firecrawl-py==4.17.0). The _is_satisfied check uses packaging.specifiers.SpecifierSet which requires the exact pinned version, not just any installed version. If a user or uv pip install --upgrade installs a newer version (e.g., 4.28.2), _is_satisfied("firecrawl-py==4.17.0") returns False, triggering unnecessary reinstall attempts and cascading into the broken ensurepip error.
Secondary improvement (optional) — make the error message distinguish between "Tier 1 (uv) failed" and "Tier 2 (pip) failed" so users can debug more easily. Currently the FeatureUnavailable exception always says "pip install failed" regardless of which tier actually errored.
Bug Description
The Hermes Agent Docker image (Debian 13 trixie) does not install the python3-venv package, which provides the ensurepip module. Without it, the lazy dependencies installer's fallback path (python -m ensurepip → python -m pip install) always fails, producing a confusing error message.
The preferred install path (Tier 1 via uv pip install) works fine — but if it ever fails for any transient reason (network blip, first-call uv cache init, etc.), the fallback is completely broken.
Steps to Reproduce
Expected Behavior
Hermes automatically installs the required python deps before running the tool and returning the result to the model
Actual Behavior
Tool call fails with this error returned to model:
Affected Component
Tools (terminal, file ops, web, code execution, etc.)
Messaging Platform (if gateway-related)
No response
Debug Report
Operating System
Ubuntu 26.04 / Docker
Python Version
whatever the docker file has installed
Hermes Version
2026.5.29.2
Additional Logs / Traceback (optional)
Root Cause Analysis (optional)
Dockerfile (line 28) installs python3 and python3-dev but not python3-venv:
On Debian 13 (trixie), the python3-venv package is what provides the ensurepip module. Without it, python3 -m ensurepip is a ModuleNotFoundError.
The lazy deps installer in tools/lazy_deps.py:_venv_pip_install uses a 3-tier ladder:
Tier 2 is always broken on this container because ensurepip doesn't exist. If Tier 1 (uv) ever returns non-zero, the user gets an unhelpful error message blaming pip when the real issue could be anything.
Additional Issue: Version Pin Confusion
The lazy deps spec is pinned to an exact version (e.g., firecrawl-py==4.17.0). The _is_satisfied check uses packaging.specifiers.SpecifierSet which requires the exact pinned version, not just any installed version. If a user or uv pip install --upgrade installs a newer version (e.g., 4.28.2), _is_satisfied("firecrawl-py==4.17.0") returns False, triggering unnecessary reinstall attempts and cascading into the broken ensurepip error.
Proposed Fix (optional)
Primary fix — add python3-venv to the Dockerfile's apt-get install list:
Secondary improvement (optional) — make the error message distinguish between "Tier 1 (uv) failed" and "Tier 2 (pip) failed" so users can debug more easily. Currently the FeatureUnavailable exception always says "pip install failed" regardless of which tier actually errored.
Are you willing to submit a PR for this?