الأكاديمية ← قنوات المراسلةتوثيق رسمي · إرشاد عربي

الربط مع Open WebUI

Open WebUI

متوسط إلى متقدم9 دقائق قراءةالدرس 135 أسئلة✓ 2026-08-18
قبل أن تقرأ

ما هذه الصفحة، وماذا تحتوي.

بوابة المراسلة: الوصلة التي تجعلك تكلّم Hermes من تطبيق تستعمله أصلًا، مثل Telegram أو WhatsApp، بدل الطرفية. الوكيل الذي تصله من هاتفك تستعمله فعلًا. الذي يحتاج فتح الحاسوب تنساه بعد أسبوع. الصفحة فيها تحذير من المصدر، و9 دقائق قراءة. انتبه: افتح القناة لنفسك فقط في البداية عبر قائمة سماح. القناة المفتوحة تعني أن أي شخص يراسل وكيلك.

10أقسام
13أمثلة برمجية
4جداول
3أوامر
1,601كلمة من المصدر
الوصف الرسمي في سطر

Connect Open WebUI to Hermes Agent via the OpenAI-compatible API server

ماذا ستستطيع بعدها

نتائج مأخوذة من هذه الصفحة، لا من قالب.

  • تعرف ما بوابة المراسلة ولماذا قد تحتاجه.
  • تنفّذ hermes config set وhermes gateway وتفهم ما يحدث بعدها.
  • تقرأ الجدول وتأخذ منه السطر الذي يخصّك فقط.
  • تضبط API_SERVER_CORS_ORIGINS في المكان الصحيح.
ما ستقابله من أسماء

كما تظهر تمامًا داخل Hermes.

الأوامر
  • hermes config set
  • hermes gateway
  • hermes gateway stop
متغيرات البيئة
  • API_SERVER_CORS_ORIGINS
  • API_SERVER_ENABLED
  • API_SERVER_KEY
  • OPENAI_API_BASE_URL
  • OPENAI_API_KEY
  • ENABLE_OLLAMA_API
  • API_SERVER_PORT
  • API_SERVER_MODEL_NAME
خريطة الصفحة

انتقل مباشرة إلى ما تحتاجه.

  1. 01Architecture
  2. 02Quick Setup
  3. 03Docker Compose Setup
  4. 04Configuring via the Admin UI
  5. 05API Type: Chat Completions vs Responses
  6. 06How It Works
  7. 07Configuration Reference
  8. 08Troubleshooting
  9. 09Multi-User Setup with Profiles
  10. 10Linux Docker (no Docker Desktop)
الصفحة الرسمية كاملة

بلا اختصار أو حذف.

النص أدناه منقول من المصدر الرسمي بالإنجليزية حتى تبقى الأوامر والأسماء دقيقة كما هي. قبل كل قسم شرح عربي يوضّح ما بداخله.

Open WebUI ↗ (126k★) is the most popular self-hosted chat interface for AI. With Hermes Agent's built-in API server, you can use Open WebUI as a polished web frontend for your agent — complete with conversation management, user accounts, and a modern chat interface.

Architecture

إعدادات تضبطها مرة وتنساها. غيّر واحدًا في كل مرة حتى تعرف أثر كل تغيير. تضبط API_SERVER_CORS_ORIGINS خارج المحادثة، في بيئة التشغيل.

MERMAID5 أسطر
flowchart LR
    A["Open WebUI<br/>browser UI<br/>port 3000"]
    B["hermes-agent<br/>gateway API server<br/>port 8642"]
    A -->|POST /v1/chat/completions| B
    B -->|SSE streaming response| A

Open WebUI connects to Hermes Agent's API server just like it would connect to OpenAI. Hermes handles the requests with its full toolset — terminal, file operations, web search, memory, skills — and returns the final response.

:::important Runtime location The API server is a Hermes agent runtime, not a pure LLM proxy. For each request, Hermes creates a server-side AIAgent on the API-server host. Tool calls run where that API server is running.

