# yaml-language-server: $schema=https://schema.zeabur.app/template.json
apiVersion: zeabur.com/v1
kind: Template
metadata:
    name: Hermes Agent
spec:
    description: |
        Self-hosted AI agent framework by Nous Research with an OpenAI-compatible API. Features cross-session memory, reusable skill saving, web browsing, and task scheduling. Supports OpenRouter, OpenAI, Anthropic, and custom LLM endpoints.
    coverImage: https://raw.githubusercontent.com/NousResearch/hermes-agent/main/assets/banner.png
    icon: https://raw.githubusercontent.com/NousResearch/hermes-agent/main/landingpage/nous-logo.png
    variables:
        - key: PUBLIC_DOMAIN
          type: DOMAIN
          name: Domain
          description: The domain to access Hermes Agent API.
        - key: OPENROUTER_API_KEY
          type: STRING
          name: OpenRouter API Key
          description: Your OpenRouter API key for LLM access. Get one at openrouter.ai
    tags:
        - AI
        - Tool
    readme: |
        # Hermes Agent

        [Hermes Agent](https://github.com/NousResearch/hermes-agent) is an open-source AI agent framework by Nous Research. It exposes an OpenAI-compatible API with cross-session memory, allowing it to recall context from previous conversations. Completed workflows are saved as reusable skill files. It can browse web pages and run scheduled tasks.

        ## How it works

        This template deploys Hermes Agent in **gateway mode**, which starts an HTTP API server on your Zeabur instance. The API follows the OpenAI chat completions format, so any compatible client can connect to it.

        The agent itself does not run LLM models locally — it forwards requests to external providers (OpenRouter, OpenAI, Anthropic, or any OpenAI-compatible endpoint you configure).

        ## How to use

        ### Option 1: Connect a Chat UI

        Deploy a frontend like [NextChat](https://zeabur.com/templates?q=nextchat) or [Open WebUI](https://zeabur.com/templates?q=open+webui) on Zeabur, then configure it to point to your Hermes Agent:

        - **API Base URL:** `https://<your-domain>`
        - **Model name:** `hermes-agent`
        - **API Key:** leave empty (not required by default)

        ### Option 2: Call the API directly

        ```bash
        # Send a message
        curl https://<your-domain>/v1/chat/completions \
          -H "Content-Type: application/json" \
          -d '{"model": "hermes-agent", "messages": [{"role": "user", "content": "Hello"}]}'

        # List available models
        curl https://<your-domain>/v1/models

        # Health check
        curl https://<your-domain>/health
        ```

        ### Option 3: Connect messaging platforms

        Add bot tokens in **Service > Variables** after deployment:

        - `TELEGRAM_BOT_TOKEN` — Telegram integration
        - `SLACK_BOT_TOKEN` + `SLACK_SIGNING_SECRET` — Slack integration
        - `DISCORD_BOT_TOKEN` — Discord integration

        ## Key features

        - **Cross-session memory** — conversation history is stored locally and searchable across sessions
        - **Skill files** — completed multi-step workflows are saved as reusable skill definitions
        - **Web access** — built-in browser for reading web pages; optional Exa/Firecrawl integration for search
        - **Task scheduling** — cron-based scheduler for recurring tasks
        - **Multi-provider** — supports OpenRouter, OpenAI, Anthropic, and custom OpenAI-compatible endpoints

        ## Configuration

        **Required:** At least one LLM provider API key.

        | Variable | Purpose |
        |----------|---------|
        | `OPENROUTER_API_KEY` | Access multiple models via OpenRouter (recommended for getting started) |
        | `OPENAI_API_KEY` | Use OpenAI models directly |
        | `ANTHROPIC_API_KEY` | Use Anthropic Claude models directly |
        | `LLM_MODEL` | Override the default model selection |
        | `EXA_API_KEY` | Enable Exa web search |
        | `TELEGRAM_BOT_TOKEN` | Enable Telegram bot |

        Set optional variables in Zeabur **Service > Variables** after deployment.

        ## Notes

        - RAM: 1 GB minimum, 2-4 GB recommended. Browser automation (Playwright) requires at least 2 GB. The agent may be terminated by the system if memory is insufficient.
        - First deployment takes a few minutes due to image size (~2.4 GB compressed). Subsequent restarts pull from cache and start in seconds.
        - No GPU needed — the agent calls external LLM APIs over HTTP.
        - All state (memory, skills, config) survives restarts.

        ## License

        MIT — [GitHub](https://github.com/NousResearch/hermes-agent)
    services:
        - name: hermes-agent
          icon: https://raw.githubusercontent.com/NousResearch/hermes-agent/main/landingpage/nous-logo.png
          template: PREBUILT_V2
          spec:
            source:
                image: nousresearch/hermes-agent:latest
                command:
                    - /opt/hermes/docker/entrypoint.sh
                    - gateway
                    - run
            ports:
                - id: web
                  port: 8642
                  type: HTTP
            volumes:
                - id: hermes-data
                  dir: /opt/data
            env:
                API_SERVER_ENABLED:
                    default: "true"
                API_SERVER_HOST:
                    default: 0.0.0.0
                API_SERVER_PORT:
                    default: "8642"
                GATEWAY_ALLOW_ALL_USERS:
                    default: "true"
                HERMES_HOME:
                    default: /opt/data
                OPENROUTER_API_KEY:
                    default: ${OPENROUTER_API_KEY}
            healthCheck:
                type: HTTP
                port: web
                http:
                    path: /health
          domainKey: PUBLIC_DOMAIN
localization:
    es-ES:
        description: |
            Framework de agente IA autoalojado de Nous Research con API compatible con OpenAI. Incluye memoria entre sesiones, guardado de habilidades, navegación web y programación de tareas. Compatible con OpenRouter, OpenAI, Anthropic y endpoints LLM personalizados.
        variables:
            - key: PUBLIC_DOMAIN
              type: STRING
              name: Dominio
              description: El dominio para acceder a la API de Hermes Agent
            - key: OPENROUTER_API_KEY
              type: STRING
              name: Clave API de OpenRouter
              description: Tu clave API de OpenRouter para acceso LLM. Obtén una en openrouter.ai
        readme: |
            # Hermes Agent

            [Hermes Agent](https://github.com/NousResearch/hermes-agent) es un framework de agente IA de código abierto de Nous Research. Proporciona una API compatible con OpenAI con memoria entre sesiones. Los flujos de trabajo completados se guardan como archivos de habilidades reutilizables.

            ## Cómo usar

            ### Opción 1: Conectar una interfaz de chat

            Despliega [NextChat](https://zeabur.com/templates?q=nextchat) o [Open WebUI](https://zeabur.com/templates?q=open+webui) en Zeabur y conéctalo:

            - **API Base URL:** `https://<tu-dominio>`
            - **Nombre del modelo:** `hermes-agent`
            - **API Key:** dejar vacío

            ### Opción 2: Llamar a la API directamente

            ```bash
            curl https://<tu-dominio>/v1/chat/completions \
              -H "Content-Type: application/json" \
              -d '{"model": "hermes-agent", "messages": [{"role": "user", "content": "Hola"}]}'
            ```

            ### Opción 3: Conectar plataformas de mensajería

            Agrega tokens en **Service > Variables** después del despliegue:

            - `TELEGRAM_BOT_TOKEN` — integración con Telegram
            - `SLACK_BOT_TOKEN` + `SLACK_SIGNING_SECRET` — integración con Slack
            - `DISCORD_BOT_TOKEN` — integración con Discord

            ## Configuración

            **Requerido:** Al menos una clave API de un proveedor LLM.

            | Variable | Propósito |
            |----------|-----------|
            | `OPENROUTER_API_KEY` | Acceso a múltiples modelos vía OpenRouter |
            | `OPENAI_API_KEY` | Usar modelos OpenAI directamente |
            | `ANTHROPIC_API_KEY` | Usar modelos Anthropic Claude directamente |
            | `LLM_MODEL` | Cambiar el modelo predeterminado |

            ## Licencia

            MIT — [GitHub](https://github.com/NousResearch/hermes-agent)
    id-ID:
        description: |
            Framework agen AI self-hosted dari Nous Research dengan API kompatibel OpenAI. Dilengkapi memori lintas sesi, penyimpanan skill, browsing web, dan penjadwalan tugas. Mendukung OpenRouter, OpenAI, Anthropic, dan endpoint LLM kustom.
        variables:
            - key: PUBLIC_DOMAIN
              type: STRING
              name: Domain
              description: Domain untuk mengakses API Hermes Agent
            - key: OPENROUTER_API_KEY
              type: STRING
              name: Kunci API OpenRouter
              description: Kunci API OpenRouter untuk akses LLM. Dapatkan di openrouter.ai
        readme: |
            # Hermes Agent

            [Hermes Agent](https://github.com/NousResearch/hermes-agent) adalah framework agen AI open-source dari Nous Research. Menyediakan API kompatibel OpenAI dengan memori lintas sesi. Workflow yang selesai disimpan sebagai file skill yang dapat digunakan kembali.

            ## Cara menggunakan

            ### Opsi 1: Hubungkan UI chat

            Deploy [NextChat](https://zeabur.com/templates?q=nextchat) atau [Open WebUI](https://zeabur.com/templates?q=open+webui) di Zeabur, lalu hubungkan:

            - **API Base URL:** `https://<domain-anda>`
            - **Nama model:** `hermes-agent`
            - **API Key:** kosongkan

            ### Opsi 2: Panggil API langsung

            ```bash
            curl https://<domain-anda>/v1/chat/completions \
              -H "Content-Type: application/json" \
              -d '{"model": "hermes-agent", "messages": [{"role": "user", "content": "Halo"}]}'
            ```

            ### Opsi 3: Hubungkan platform messaging

            Tambahkan token di **Service > Variables** setelah deploy:

            - `TELEGRAM_BOT_TOKEN` — integrasi Telegram
            - `SLACK_BOT_TOKEN` + `SLACK_SIGNING_SECRET` — integrasi Slack
            - `DISCORD_BOT_TOKEN` — integrasi Discord

            ## Konfigurasi

            **Wajib:** Minimal satu kunci API provider LLM.

            | Variabel | Kegunaan |
            |----------|----------|
            | `OPENROUTER_API_KEY` | Akses berbagai model via OpenRouter |
            | `OPENAI_API_KEY` | Gunakan model OpenAI langsung |
            | `ANTHROPIC_API_KEY` | Gunakan model Anthropic Claude langsung |
            | `LLM_MODEL` | Ubah model default |

            ## Lisensi

            MIT — [GitHub](https://github.com/NousResearch/hermes-agent)
    ja-JP:
        description: |
            Nous Researchによるセルフホスト型AIエージェントフレームワーク。OpenAI互換APIを提供し、セッション間メモリ、スキル保存、Webブラウジング、タスクスケジューリング機能を備えます。OpenRouter、OpenAI、Anthropic、カスタムLLMエンドポイントに対応。
        variables:
            - key: PUBLIC_DOMAIN
              type: STRING
              name: ドメイン
              description: Hermes Agent APIにアクセスするためのドメイン
            - key: OPENROUTER_API_KEY
              type: STRING
              name: OpenRouter APIキー
              description: LLMアクセス用のOpenRouter APIキー。openrouter.aiで取得
        readme: |
            # Hermes Agent

            [Hermes Agent](https://github.com/NousResearch/hermes-agent)はNous Researchによるオープンソースのエージェントフレームワークです。OpenAI互換APIを提供し、セッション間のメモリ機能により過去の会話を参照できます。完了したワークフローは再利用可能なスキルファイルとして保存されます。Webページの閲覧やタスクスケジューリングも可能です。

            ## 使い方

            ### 方法1：チャットUIを接続

            Zeaburで[NextChat](https://zeabur.com/templates?q=nextchat)や[Open WebUI](https://zeabur.com/templates?q=open+webui)をデプロイし、Hermes Agentに接続：

            - **API Base URL：** `https://<your-domain>`
            - **モデル名：** `hermes-agent`
            - **APIキー：** 空欄（デフォルトでは不要）

            ### 方法2：APIを直接呼び出す

            ```bash
            curl https://<your-domain>/v1/chat/completions \
              -H "Content-Type: application/json" \
              -d '{"model": "hermes-agent", "messages": [{"role": "user", "content": "Hello"}]}'
            ```

            ### 方法3：メッセージングプラットフォームを接続

            デプロイ後に**Service > Variables**でトークンを追加：

            - `TELEGRAM_BOT_TOKEN` — Telegram連携
            - `SLACK_BOT_TOKEN` + `SLACK_SIGNING_SECRET` — Slack連携
            - `DISCORD_BOT_TOKEN` — Discord連携

            ## 主な機能

            - **セッション間メモリ** — 会話履歴をローカルに保存し、セッション間で検索可能
            - **スキルファイル** — 完了したワークフローを再利用可能なスキル定義として保存
            - **Web閲覧** — 内蔵ブラウザでWebページを読み取り可能
            - **タスクスケジューリング** — cronベースの定期タスク設定
            - **マルチプロバイダー** — OpenRouter、OpenAI、Anthropic、カスタムOpenAI互換エンドポイントに対応

            ## 設定

            **必須：** LLMプロバイダーのAPIキーが少なくとも1つ必要。

            | 変数 | 用途 |
            |------|------|
            | `OPENROUTER_API_KEY` | OpenRouter経由で複数モデルにアクセス |
            | `OPENAI_API_KEY` | OpenAIモデルを直接使用 |
            | `ANTHROPIC_API_KEY` | Anthropic Claudeモデルを直接使用 |
            | `LLM_MODEL` | デフォルトモデルを変更 |

            ## ライセンス

            MIT — [GitHub](https://github.com/NousResearch/hermes-agent)
    ko-KR:
        description: |
            Nous Research의 셀프호스팅 AI 에이전트 프레임워크. OpenAI 호환 API를 제공하며 세션 간 메모리, 스킬 저장, 웹 브라우징, 작업 스케줄링을 지원합니다. OpenRouter, OpenAI, Anthropic 및 커스텀 LLM 엔드포인트 호환.
        variables:
            - key: PUBLIC_DOMAIN
              type: STRING
              name: 도메인
              description: Hermes Agent API에 접속할 도메인
            - key: OPENROUTER_API_KEY
              type: STRING
              name: OpenRouter API 키
              description: LLM 액세스를 위한 OpenRouter API 키. openrouter.ai에서 발급
        readme: |
            # Hermes Agent

            [Hermes Agent](https://github.com/NousResearch/hermes-agent)는 Nous Research의 오픈소스 AI 에이전트 프레임워크입니다. OpenAI 호환 API를 제공하며 세션 간 메모리로 이전 대화를 참조할 수 있습니다. 완료된 워크플로우는 재사용 가능한 스킬 파일로 저장됩니다.

            ## 사용 방법

            ### 방법 1: 채팅 UI 연결

            Zeabur에서 [NextChat](https://zeabur.com/templates?q=nextchat) 또는 [Open WebUI](https://zeabur.com/templates?q=open+webui)를 배포하고 Hermes Agent에 연결:

            - **API Base URL:** `https://<your-domain>`
            - **모델 이름:** `hermes-agent`
            - **API Key:** 비워두기 (기본적으로 불필요)

            ### 방법 2: API 직접 호출

            ```bash
            curl https://<your-domain>/v1/chat/completions \
              -H "Content-Type: application/json" \
              -d '{"model": "hermes-agent", "messages": [{"role": "user", "content": "Hello"}]}'
            ```

            ### 방법 3: 메시징 플랫폼 연결

            배포 후 **Service > Variables**에서 봇 토큰 추가:

            - `TELEGRAM_BOT_TOKEN` — Telegram 연동
            - `SLACK_BOT_TOKEN` + `SLACK_SIGNING_SECRET` — Slack 연동
            - `DISCORD_BOT_TOKEN` — Discord 연동

            ## 주요 기능

            - **세션 간 메모리** — 대화 기록을 로컬에 저장하고 세션 간 검색 가능
            - **스킬 파일** — 완료된 다단계 워크플로우를 재사용 가능한 스킬로 저장
            - **웹 접근** — 내장 브라우저로 웹페이지 읽기 가능
            - **작업 스케줄링** — cron 기반 반복 작업 설정
            - **멀티 프로바이더** — OpenRouter, OpenAI, Anthropic, 커스텀 엔드포인트 지원

            ## 설정

            **필수:** LLM 프로바이더 API 키 최소 1개.

            | 변수 | 용도 |
            |------|------|
            | `OPENROUTER_API_KEY` | OpenRouter로 다양한 모델 액세스 |
            | `OPENAI_API_KEY` | OpenAI 모델 직접 사용 |
            | `ANTHROPIC_API_KEY` | Anthropic Claude 모델 직접 사용 |
            | `LLM_MODEL` | 기본 모델 변경 |

            ## 라이선스

            MIT — [GitHub](https://github.com/NousResearch/hermes-agent)
    th-TH:
        description: |
            เฟรมเวิร์กเอเจนต์ AI แบบ self-hosted จาก Nous Research พร้อม API ที่เข้ากันได้กับ OpenAI มีหน่วยความจำข้ามเซสชัน การบันทึกทักษะ การเรียกดูเว็บ และการตั้งเวลางาน รองรับ OpenRouter, OpenAI, Anthropic และ endpoint LLM แบบกำหนดเอง
        variables:
            - key: PUBLIC_DOMAIN
              type: STRING
              name: โดเมน
              description: โดเมนสำหรับเข้าถึง API ของ Hermes Agent
            - key: OPENROUTER_API_KEY
              type: STRING
              name: คีย์ API ของ OpenRouter
              description: คีย์ API ของ OpenRouter สำหรับเข้าถึง LLM รับได้ที่ openrouter.ai
        readme: |
            # Hermes Agent

            [Hermes Agent](https://github.com/NousResearch/hermes-agent) เป็นเฟรมเวิร์กเอเจนต์ AI โอเพนซอร์สจาก Nous Research ให้บริการ API ที่เข้ากันได้กับ OpenAI พร้อมหน่วยความจำข้ามเซสชัน เวิร์กโฟลว์ที่เสร็จแล้วจะถูกบันทึกเป็นไฟล์ทักษะที่นำกลับมาใช้ได้

            ## วิธีใช้งาน

            ### ตัวเลือก 1: เชื่อมต่อ UI แชท

            ติดตั้ง [NextChat](https://zeabur.com/templates?q=nextchat) หรือ [Open WebUI](https://zeabur.com/templates?q=open+webui) บน Zeabur แล้วเชื่อมต่อ:

            - **API Base URL:** `https://<your-domain>`
            - **ชื่อโมเดล:** `hermes-agent`
            - **API Key:** เว้นว่าง

            ### ตัวเลือก 2: เรียก API โดยตรง

            ```bash
            curl https://<your-domain>/v1/chat/completions \
              -H "Content-Type: application/json" \
              -d '{"model": "hermes-agent", "messages": [{"role": "user", "content": "สวัสดี"}]}'
            ```

            ### ตัวเลือก 3: เชื่อมต่อแพลตฟอร์มแชท

            เพิ่ม token ใน **Service > Variables** หลังจากติดตั้ง:

            - `TELEGRAM_BOT_TOKEN` — เชื่อมต่อ Telegram
            - `SLACK_BOT_TOKEN` + `SLACK_SIGNING_SECRET` — เชื่อมต่อ Slack
            - `DISCORD_BOT_TOKEN` — เชื่อมต่อ Discord

            ## การตั้งค่า

            **จำเป็น:** คีย์ API ของผู้ให้บริการ LLM อย่างน้อย 1 ตัว

            | ตัวแปร | วัตถุประสงค์ |
            |--------|------------|
            | `OPENROUTER_API_KEY` | เข้าถึงหลายโมเดลผ่าน OpenRouter |
            | `OPENAI_API_KEY` | ใช้โมเดล OpenAI โดยตรง |
            | `ANTHROPIC_API_KEY` | ใช้โมเดล Anthropic Claude โดยตรง |
            | `LLM_MODEL` | เปลี่ยนโมเดลเริ่มต้น |

            ## สัญญาอนุญาต

            MIT — [GitHub](https://github.com/NousResearch/hermes-agent)
    zh-CN:
        description: |
            Nous Research 开源的自托管 AI 代理框架，提供 OpenAI 兼容 API。具备跨对话记忆、技能存储、网页浏览与调度功能，支持 OpenRouter、OpenAI、Anthropic 及自定义 LLM 端点。
        variables:
            - key: PUBLIC_DOMAIN
              type: STRING
              name: 域名
              description: 访问 Hermes Agent API 的域名
            - key: OPENROUTER_API_KEY
              type: STRING
              name: OpenRouter API 密钥
              description: 用于 LLM 访问的 OpenRouter API 密钥，在 openrouter.ai 获取
        readme: |
            # Hermes Agent

            [Hermes Agent](https://github.com/NousResearch/hermes-agent) 是 Nous Research 开源的 AI 代理框架。提供 OpenAI 兼容 API，具备跨对话记忆功能。完成的工作流程会存为可重用的技能文件。内建网页浏览及调度任务功能。

            ## 运作方式

            此模板以 **gateway 模式**部署 Hermes Agent，在你的 Zeabur 实例上启动 HTTP API 服务器。API 遵循 OpenAI chat completions 格式，任何兼容的客户端都能连接。

            代理本身不在本地运行 LLM 模型 — 它将请求转发到外部供应商（OpenRouter、OpenAI、Anthropic 或你配置的任何 OpenAI 兼容端点）。

            ## 使用方式

            ### 方式 1：连接聊天界面

            在 Zeabur 部署 [NextChat](https://zeabur.com/templates?q=nextchat) 或 [Open WebUI](https://zeabur.com/templates?q=open+webui)，配置指向你的 Hermes Agent：

            - **API Base URL：** `https://<your-domain>`
            - **模型名称：** `hermes-agent`
            - **API Key：** 留空（默认不需要）

            ### 方式 2：直接调用 API

            ```bash
            curl https://<your-domain>/v1/chat/completions \
              -H "Content-Type: application/json" \
              -d '{"model": "hermes-agent", "messages": [{"role": "user", "content": "你好"}]}'
            ```

            ### 方式 3：连接通讯平台

            部署后在 **Service > Variables** 中添加 bot token：

            - `TELEGRAM_BOT_TOKEN` — Telegram 集成
            - `SLACK_BOT_TOKEN` + `SLACK_SIGNING_SECRET` — Slack 集成
            - `DISCORD_BOT_TOKEN` — Discord 集成

            ## 主要功能

            - **跨对话记忆** — 对话记录存储在本地，可跨 session 搜索
            - **技能文件** — 完成的多步骤工作流程存为可重用的技能定义
            - **网页访问** — 内建浏览器可读取网页；可选配 Exa/Firecrawl 搜索集成
            - **调度任务** — 基于 cron 的调度器，可设定重复性任务
            - **多供应商** — 支持 OpenRouter、OpenAI、Anthropic 及自定义 OpenAI 兼容端点

            ## 配置

            **必要：** 至少一组 LLM 供应商 API 密钥。

            | 变量 | 用途 |
            |------|------|
            | `OPENROUTER_API_KEY` | 通过 OpenRouter 访问多种模型（建议入门使用） |
            | `OPENAI_API_KEY` | 直接使用 OpenAI 模型 |
            | `ANTHROPIC_API_KEY` | 直接使用 Anthropic Claude 模型 |
            | `LLM_MODEL` | 覆盖默认模型选择 |
            | `EXA_API_KEY` | 启用 Exa 网页搜索 |
            | `TELEGRAM_BOT_TOKEN` | 启用 Telegram 机器人 |

            可选变量请在部署后于 Zeabur **Service > Variables** 中设置。

            ## 注意事项

            - RAM：最低 1 GB，建议 2-4 GB。浏览器自动化（Playwright）需要至少 2 GB。内存不足时代理可能会被系统终止。
            - 首次部署需要几分钟（镜像约 2.4 GB 压缩），后续重启从缓存拉取，几秒内启动。
            - 不需要 GPU — 代理通过 HTTP 调用外部 LLM API。
            - 所有状态（记忆、技能、配置）在重启后保留。

            ## 授权

            MIT — [GitHub](https://github.com/NousResearch/hermes-agent)
    zh-TW:
        description: |
            Nous Research 開源的自架 AI 代理框架，提供 OpenAI 相容 API。具備跨對話記憶、技能儲存、網頁瀏覽與排程功能，支援 OpenRouter、OpenAI、Anthropic 及自訂 LLM 端點。
        variables:
            - key: PUBLIC_DOMAIN
              type: STRING
              name: 網域
              description: 存取 Hermes Agent API 的網域
            - key: OPENROUTER_API_KEY
              type: STRING
              name: OpenRouter API 金鑰
              description: 用於 LLM 存取的 OpenRouter API 金鑰，在 openrouter.ai 取得
        readme: |
            # Hermes Agent

            [Hermes Agent](https://github.com/NousResearch/hermes-agent) 是 Nous Research 開源的 AI 代理框架。提供 OpenAI 相容 API，具備跨對話記憶功能，可回顧過去的對話內容。完成的工作流程會存為可重用的技能檔案。內建網頁瀏覽及排程任務功能。

            ## 運作方式

            此模板以 **gateway 模式**部署 Hermes Agent，在你的 Zeabur 實例上啟動 HTTP API 伺服器。API 遵循 OpenAI chat completions 格式，任何相容的客戶端都能連接。

            代理本身不在本地運行 LLM 模型 — 它將請求轉發到外部供應商（OpenRouter、OpenAI、Anthropic 或你設定的任何 OpenAI 相容端點）。

            ## 使用方式

            ### 方式 1：連接聊天介面

            在 Zeabur 部署 [NextChat](https://zeabur.com/templates?q=nextchat) 或 [Open WebUI](https://zeabur.com/templates?q=open+webui) 等前端，設定指向你的 Hermes Agent：

            - **API Base URL：** `https://<your-domain>`
            - **模型名稱：** `hermes-agent`
            - **API Key：** 留空（預設不需要）

            ### 方式 2：直接呼叫 API

            ```bash
            # 發送訊息
            curl https://<your-domain>/v1/chat/completions \
              -H "Content-Type: application/json" \
              -d '{"model": "hermes-agent", "messages": [{"role": "user", "content": "你好"}]}'

            # 列出可用模型
            curl https://<your-domain>/v1/models

            # 健康檢查
            curl https://<your-domain>/health
            ```

            ### 方式 3：連接通訊平台

            部署後在 **Service > Variables** 中新增 bot token：

            - `TELEGRAM_BOT_TOKEN` — Telegram 整合
            - `SLACK_BOT_TOKEN` + `SLACK_SIGNING_SECRET` — Slack 整合
            - `DISCORD_BOT_TOKEN` — Discord 整合

            ## 主要功能

            - **跨對話記憶** — 對話紀錄儲存在本地，可跨 session 搜尋
            - **技能檔案** — 完成的多步驟工作流程存為可重用的技能定義
            - **網頁存取** — 內建瀏覽器可讀取網頁；可選配 Exa/Firecrawl 搜尋整合
            - **排程任務** — 基於 cron 的排程器，可設定重複性任務
            - **多供應商** — 支援 OpenRouter、OpenAI、Anthropic 及自訂 OpenAI 相容端點

            ## 設定

            **必要：** 至少一組 LLM 供應商 API 金鑰。

            | 變數 | 用途 |
            |------|------|
            | `OPENROUTER_API_KEY` | 透過 OpenRouter 存取多種模型（建議入門使用） |
            | `OPENAI_API_KEY` | 直接使用 OpenAI 模型 |
            | `ANTHROPIC_API_KEY` | 直接使用 Anthropic Claude 模型 |
            | `LLM_MODEL` | 覆寫預設模型選擇 |
            | `EXA_API_KEY` | 啟用 Exa 網頁搜尋 |
            | `TELEGRAM_BOT_TOKEN` | 啟用 Telegram 機器人 |

            選用變數請在部署後於 Zeabur **Service > Variables** 中設定。

            ## 注意事項

            - RAM：最低 1 GB，建議 2-4 GB。瀏覽器自動化（Playwright）需要至少 2 GB。記憶體不足時代理可能會被系統終止。
            - 首次部署需要幾分鐘（映像檔約 2.4 GB 壓縮），後續重啟從快取拉取，幾秒內啟動。
            - 不需要 GPU — 代理透過 HTTP 呼叫外部 LLM API。
            - 所有狀態（記憶、技能、設定）在重啟後保留。

            ## 授權

            MIT — [GitHub](https://github.com/NousResearch/hermes-agent)
