

root@ailaba:~
31# curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash


┌─────────────────────────────────────────────────────────┐
│             ⚕ Hermes Agent Installer                    │
├─────────────────────────────────────────────────────────┤
│  An open source AI agent by Nous Research.              │
└─────────────────────────────────────────────────────────┘

✓ Detected: linux (ubuntu)
→ Root install on Linux — using FHS layout
→   Code:    /usr/local/lib/hermes-agent
→   Command: /usr/local/bin/hermes
→   Data:    /root/.hermes (unchanged)
→ Checking for uv package manager...
✓ uv found (uv 0.11.14 (x86_64-unknown-linux-gnu))
→ Checking Python 3.11...
→ Python 3.11 not found, installing via uv...
Installed Python 3.11.15 in 31.53s
 + cpython-3.11.15-linux-x86_64-gnu (python3.11)
✓ Python installed: Python 3.11.15
→ Checking Git...
✓ Git 2.43.0 found
→ Checking Node.js (for browser tools)...
✓ Node.js v24.15.0 found
→ Checking internet connectivity for package install and web tools...
✓ Internet connectivity looks good
→ Checking ripgrep (fast file search)...
→ Checking ffmpeg (TTS voice messages)...
→ Installing ripgrep ffmpeg...
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  adwaita-icon-theme alsa-topology-conf alsa-ucm-conf at-spi2-common
  at-spi2-core dconf-gsettings-backend dconf-service fontconfig
  gsettings-desktop-schemas gtk-update-icon-cache hicolor-icon-theme
  humanity-icon-theme i965-va-driver intel-media-va-driver libaacs0
  libasound2-data libasound2t64 libass9 libasyncns0 libatk-bridge2.0-0t64
  libatk1.0-0t64 libatspi2.0-0t64 libavahi-client3 libavahi-common-data
  libavahi-common3 libavc1394-0 libavcodec60 libavdevice60 libavfilter9
  libavformat60 libavutil58 libbdplus0 libblas3 libbluray2 libbs2b0
  libcairo-gobject2 libcairo2 libcdio-cdda2t64 libcdio-paranoia2t64
  libcdio19t64 libchromaprint1 libcjson1 libcodec2-1.2 libcolord2
  libcups2t64 libdatrie1 libdav1d7 libdc1394-25 libdconf1 libdecor-0-0
  libdecor-0-plugin-1-gtk libepoxy0 libfftw3-double3 libflac12t64 libflite1
  libgfortran5 libgme0 libgsm1 libgtk-3-0t64 libgtk-3-bin libgtk-3-common
  libhwy1t64 libiec61883-0 libigdgmm12 libjack-jackd2-0 libjxl0.7
  liblapack3 liblilv-0-0 libmbedcrypto7t64 libmp3lame0 libmpg123-0t64
  libmysofa1 libnorm1t64 libogg0 libopenal-data libopenal1 libopenmpt0t64
  libopus0 libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0
  libpgm-5.3-0t64 libpixman-1-0 libplacebo338 libpocketsphinx3
  libpostproc57 libpulse0 librabbitmq4 librav1e0 libraw1394-11 librist4
  librsvg2-2 librsvg2-common librubberband2 libsamplerate0 libsdl2-2.0-0
  libserd-0-0 libshine3 libsnappy1v5 libsndfile1 libsndio7.0 libsord-0-0
  libsoxr0 libspeex1 libsphinxbase3t64 libsratom-0-0 libsrt1.5-gnutls
  libssh-gcrypt-4 libsvtav1enc1d1 libswresample4 libswscale7 libthai-data
  libthai0 libtheora0 libtwolame0 libudfread0 libunibreak5 libva-drm2
  libva-x11-2 libva2 libvdpau1 libvidstab1.1 libvorbis0a libvorbisenc2
  libvorbisfile3 libvpl2 libvpx9 libwayland-cursor0 libwayland-egl1
  libx264-164 libx265-199 libxcb-render0 libxdamage1 libxss1 libxvidcore4
  libzimg2 libzix-0-0 libzmq5 libzvbi-common libzvbi0t64 mesa-va-drivers
  mesa-vdpau-drivers ocl-icd-libopencl1 pocketsphinx-en-us
  session-migration ubuntu-mono va-driver-all vdpau-driver-all
