Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

[托管代理] proxy.monkeycode-ai.com 回归:/api/v1/* 全部返回 Caddy catch-all 200 "OK",LLM 链路不可用

オープン
#1,305 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
38/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
活発

調査の方向性

まず、proxy.monkeycode-ai.com の Caddyfile または reverse-proxy 設定を確認し、/api/v1/* と、catch-all の respond "OK" ルールに注目します。chat/completions ルートを、残っている /api/v1/models ルートと比較し、LLM upstream のヘルス状態または登録を調査します。認証済みの chat リクエストが期待される completion レスポンスを返し、未認証のリクエストが拒否され、失敗時に誤解を招く 200 OK が返されなければ完了です。

索引モデルが issue の本文から書いたものです。

説明

环境:https://proxy.monkeycode-ai.com(托管 LLM 代理),客户端 = MonkeyCode 桌面端(ohmyagent 引擎),账号 = 免费档(basic)。

现象(2026-09-19 起观测):

对 https://proxy.monkeycode-ai.com/api/v1/chat/completions 发起 OpenAI 兼容 chat 请求,
无论携带何种鉴权(Bearer oma_* ± X-OhMyAgent-Signature HMAC、完全无鉴权)、
何种方法(GET / POST)、何种路径(/api/v1 根、/api/v1/models),
响应一律为:

HTTP/2 200
content-type: text/plain; charset=utf-8
content-length: 2
server: Caddy

OK

响应体只有 2 字节 OK,无 chat.completion JSON、无 usage 字段、无 SSE chunk。

对照基线(2026-09-17 实测,正常期):

  • 相同端点 + Bearer+HMAC → 200 + 完整 openai-chat.completion(model: om-gpt-5.5-chat,choices[0].message.role=assistant)
  • 无鉴权 → 401 Unauthorized(WWW-Authenticate 头)
  • 即:正常期鉴权是生效的;现在无鉴权也返回 200 "OK",说明请求已不再进入鉴权/LLM 路由,而是落到 Caddy 层的 catch-all 应答。

影响:

  • 所有经托管代理的 chat 调用静默失败(客户端拿到 200 但无内容),难以与成功区分。
  • 计量侧未见扣减(同期 /api/v1/users/wallet 的 balance / daily_token_balance 无变化),与「请求未进 LLM 链路」一致。
  • GET /api/v1/models 返回 405 Method Not Allowed(非 catch-all 200),说明仅部分路由存活。

复现:

POST https://proxy.monkeycode-ai.com/api/v1/chat/completions
Authorization: Bearer ***
Content-Type: application/json

{ "model": "om-gpt-5.5-chat", "max_tokens": 8, "stream": false,
  "messages": [ { "role": "user", "content": "hi" } ] }

预期(正常期):200 + chat.completion JSON。实际:200 "OK"(2 字节)。

建议排查方向:

  1. 检查 proxy.monkeycode-ai.com 的 Caddyfile / 反代配置:/api/v1/* 的 proxy/reverse_proxy 路由是否被移除或被一条 catch-all respond "OK" 覆盖。
  2. 检查 LLM 上游(chat 路由后端)健康状态与注册表;405 的 /models 路由与 200 的 catch-all 并存,指向「部分路由存活」的半迁移/故障状态。
  3. 若为灰度/迁移中间态,建议在代理侧显式返回 503 而非 200 "OK",避免客户端把故障当成功。

观测时间:2026-09-19(UTC+8),持续中。

主要言語
TypeScript
スター
4.9k
フォーク
743
平均マージ
16時間 8分
マージ済み PR(30日)
54

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

chaitin/MonkeyCode のほかの issue

chaitin/MonkeyCode の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。