For example, if a laptop points Open WebUI or another OpenAI-compatible client at a Hermes API server on a remote machine, pwd, file tools, browser tools, local MCP tools, and other workspace tools run on the remote API-server host, not on the laptop. :::

Open WebUI talks to Hermes server-to-server, so you do not need API_SERVER_CORS_ORIGINS for this integration.

Quick Setup

خطوات عملية بالترتيب. نفّذ خطوة وتأكد أنها نجحت قبل الانتقال للتالية. الأوامر هنا: hermes config set، hermes gateway.

1. Enable the API server

Shellسطران
hermes config set API_SERVER_ENABLED true
hermes config set API_SERVER_KEY your-secret-key

hermes config set auto-routes the flag to config.yaml and the secret to ~/.hermes/.env. If the gateway is already running, restart it so the change takes effect:

Shellسطر واحد
hermes gateway stop && hermes gateway

2. Start Hermes Agent gateway

Shellسطر واحد
hermes gateway

You should see:

Textسطر واحد
[API Server] API server listening on http://127.0.0.1:8642

3. Verify the API server is reachable

Shell5 أسطر
curl -s http://127.0.0.1:8642/health
# {"status": "ok", ...}

curl -s -H "Authorization: Bearer your-secret-key" http://127.0.0.1:8642/v1/models
# {"object":"list","data":[{"id":"hermes-agent", ...}]}

If /health fails, the gateway didn't pick up API_SERVER_ENABLED=true — restart it. If /v1/models returns 401, your Authorization header doesn't match API_SERVER_KEY.

4. Start Open WebUI

Shell9 أسطر
docker run -d -p 3000:8080 \
  -e OPENAI_API_BASE_URL=http://host.docker.internal:8642/v1 \
  -e OPENAI_API_KEY=your-secret-key \
  -e ENABLE_OLLAMA_API=false \
  --add-host=host.docker.internal:host-gateway \
  -v open-webui:/app/backend/data \
  --name open-webui \
  --restart always \
  ghcr.io/open-webui/open-webui:main

ENABLE_OLLAMA_API=false suppresses the default Ollama backend, which would otherwise show up empty and clutter the model picker. Omit it if you actually have Ollama running alongside.

First launch takes 15–30 seconds: Open WebUI downloads sentence-transformer embedding models (~150MB) the first time it starts. Wait for docker logs open-webui to settle before opening the UI.

5. Open the UI

Go to http://localhost:3000. Create your admin account (the first user becomes admin). You should see your agent in the model dropdown (named after your profile, or hermes-agent for the default profile). Start chatting!

Docker Compose Setup

خطوات عملية بالترتيب. نفّذ خطوة وتأكد أنها نجحت قبل الانتقال للتالية.

For a more permanent setup, create a docker-compose.yml:

YAML17 سطرًا
services:
  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    ports:
      - "3000:8080"
    volumes:
      - open-webui:/app/backend/data
    environment:
      - OPENAI_API_BASE_URL=http://host.docker.internal:8642/v1
      - OPENAI_API_KEY=your-secret-key
      - ENABLE_OLLAMA_API=false
    extra_hosts:
      - "host.docker.internal:host-gateway"
    restart: always

volumes:
  open-webui:

Then:

Shellسطر واحد
docker compose up -d

Configuring via the Admin UI

فيه تحذير مهم. اقرأه قبل أن تنفّذ أي شيء من هذا القسم. نصّ التحذير من المصدر مذكور أسفل هذا الشرح.

If you prefer to configure the connection through the UI instead of environment variables:

  1. Log in to Open WebUI at http://localhost:3000
  2. Click your profile avatar → Admin Settings
  3. Go to Connections
  4. Under OpenAI API, click the wrench icon (Manage)
  5. Click + Add New Connection
  6. Enter:
  7. URL: http://host.docker.internal:8642/v1
  8. API Key: the exact same value as API_SERVER_KEY in Hermes
  9. Click the checkmark to verify the connection
  10. Save