Suggested packages:
  ffmpeg-doc i965-va-driver-shaders alsa-utils libasound2-plugins libcuda1
  libnvcuvid1 libnvidia-encode1 libbluray-bdj colord cups-common
  libfftw3-bin libfftw3-dev gvfs jackd2 libportaudio2 opus-tools pulseaudio
  libraw1394-doc librsvg2-bin serdi sndiod sordi speex opencl-icd
  libvdpau-va-gl1
The following NEW packages will be installed:
  adwaita-icon-theme alsa-topology-conf alsa-ucm-conf at-spi2-common
  at-spi2-core dconf-gsettings-backend dconf-service ffmpeg fontconfig
  gsettings-desktop-schemas gtk-update-icon-cache hicolor-icon-theme
  humanity-icon-theme i965-va-driver intel-media-va-driver libaacs0
  libasound2-data libasound2t64 libass9 libasyncns0 libatk-bridge2.0-0t64
  libatk1.0-0t64 libatspi2.0-0t64 libavahi-client3 libavahi-common-data
  libavahi-common3 libavc1394-0 libavcodec60 libavdevice60 libavfilter9
  libavformat60 libavutil58 libbdplus0 libblas3 libbluray2 libbs2b0
  libcairo-gobject2 libcairo2 libcdio-cdda2t64 libcdio-paranoia2t64
  libcdio19t64 libchromaprint1 libcjson1 libcodec2-1.2 libcolord2
  libcups2t64 libdatrie1 libdav1d7 libdc1394-25 libdconf1 libdecor-0-0
  libdecor-0-plugin-1-gtk libepoxy0 libfftw3-double3 libflac12t64 libflite1
  libgfortran5 libgme0 libgsm1 libgtk-3-0t64 libgtk-3-bin libgtk-3-common
  libhwy1t64 libiec61883-0 libigdgmm12 libjack-jackd2-0 libjxl0.7
  liblapack3 liblilv-0-0 libmbedcrypto7t64 libmp3lame0 libmpg123-0t64
  libmysofa1 libnorm1t64 libogg0 libopenal-data libopenal1 libopenmpt0t64
  libopus0 libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0
  libpgm-5.3-0t64 libpixman-1-0 libplacebo338 libpocketsphinx3
  libpostproc57 libpulse0 librabbitmq4 librav1e0 libraw1394-11 librist4
  librsvg2-2 librsvg2-common librubberband2 libsamplerate0 libsdl2-2.0-0
  libserd-0-0 libshine3 libsnappy1v5 libsndfile1 libsndio7.0 libsord-0-0
  libsoxr0 libspeex1 libsphinxbase3t64 libsratom-0-0 libsrt1.5-gnutls
  libssh-gcrypt-4 libsvtav1enc1d1 libswresample4 libswscale7 libthai-data
  libthai0 libtheora0 libtwolame0 libudfread0 libunibreak5 libva-drm2
  libva-x11-2 libva2 libvdpau1 libvidstab1.1 libvorbis0a libvorbisenc2
  libvorbisfile3 libvpl2 libvpx9 libwayland-cursor0 libwayland-egl1
  libx264-164 libx265-199 libxcb-render0 libxdamage1 libxss1 libxvidcore4
  libzimg2 libzix-0-0 libzmq5 libzvbi-common libzvbi0t64 mesa-va-drivers
  mesa-vdpau-drivers ocl-icd-libopencl1 pocketsphinx-en-us ripgrep
  session-migration ubuntu-mono va-driver-all vdpau-driver-all
0 upgraded, 150 newly installed, 0 to remove and 31 not upgraded.
Need to get 108 MB of archives.
After this operation, 306 MB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 gtk-update-icon-cache amd64 3.24.41-4ubuntu1.3 [51.9 kB]
Get:2 http://archive.ubuntu.com/ubuntu noble/main amd64 hicolor-icon-theme all 0.17-2 [9976 B]
Get:3 http://archive.ubuntu.com/ubuntu noble/main amd64 humanity-icon-theme all 0.6.16 [1282 kB]
Get:4 http://archive.ubuntu 
......


