#Unable to get web search to work

1 messages · Page 1 of 1 (latest)

stone sand
#

Hi, my setup is a local LLM firecrawl via api (verified that this works from a python test), and WhatsApp (working).
I can 'talk' to hermes just fine, but any attempt at 'Research blah blah blah' returns ;
Empty response (no content or reasoning) — retrying (1/3)
↻ Empty response (no content or reasoning) — retrying (2/3)
↻ Empty response (no content or reasoning) — retrying (3/3)
─ ⚕ Hermes ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

(empty)

Any ideas ? I have also tried installing Firecrawl locally but the same problem occurs.
I'm running with : $ hermes chat --toolsets "web,terminal,skills,memory"

fallen valve
#

hey can send ‘hermes dump’ for this session

stone sand
#

$ hermes dump
--- hermes dump ---
version: 0.8.0 (2026.4.8) [637ad443]
os: Linux 6.17.0-1008-nvidia aarch64
python: 3.11.15
openai_sdk: 2.30.0
profile: default
hermes_home: ~/.hermes
model: QuantTrio/Qwen3.5-122B-A10B-AWQ
provider: custom
terminal: docker

api_keys:
openrouter not set
openai not set
anthropic not set
anthropic_token not set
nous not set
glm/zai not set
zai not set
kimi not set
minimax not set
deepseek not set
dashscope not set
huggingface 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: running (systemd)
platforms: whatsapp
cron_jobs: 0
skills: 77

config_overrides:
terminal.backend: docker
display.streaming: True
--- end dump ---

stone sand
#

Running on a 128GB memory DGX Spark. Plenty of memory is free...

fallen valve
#

can you send ~/.hermes/logs as well

stone sand
fallen valve
#

thanks, debugging

#

okay interesting

#

its an issue with your local hosted model and not hermes

#

nvm

#

Root cause: web tools are silently removed from the tool schema because Firecrawl credentials aren't detected by Hermes.

Here's the chain:

  1. You run hermes chat --toolsets "web,terminal,skills,memory"
  2. Hermes resolves the web toolset → includes web_search and web_extract
  3. BUT before sending tool schemas to the model, each tool's check_fn is called
  4. For web tools, check_web_api_key() checks for env vars: FIRECRAWL_API_KEY, FIRECRAWL_API_URL, PARALLEL_API_KEY, TAVILY_API_KEY, or EXA_API_KEY
  5. If NONE are found → the tool is silently dropped from the schema
  6. Your model receives only 6 tools (terminal, process, skill_manage, skill_view, skills_list, memory) — no web tools at all
  7. When you say "Research X", the model has no web_search tool to call → returns empty content → retry 3x → "(empty)"

You can confirm this by looking at the startup output. You should see:

🛠️  Loaded 6 tools: memory, process, skill_manage, skill_view, skills_list, terminal

Notice web_search and web_extract are missing.

The fix — set FIRECRAWL_API_URL in ~/.hermes/.env pointing to your local Firecrawl instance:

FIRECRAWL_API_URL=http://<your-firecrawl-host>:<port>

For example if Firecrawl is running on the same machine:

FIRECRAWL_API_URL=http://localhost:3002

Or if it's on your LAN:

FIRECRAWL_API_URL=http://192.168.1.X:3002

No FIRECRAWL_API_KEY is needed for self-hosted Firecrawl — just the URL is enough. The check at line 133 of web_tools.py passes when either FIRECRAWL_API_KEY or
FIRECRAWL_API_URL is set.

Alternatively, you can set the backend explicitly in ~/.hermes/config.yaml:

web:
  backend: firecrawl
#

@stone sand please try and lmk

stone sand
#

Interesting - this is what I have set in the .env :
.env:FIRECRAWL_API_KEY=fc-..............
.env:FIRECRAWL_API_URL=

I Did have :
FIRECRAWL_API_URL=http://localhost:3002

BUt removed the string as per the documentation as I an now using the FIRECRAWL Cloud ?

Also :

$ grep -i fire config.yaml
cloud_provider: firecrawl
backend: firecrawl

BTW, I dont see any Loaded 6 tools message...

stone sand
#

⚙️ /tools

+------------------------------------------------------------------------------+
| (^_^)/ Available Tools |
+------------------------------------------------------------------------------+

[memory]
* memory - Save durable information to persistent memory that survives across sessions.

[skills]
* skill_manage - Manage skills (create, update, delete).
* skill_view - Skills allow for loading information about specific tasks and workflows, as well as scripts and templates.
* skills_list - List available skills (name + description).

[terminal]
* process - Manage background processes started with terminal(background=true).
* terminal - Execute shell commands on a Linux environment.

[web]
* web_extract - Extract content from web page URLs.
* web_search - Search the web for information on any topic.

Total: 8 tools ヽ(^o^)ノ

fallen valve
#

so did the firecrawl work yet?

stone sand
#

No it didn't - no change.

#

If i ask it whether it posted the last search, it says that it didn't and supposedly tries again.

#

Could this be a Gateway issue ?

fallen valve
#

can you send your gateway logs as well then?

stone sand
#

My local model is running within vLLM with these parameters :
vllm/vllm-openai:qwen3_5-cu130
-lc 'vllm serve QuantTrio/Qwen3.5-122B-A10B-AWQ
--max-num-seqs 32
--max-model-len 262144
--gpu-memory-utilization 0.7
--enable-expert-parallel
--enable-auto-tool-choice
--tool-call-parser hermes
--reasoning-parser qwen3
--speculative-config "{"method":"qwen3_next_mtp","num_speculative_tokens":2}"
--host 0.0.0.0
--port 8090'

stone sand
#

Any thoughts on the above ? Its still not working for me...

fallen valve
#

hi yes

#

checking

#

btw you can use browser-use agent for free for hermes

stone sand
#

Tried this approach, but I still get :

↻ Thinking-only response — prefilling to continue (1/2)
⚠️ Empty response from model — retrying (1/3)
⚠️ Empty response from model — retrying (2/3)
↻ Thinking-only response — prefilling to continue (2/2)
⚠️ Empty response from model — retrying (3/3)
❌ Model returned no content after all retries. No fallback providers configured.
─ ⚕ Hermes ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

(empty)

fallen valve
#

tf

#

are you on latest hermes?

stone sand
#

Yeap - constantly do a hermes update

#

Is there any way of getting any more logging from the web interaction ?

zealous burrow
stone sand
#

What does that mean ?

zealous burrow
#

Never really happens with frontier models

stone sand
#

Is there anything that I can do with the config of Qwen 3.5 122B to address or does this need some work on your part to fix ?

zealous burrow
stone sand
#

Let me know if you wish me to test anything to progress this.