Your agent model should now appear in the model dropdown (named after your profile, or hermes-agent for the default profile).

API Type: Chat Completions vs Responses

شرح للفكرة نفسها. اقرأه ببطء، فبقية الأقسام تبني عليه. تذكير: الوصلة التي تجعلك تكلّم Hermes من تطبيق تستعمله أصلًا، مثل Telegram أو WhatsApp، بدل الطرفية.

Open WebUI supports two API modes when connecting to a backend:

ModeFormatWhen to use
Chat Completions (default)/v1/chat/completionsRecommended. Works out of the box.
Responses (experimental)/v1/responsesFor server-side conversation state via previous_response_id.

This is the default and requires no extra configuration. Open WebUI sends standard OpenAI-format requests and Hermes Agent responds accordingly. Each request includes the full conversation history.

Using Responses API

To use the Responses API mode:

  1. Go to Admin Settings → Connections → OpenAI → Manage
  2. Edit your hermes-agent connection
  3. Change API Type from "Chat Completions" to "Responses (Experimental)"
  4. Save

With the Responses API, Open WebUI sends requests in the Responses format (input array + instructions), and Hermes Agent can preserve full tool call history across turns via previous_response_id. When stream: true, Hermes also streams spec-native function_call and function_call_output items, which enables custom structured tool-call UI in clients that render Responses events.

How It Works

شرح للفكرة نفسها. اقرأه ببطء، فبقية الأقسام تبني عليه.

When you send a message in Open WebUI:

  1. Open WebUI sends a POST /v1/chat/completions request with your message and conversation history
  2. Hermes Agent creates a server-side AIAgent instance using the API server's profile, model/provider config, memory, skills, and configured API-server toolsets
  3. The agent processes your request — it may call tools (terminal, file operations, web search, etc.) on the API-server host
  4. As tools execute, inline progress messages stream to the UI so you can see what the agent is doing (e.g. ` 💻 ls -la , 🔍 Python 3.12 release `)
  5. The agent's final text response streams back to Open WebUI
  6. Open WebUI displays the response in its chat interface

Your agent has access to the same tools and capabilities as that API-server Hermes instance. If the API server is remote, those tools are remote too.

If you need tools to run against your local workspace today, run Hermes locally and point it at a pure LLM provider or pure OpenAI-compatible model proxy (for example vLLM, LiteLLM, Ollama, llama.cpp, OpenAI, OpenRouter, etc.). A future split-runtime mode for "remote brain, local hands" is being tracked in #18715 ↗; it is not the behavior of the current API server.

Configuration Reference

جدول مرجعي. لا تقرأه كله، ابحث عن السطر الذي يخصّك فقط.

Hermes Agent (API server)

VariableDefaultDescription
API_SERVER_ENABLEDfalseEnable the API server
API_SERVER_PORT8642HTTP server port
API_SERVER_HOST127.0.0.1Bind address
API_SERVER_KEY_(required)_Bearer token for auth. Match OPENAI_API_KEY.

Open WebUI

VariableDescription
OPENAI_API_BASE_URLHermes Agent's API URL (include /v1)
OPENAI_API_KEYMust be non-empty. Match your API_SERVER_KEY.

Troubleshooting

فيه تحذير مهم. اقرأه قبل أن تنفّذ أي شيء من هذا القسم. نصّ التحذير من المصدر مذكور أسفل هذا الشرح.