## 2353

how hermes do web search?

---

1. How Hermes Actually Searches (The Default Way)
When you ask Hermes to search the web, it usually executes a two-step process using Python libraries under the hood:

Step 1: The Search API: It doesn't physically "Google" things. It pings a dedicated Search API (like DuckDuckGo, Tavily, or Brave Search). This returns a clean JSON list of URLs, titles, and short snippets.

Step 2: The Scraper: If it needs to read a specific page, it uses standard HTTP libraries (like requests or aiohttp) to download the raw HTML. It then passes that HTML through a parser (like BeautifulSoup or Mozilla's Readability) to strip away all the CSS, JavaScript, and navigation menus, leaving only the core text.

Why it avoids TUI browsers: Tools like w3m and lynx format text specifically for human eyeballs on a 2D grid. They add line breaks, spaces, and visual indentations that actually waste an LLM's precious context window. Pure, stripped markdown is much more token-efficient.

---

You are exactly right to be suspicious. Out of the box, Hermes does not use SearXNG; it defaults to **Firecrawl** for all web interactions.

However, a recent architectural update to Hermes-Agent explicitly split the web tools into different phases, allowing you to plug **SearXNG** in as a native backend.

Here is exactly how to configure it inside your **ailaba** container.

### 1. Edit the Config File

Hermes stores its core behavioral settings in a YAML file.

Open it with your editor:

```bash
vim ~/.hermes/config.yaml

```

You need to find (or add) the `web` block and explicitly set the `search_backend` to SearXNG:

```yaml
web:
  search_backend: searxng
  # Keep an extract backend here, explained below
  extract_backend: firecrawl

```

### 2. Point to Your SearXNG Instance

Hermes needs to know where your SearXNG server lives. You configure this in the environment file.

Open your secrets/env file:

```bash
vim ~/.hermes/.env

```

Add the URL pointing to your instance:

```bash
SEARXNG_URL="http://your-searxng-ip:port"

```

*Crucial Server Setup Note:* If you are self-hosting SearXNG, you must ensure that the `json` format is enabled in its `settings.yml` (it is sometimes disabled by default for privacy). If Hermes can't get a JSON response, it will crash when trying to read the search results.

---

### 3. The "Search" vs. "Extract" Catch

Because you are customizing the stack, you need to understand how Hermes divides the labor:

* **The Search Phase (`web_search`):** This takes a query and returns a list of URLs and short text snippets. **SearXNG** is perfect for this, as it acts as a massive metasearch engine.
* **The Extract Phase (`web_extract`):** SearXNG *cannot* extract full-page content. If Hermes decides a snippet isn't enough and wants to read the entire 5,000-word article, it needs an extraction backend.

If you completely remove Firecrawl from the `extract_backend` config, Hermes will fall back to making a plain HTTP request. This works for simple blogs, but it will instantly fail on any modern, JavaScript-rendered website or anything sitting behind Cloudflare/bot protection.

If you want to keep everything strictly local and free on your **zaasus** machine, you can leave SearXNG as the searcher, and instruct Hermes to use its built-in local Chromium browser tools to navigate to and snapshot the pages, or even use that `w3m -dump` trick we discussed earlier to read the raw text!

Do you already have a SearXNG Docker container running on your host bridge (`10.12.88.1`), or are you planning to use a public SearXNG instance for the agent?


# May 14

## 0138

You are running into a classic "greedy framework" issue. When tools like Hermes boot up, they often scan the environment first. If they spot an `OPENAI_API_KEY` or `ANTHROPIC_API_KEY` in your `.env` file, they aggressively assume you want to use the cloud, overriding your local settings.

To force Hermes to ignore the cloud keys and strictly use your Ollama instance at `10.12.88.1:11434`, you need to lock down the **chat configuration**.

Here is how to do it permanently inside your **ailaba** container.

### 1. The CLI Method (Recommended)

Since we know Hermes likes to overwrite the YAML file, the safest way is to use the built-in configuration commands to enforce the custom OpenAI-compatible endpoint.

Run these three commands in your terminal:

```bash
# 1. Tell Hermes to use the standard OpenAI protocol (which Ollama supports natively)
hermes config set chat.provider openai

# 2. Point it strictly to your host's bridge IP
hermes config set chat.base_url "http://10.12.88.1:11434/v1"

# 3. Set your specific local model (e.g., the 16k one we built earlier)
hermes config set chat.model "hermes-16k"

```

### 2. The YAML Verification

If you want to open your `config.yaml` to verify it worked (or just prefer editing it with Vim), it should look exactly like this:

```bash
vim ~/.hermes/config.yaml

```

Look for the `chat:` block. It needs these specific lines:

```yaml
chat:
  provider: "openai"
  model: "hermes-16k"
  base_url: "http://10.12.88.1:11434/v1"

```

*(Note: Even though the provider says "openai", the `base_url` hijacks the request and sends it straight to your local RTX 4050 instead).*

### 3. The "Dummy Key" Fallback

Because we set the provider to "openai", some underlying Python libraries inside Hermes might still throw a tantrum if they don't find *any* OpenAI key in the environment, even though Ollama doesn't need one.

To prevent this without accidentally connecting to the real OpenAI, give it a fake key in your environment file:

```bash
vim ~/.hermes/.env

```

Add this line:

```bash
OPENAI_API_KEY="ollama"

```

Once those three settings are locked in, Hermes will stop reaching out to the cloud and will route all its thinking strictly through your host machine's GPU!


# May 14

## 1251

Hermes has no /ask /chat /talk,
so how to simple /ask the model ?

My hermes currently doesn't show model name, 
which should be ollama/gemma4:e2b .
no ctx number too, how to make up these 2 settings?

```
36# hermes

╔══════════════════════════════════════════════════════════════════════════╗
║ ⚕ NOUS HERMES - AI Agent Framework                                     ║
║ Hermes Agent v0.13.0 (2026.5.7) · upstream 942adf61                    ║
╚══════════════════════════════════════════════════════════════════════════╝

  ●  · 30 tools · toolsets: browser, clarify, code_execution, computer_use,
cronjob, delegation, file, image_gen, kanban, memory, messaging,
session_search, skills, terminal, todo, tts, vision, web · provider: auto

Welcome to Hermes Agent! Type your message or /help for commands.
✦ Tip: hermes status --deep runs the full health sweep across every
component; plain hermes status is the quick view.

 ⚕ unknown │ ctx -- │ [░░░░░░░░░░] -- │ 44s │ ⏲ 0s
────────────────────────────────────────────────────────────────────────────
❯
────────────────────────────────────────────────────────────────────────────
```

## 1310

I don't think hermes is being hijacked to local bridge :11434, 
when i use /model , it can pickup keys from env.
and the settings in config.yaml just not work for it.

And i guess the web search is from google also, 
not a locally initialized websearch.

```

  ✓ Model switched: gemini-2.5-flash-lite
    Provider: Google
    Context: 1,048,576 tokens
    Max output: 65,536 tokens
    Cost: $0.10/M in, $0.40/M out, cache read $0.01/M
    Capabilities: reasoning, tools, vision, PDF, audio, structured output
    (session only — add --global to persist)

────────────────────────────────────────
● where is the city of NewYork?
Initializing agent...

────────────────────────────────────────
  ┊ 🔍 preparing web_search…
  ┊ 🔍 search    where is the city of New York  6.5s

╭─ ⚕ Hermes ───────────────────────────────────────────────────────────────╮
    The city of New York is located at the southern tip of New York State in the northeastern United States. It is situated at the mouth of the Hudson River.
╰──────────────────────────────────────────────────────────────────────────╯
 ⚕ gemini-2.5-flash-lite │ 15.3K/1M │ [░░░░░░░░░░] 1% │ 16m │ ⏲ 10s
────────────────────────────────────────────────────────────────────────────
❯
```

---

To configure [Hermes Agent (by Nous Research)](https://github.com/nousresearch/hermes-agent) to perform web searches, choose between utilizing the zero-key Nous Tool Gateway (Paid Subscription) or integrating a free local SearXNG Docker container. [1, 2, 3, 4]
------------------------------
## Option 1: Setup via Nous Tool Gateway (Easiest) [3]
Paid Nous Portal subscribers can route web_search and web_extract directly through Firecrawl without requiring individual third-party provider API keys. [2]

   1. Select the Portal Model: Run the model wizard and choose Nous Portal to automatically engage the gateway:

   hermes model

   2. Toggle the Web Tools: Open your tools manager:

   hermes tools

   3. Select the web search categories and set the provider to Nous Subscription (which updates your config.yml to reflect use_gateway: true).
   4. Verify Deployment:

   hermes status

   [2, 3, 5]

------------------------------
## Option 2: Setup via Local SearXNG (Free / Self-Hosted)
To avoid subscription fees, self-host a SearXNG instance and configure Hermes to connect to it locally. [4]

   1. Launch SearXNG: Build and run the container:

   docker run -d -p 8888:8080 --name searxng --restart unless-stopped searxng/searxng:latest

   2. Enable JSON Output: SearXNG disables JSON format by default, but Hermes requires it. Copy the auto-generated config out of your container:

   docker cp searxng:/etc/searxng/settings.yml ~/settings.yml

   3. Open ~/settings.yml in a text editor, navigate to the formats: block (typically around line 84), and append - json:

   formats:
     - html
     - json

   4. Apply and Restart: Copy the edited file back and restart the container:

   docker cp ~/settings.yml searxng:/etc/searxng/settings.yml

   docker restart searxng

   5. Link Hermes to SearXNG: Point Hermes to your local server instance:

   hermes config set SEARXNG_BASE_URL "http://localhost:8888/"

   [4]

------------------------------
## Option 3: Browser Harness (Full Automation)
If your goal is automated browsing (clicking, typing, and logging into websites) instead of raw search strings, configure the browser harness. [6]

   1. Install Browser Use Skill:

   hermes skills install skills-sh/browser-use/browser-use/browser-use

   2. Launch with Chromium: Enable remote debugging on your local Google Chrome app, or buy a cloud provider token and configure it:

   hermes config set BROWSER_USE_API_KEY "your_key_here"

   [6, 7]

------------------------------
## Initiating a Search Task
Once configured via any of the methods above, initiate the agent through the CLI and explicitly assign a web-based prompt: [3, 6]

hermes chat "Search the web for the latest updates on the Hermes Agent v0.13 framework and summarize it."

If you ran into any errors during setup, let me know:

* Your current Hermes Agent version (hermes --version)
* Whether you prefer a cloud gateway or a completely local setup
* The specific LLM provider you are using (OpenRouter, OpenAI, local Ollama, etc.) [1, 6, 8, 9, 10]


[1] [https://github.com](https://github.com/nousresearch/hermes-agent)
[2] [https://www.firecrawl.dev](https://www.firecrawl.dev/blog/hermes-web-search)
[3] [https://qiita.com](https://qiita.com/kai_kou/items/84aee2e626c01e222280)
[4] [https://hermes-agent.nousresearch.com](https://hermes-agent.nousresearch.com/docs/user-guide/features/web-search)
[5] [https://www.firecrawl.dev](https://www.firecrawl.dev/blog/hermes-web-search)
[6] [https://www.youtube.com](https://www.youtube.com/watch?v=ES_gBHPAcJU)
[7] [https://docs.browser-use.com](https://docs.browser-use.com/cloud/tutorials/integrations/hermes-agent)
[8] [https://docs.openwebui.com](https://docs.openwebui.com/getting-started/quick-start/connect-an-agent/hermes-agent/)
[9] [https://felo.ai](https://felo.ai/blog/hermes-agent-tutorial-research-workflow/)
[10] [https://www.reddit.com](https://www.reddit.com/r/AISEOInsider/comments/1t2vvtx/hermes_agent_desktop_app_runs_powerful_ai_without/)


