mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-04-29 15:31:38 +08:00
Salvaged from PR #956 (teknium1) onto current main. Adds an OpenAI-compatible HTTP server as a new gateway platform adapter. Any frontend that speaks the OpenAI format — Open WebUI, LobeChat, LibreChat, AnythingLLM, NextChat, ChatBox, etc. — can connect to hermes-agent by pointing at http://localhost:8642/v1. Endpoints: - POST /v1/chat/completions — stateless chat (full conversation per request) - POST /v1/responses — stateful via previous_response_id or named conversations - GET/DELETE /v1/responses/{id} — retrieve/delete stored responses - GET /v1/models — model discovery - GET /health — health check Key features: - Real SSE streaming via stream_delta_callback - Responses API with server-side conversation state (in-memory LRU, max 100) - Named conversations via 'conversation' parameter - System prompt layering (frontend prompts add to core agent prompt) - Bearer token auth (optional, via HTTP_SERVER_KEY) - CORS support for browser-based frontends - Binds to 127.0.0.1 by default (secure) - Uses aiohttp (existing dependency, no new deps) Files: - gateway/platforms/http_server.py — adapter implementation - gateway/config.py — Platform.HTTP_SERVER enum + env var overrides - gateway/run.py — adapter factory branch - toolsets.py — hermes-http_server toolset - hermes_cli/config.py — setup env vars - .env.example — HTTP server env vars - tests/gateway/test_http_server.py — 72 tests - website/docs/ — HTTP server guide, Open WebUI integration guide Closes #956