HermesエージェントAPIサーバーは401やCORSを報告しますが、通常は同じ問題ではありません。 401 は正しいAuthorization: Bearer ...を持ってこないという意味です。 CORS はブラウザが直接Hermesを呼び出す場合にのみ処理すればよい。 Open WebUIのようなサーバーサイドドッキングの場合、公式ドキュメントにはCORSは一般的に不要と明記されています。
まずは自分がどんな繋がりを持っているのかを見極めてください
- Open WebUI / LibreChat / LobeChat:ほとんどはサーバーサイドのHermesへのリクエストで、ベースURLとベアラートークンがペアリングされていれば、通常
API_SERVER_CORS_ORIGINSを必要としません。 - 例えば、fetchのようなホワイトリスト:ブラウザで自分のウェブページに直接接続するもの
API_SERVER_CORS_ORIGINS=http://localhost:3000。
最速調査手順
- 「
API_SERVER_ENABLED=trueとAPI_SERVER_KEYが整っているか確認してください。」 - まずは公式の例
curlを使ってhttp://localhost:8642/v1/chat/completionsをリクエストし、その後フロントエンドをキューに入れてください。 - ブラウザがエラーを報告したら、その
API_SERVER_CORS_ORIGINSitを補い返し、そもそもホストを0.0.0.0に縛らないほうがいいです。 - パブリックアクセスに切り替える場合は、トークンを保持し、CORSホワイトリストを絞り込むようにしてください。
一言で言えば、401はまずトークンを確認し、CORSはまずそれがブラウザに直接接続されているかどうかを確認します。 Open WebUIとフェッチエラーを混同しないでください。
公式オープンソースアドレス:https://github.com/NousResearch/hermes-agent; 公式文書登録:https://hermes-agent.nousresearch.com/。