No models appear in the dropdown

  • Check the URL has /v1 suffix: http://host.docker.internal:8642/v1 (not just :8642)
  • Verify the gateway is running: curl http://localhost:8642/health should return {"status": "ok"}
  • Check model listing: curl -H "Authorization: Bearer your-secret-key" http://localhost:8642/v1/models should return a list with hermes-agent
  • Docker networking: From inside Docker, localhost means the container, not your host. Use host.docker.internal or --network=host.
  • Empty Ollama backend shadowing the picker: If you omitted ENABLE_OLLAMA_API=false, Open WebUI shows an empty Ollama section above your Hermes models. Restart the container with -e ENABLE_OLLAMA_API=false or disable Ollama in Admin Settings → Connections.

Connection test passes but no models load

This is almost always the missing /v1 suffix. Open WebUI's connection test is a basic connectivity check — it doesn't verify model listing works.

Response takes a long time

Hermes Agent may be executing multiple tool calls (reading files, running commands, searching the web) before producing its final response. This is normal for complex queries. The response appears all at once when the agent finishes.

"Invalid API key" errors

Make sure your OPENAI_API_KEY in Open WebUI matches the API_SERVER_KEY in Hermes Agent.

Multi-User Setup with Profiles

خطوات عملية بالترتيب. نفّذ خطوة وتأكد أنها نجحت قبل الانتقال للتالية.

To run separate Hermes instances per user — each with their own config, memory, and skills — use profiles. Each profile runs its own API server on a different port and automatically advertises the profile name as the model in Open WebUI.

1. Create profiles and configure API servers

API_SERVER_* are env vars, not YAML config keys, so write them to each profile's .env. Pick ports outside the default-platform range (8644 is the webhook adapter, 8645 is wecom-callback, 8646 is msgraph-webhook), e.g. 8650+:

Shell13 سطرًا
hermes profile create alice
cat >> ~/.hermes/profiles/alice/.env <<EOF
API_SERVER_ENABLED=true
API_SERVER_PORT=8650
API_SERVER_KEY=alice-secret
EOF

hermes profile create bob
cat >> ~/.hermes/profiles/bob/.env <<EOF
API_SERVER_ENABLED=true
API_SERVER_PORT=8651
API_SERVER_KEY=bob-secret
EOF

2. Start each gateway

Shellسطران
hermes -p alice gateway &
hermes -p bob gateway &

3. Add connections in Open WebUI

In Admin Settings → Connections → OpenAI API → Manage, add one connection per profile:

ConnectionURLAPI Key
Alicehttp://host.docker.internal:8650/v1alice-secret
Bobhttp://host.docker.internal:8651/v1bob-secret

The model dropdown will show alice and bob as distinct models. You can assign models to Open WebUI users via the admin panel, giving each user their own isolated Hermes agent.

Linux Docker (no Docker Desktop)

إعدادات تضبطها مرة وتنساها. غيّر واحدًا في كل مرة حتى تعرف أثر كل تغيير. تضبط OPENAI_API_BASE_URL خارج المحادثة، في بيئة التشغيل.

On Linux without Docker Desktop, host.docker.internal doesn't resolve by default. Options:

Shell8 أسطر
# Option 1: Add host mapping
docker run --add-host=host.docker.internal:host-gateway ...

# Option 2: Use host networking
docker run --network=host -e OPENAI_API_BASE_URL=http://localhost:8642/v1 ...

# Option 3: Use Docker bridge IP
docker run -e OPENAI_API_BASE_URL=http://172.17.0.1:8642/v1 ...
اختبار الفهم

5 أسئلة إجاباتها كلها في هذه الصفحة.

كل خيار اسم حقيقي من توثيق Hermes. حتى الخيارات الخاطئة حقيقية، لكنها من صفحات أخرى.

1. في جدول هذا الدرس، ما «Default» المقابل لـ«APISERVERENABLED»؟
2. أي متغير بيئة من التالي يظهر فعليًا في هذا الدرس؟
3. ما التحذير الذي يذكره المصدر في هذا الدرس؟
4. أي عنوان من التالي لا يظهر في هذا الدرس؟
5. أي مفتاح إعداد يظهر في أمثلة هذا الدرس؟