Skip to content
Closed
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 9 additions & 5 deletions docs-site/src/content/docs/guides/sidecars.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,10 @@ persisted legacy `gpt-5.4-mini` value to Luna. If the `visionSidecar.model` fiel
the vision execution path still has a `gpt-5.4-mini` code fallback.

- Images can come from user, developer, and tool-result messages, including Codex's `view_image`.
- Each image is sent to the configured native vision model with `reasoning.effort: "low"`; its
description replaces the image part inline.
- On the OpenAI path (ChatGPT-login passthrough), each image is sent to the configured vision model
over the Responses endpoint with the selected `reasoning.effort` (`low` by default), and its
description replaces the image part inline. The Anthropic path uses the Messages endpoint with its
own thinking-budget mapping and ignores this OpenAI-specific setting.
Comment thread
coderabbitai[bot] marked this conversation as resolved.
- Descriptions run with bounded concurrency (3 at a time, input order preserved). User context sent
to the describer is capped at 800 characters, and each injected description is capped at 2,000
characters. The request does not send `max_output_tokens`, which the ChatGPT backend rejects.
Expand All @@ -90,14 +92,16 @@ the vision execution path still has a `gpt-5.4-mini` code fallback.
available, the raw image is stripped rather than forwarded to a text-only backend.
- `maxDescriptionsPerTurn` (default 8) limits new descriptions per main-model turn. Cache hits and
same-turn duplicates do not consume it. Successful `data:` image descriptions are cached by
backend, model, detail, image bytes, and message context; mutable `https:` images are not cached.
backend, model, reasoning effort, detail, image bytes, and message context; mutable `https:` images
are not cached.

```json
{
"visionSidecar": {
"enabled": true,
"backend": "anthropic",
"model": "claude-sonnet-5",
"backend": "openai",
"model": "gpt-5.6-luna",
"reasoning": "medium",
"maxDescriptionsPerTurn": 8,
"timeoutMs": 45000
}
Expand Down
13 changes: 8 additions & 5 deletions docs-site/src/content/docs/ja/guides/sidecars.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,10 @@ stall は全体生成 timeout ではありません。SSE 開始前の失敗は

- 画像はユーザー、developer、ツール結果メッセージから来ます。Codex の `view_image` 結果も
含まれます。
- 各画像は設定されたネイティブビジョンモデルに `reasoning.effort: "low"` で渡され、説明が画像
部分をインラインに差し替えます。
- OpenAI パス(ChatGPT ログインパススルー)では、各画像は選択した `reasoning.effort`(デフォルト
`low`)付きで Responses エンドポイント経由で設定済みのビジョンモデルに送信され、説明が画像部分
をインラインで置き換えます。Anthropic パスは Messages エンドポイントを使い、独自の思考予算
マッピングで動作し、この OpenAI 固有の設定を無視します。
- 説明は一度に 3 件並列処理し入力順序を維持します。説明モデルに渡すユーザー文脥は
800 文字、注入する画像説明は 1 枚あたり 2,000 文字に制限します。ChatGPT バックエンドが拒否する
`max_output_tokens` は送信しません。
Expand All @@ -89,14 +91,15 @@ stall は全体生成 timeout ではありません。SSE 開始前の失敗は
テキスト専用バックエンドに元画像を送らず削除します。
- `maxDescriptionsPerTurn`(デフォルト 8)はメインモデル 1 ターンで新規実行する説明数を制限します。キャッシュ
ヒットと同じターンの重複要求は限度を消費しません。成功した `data:` 画像説明はバックエンド、モデル、
detail、画像バイト、メッセージ文脈を基準にキャッシュし、変わり得る `https:` 画像はキャッシュしません。
推論負荷、detail、画像バイト、メッセージ文脈を基準にキャッシュし、変わり得る `https:` 画像はキャッシュしません。

```json
{
"visionSidecar": {
"enabled": true,
"backend": "anthropic",
"model": "claude-sonnet-5",
"backend": "openai",
"model": "gpt-5.6-luna",
"reasoning": "medium",
"maxDescriptionsPerTurn": 8,
"timeoutMs": 45000
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -144,9 +144,10 @@ OpenAI バックエンドには、ChatGPT ログインと有効な ChatGPT `forw
| `enabled?` | `boolean` |使用可能な場合はオン |マスターイメージと説明のスイッチ。 |
| `backend?` | `"openai" \| "anthropic"` |自動 | Web 検索と同じ、明示的優先、人間認証情報を意識した選択。 |
| `model?` | `string` |バックエンド依存 | OpenAI の場合は `gpt-5.4-mini`、Anthropic の場合は `claude-sonnet-5`。 |
| `reasoning?` | `"low" \| "medium" \| "high" \| "xhigh" \| "max"` | `"low"` | OpenAI Responses の推論負荷。Anthropic は無視します。 |
Comment thread
coderabbitai[bot] marked this conversation as resolved.
| `maxDescriptionsPerTurn?` | `number` | `8` |新しい説明のキャッシュミスはメインターンごとに許可されます。 `0` は通話を無効にします。無効な値にはデフォルトが使用されます。 |
| `timeoutMs?` | `number` | `45000` |サイドカーのフェッチタイムアウト。 |

Vision は、プロバイダーの `noVisionModels` のモデルに送信された画像に対してのみアクティブになります。 OpenAI には、検索と同じログイン/転送要件があります。明示的に選択された Anthropic は、使用可能な認証情報がないと失敗します。成功した `data:` 記述では、バックエンド、モデル、詳細、画像バイト、および正規化されたメッセージ コンテキストをキーとした境界付きキャッシュが使用されます。ヒットと同じターンの重複は制限を消費しません。リモート `https:` イメージと失敗した説明、または空の説明はキャッシュされません。
対応するレベルは、上流プロバイダーの能力と選択したモデルが公表する推論ラダーによって制限されます。 Vision は、プロバイダーの `noVisionModels` のモデルに送信された画像に対してのみアクティブになります。 OpenAI には、検索と同じログイン/転送要件があります。明示的に選択された Anthropic は、使用可能な認証情報がないと失敗します。成功した `data:` 記述では、バックエンド、モデル、推論負荷、詳細、画像バイト、および正規化されたメッセージ コンテキストをキーとした境界付きキャッシュが使用されます。ヒットと同じターンの重複は制限を消費しません。リモート `https:` イメージと失敗した説明、または空の説明はキャッシュされません。

Anthropic OAuth サイドカーは、opencodex の既存のクロード コード OAuth フィンガープリントを再利用します。対象のアカウントとワークロードをソークテストします。
13 changes: 8 additions & 5 deletions docs-site/src/content/docs/ko/guides/sidecars.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,10 @@ stall은 전체 생성 timeout이 아닙니다. SSE가 시작되기 전 실패

- 이미지는 사용자, developer, 도구 결과 메시지에서 올 수 있습니다. Codex의 `view_image` 결과도
포함됩니다.
- 각 이미지는 설정된 네이티브 비전 모델에 `reasoning.effort: "low"`로 전달되고, 설명이 이미지
부분을 인라인으로 대체합니다.
- OpenAI 경로(ChatGPT 로그인 패스스루)에서는 각 이미지가 선택한 `reasoning.effort`(기본값
`low`)와 함께 Responses 엔드포인트로 설정된 비전 모델에 전송되고, 설명이 이미지 부분을 인라인으로
대체합니다. Anthropic 경로는 Messages 엔드포인트와 자체 thinking 예산 매핑을 사용하며 이
OpenAI 전용 설정을 무시합니다.
- 설명은 한 번에 3개씩 병렬 처리하며 입력 순서를 유지합니다. 설명 모델에 전달하는 사용자 문맥은
800자, 주입하는 이미지 설명은 장당 2,000자로 제한합니다. ChatGPT 백엔드가 거부하는
`max_output_tokens`는 보내지 않습니다.
Expand All @@ -90,15 +92,16 @@ stall은 전체 생성 timeout이 아닙니다. SSE가 시작되기 전 실패
없으면 텍스트 전용 백엔드에 원본 이미지를 보내지 않고 제거합니다.
- `maxDescriptionsPerTurn`(기본값 8)은 메인 모델 한 턴에서 새로 실행할 설명 수를 제한합니다. 캐시
적중과 같은 턴의 중복 요청은 한도를 쓰지 않습니다. 성공한 `data:` 이미지 설명은 백엔드, 모델,
detail, 이미지 바이트, 메시지 문맥을 기준으로 캐시하며, 바뀔 수 있는 `https:` 이미지는 캐시하지
추론 강도, detail, 이미지 바이트, 메시지 문맥을 기준으로 캐시하며, 바뀔 수 있는 `https:` 이미지는 캐시하지
않습니다.

```json
{
"visionSidecar": {
"enabled": true,
"backend": "anthropic",
"model": "claude-sonnet-5",
"backend": "openai",
"model": "gpt-5.6-luna",
"reasoning": "medium",
"maxDescriptionsPerTurn": 8,
"timeoutMs": 45000
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -144,9 +144,10 @@ OpenAI 백엔드는 ChatGPT 로그인과 활성화된 ChatGPT `forward` provider
| `enabled?` | `boolean` | on when usable | 주 이미지 설명 스위치입니다. |
| `backend?` | `"openai" \| "anthropic"` | auto | web search와 같은, 명시값 우선 및 Anthropic 자격 증명 인식 선택 방식입니다. |
| `model?` | `string` | backend-dependent | OpenAI는 `gpt-5.4-mini`, Anthropic은 `claude-sonnet-5`입니다. |
| `reasoning?` | `"low" \| "medium" \| "high" \| "xhigh" \| "max"` | `"low"` | OpenAI Responses 추론 강도입니다. Anthropic은 무시합니다. |
| `maxDescriptionsPerTurn?` | `number` | `8` | 메인 턴당 허용되는 새 설명 캐시 미스 수입니다. `0`이면 호출이 비활성화되며, 잘못된 값은 기본값을 사용합니다. |
| `timeoutMs?` | `number` | `45000` | 사이드카 fetch 제한 시간입니다. |

Vision은 provider의 `noVisionModels`에 속한 모델로 보낸 이미지에만 활성화됩니다. OpenAI는 검색과 같은 로그인/forward 요건을 갖고 있으며, 명시적으로 선택한 Anthropic은 사용할 수 있는 자격 증명이 없으면 닫힌 상태로 실패합니다. 성공한 `data:` 설명은 backend, model, detail, image bytes, 그리고 정규화된 메시지 컨텍스트를 키로 하는 bounded cache를 사용합니다. 히트와 같은 턴의 중복은 한도를 소모하지 않습니다. 원격 `https:` 이미지와 실패했거나 비어 있는 설명은 캐시하지 않습니다.
지원되는 수준은 업스트림 제공자의 역량과 선택한 모델이 공개한 추론 사다리에 따라 제한됩니다. Vision은 provider의 `noVisionModels`에 속한 모델로 보낸 이미지에만 활성화됩니다. OpenAI는 검색과 같은 로그인/forward 요건을 갖고 있으며, 명시적으로 선택한 Anthropic은 사용할 수 있는 자격 증명이 없으면 닫힌 상태로 실패합니다. 성공한 `data:` 설명은 backend, model, reasoning effort, detail, image bytes, 그리고 정규화된 메시지 컨텍스트를 키로 하는 bounded cache를 사용합니다. 히트와 같은 턴의 중복은 한도를 소모하지 않습니다. 원격 `https:` 이미지와 실패했거나 비어 있는 설명은 캐시하지 않습니다.

Anthropic OAuth 사이드카는 opencodex의 기존 Claude Code OAuth fingerprint를 재사용합니다. 의도한 계정과 워크로드로 소크 테스트를 수행합니다.
Original file line number Diff line number Diff line change
Expand Up @@ -176,12 +176,14 @@ an inactivity guard, not a total generation deadline.
| `enabled?` | `boolean` | on when usable | Master image-description switch. |
| `backend?` | `"openai" \| "anthropic"` | auto | Same explicit-first, Anthropic-credential-aware selection as web search. |
| `model?` | `string` | backend-dependent | `gpt-5.4-mini` for OpenAI or `claude-sonnet-5` for Anthropic. |
| `reasoning?` | `"low" \| "medium" \| "high" \| "xhigh" \| "max"` | `"low"` | OpenAI Responses reasoning effort. Anthropic ignores it. |
| `maxDescriptionsPerTurn?` | `number` | `8` | New description cache misses admitted per main turn. `0` disables calls; invalid values use default. |
| `timeoutMs?` | `number` | `45000` | Sidecar fetch timeout. |

Vision activates only for images sent to a model in its provider's `noVisionModels`. OpenAI has the
Supported levels are gated by the upstream provider's capabilities and the selected model's
advertised reasoning ladder. Vision activates only for images sent to a model in its provider's `noVisionModels`. OpenAI has the
same login/forward requirements as search; explicitly selected Anthropic fails closed without a usable
credential. Successful `data:` descriptions use a bounded cache keyed by backend, model, detail,
credential. Successful `data:` descriptions use a bounded cache keyed by backend, model, reasoning effort, detail,
image bytes, and normalized message context. Hits and same-turn duplicates do not consume the limit.
Remote `https:` images and failed or empty descriptions are not cached.

Expand Down
13 changes: 8 additions & 5 deletions docs-site/src/content/docs/ru/guides/sidecars.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,10 @@ SSE-событие `response.failed`.

- Изображения могут приходить из сообщений пользователя, разработчика и результатов инструментов,
включая `view_image` из Codex.
- Каждое изображение отправляется в настроенную нативную vision-модель с
`reasoning.effort: "low"`; полученное описание заменяет часть с изображением на месте.
- На пути OpenAI (passthrough с логином ChatGPT) каждое изображение отправляется в настроенную
vision-модель через endpoint Responses с выбранным `reasoning.effort` (по умолчанию `low`), и
полученное описание заменяет часть с изображением на месте. Путь Anthropic использует endpoint
Messages со своим mapping'ом thinking-бюджета и игнорирует эту специфичную для OpenAI настройку.
- Описания выполняются с ограниченной параллельностью (по 3 одновременно, порядок входа
сохраняется). Пользовательский контекст, передаваемый описывающей модели, ограничен 800
символами, а каждое внедряемое описание — 2 000 символами. Запрос не отправляет
Expand All @@ -102,15 +104,16 @@ SSE-событие `response.failed`.
недоступен, исходное изображение удаляется, а не пересылается текстовому бэкенду.
- `maxDescriptionsPerTurn` (по умолчанию 8) ограничивает число новых описаний за один ход основной
модели. Попадания в кэш и дубликаты в рамках того же хода лимит не расходуют. Успешные описания
`data:`-изображений кэшируются по бэкенду, модели, детализации, байтам изображения и контексту
`data:`-изображений кэшируются по бэкенду, модели, уровню рассуждений, детализации, байтам изображения и контексту
сообщения; изменяемые `https:`-изображения не кэшируются.

```json
{
"visionSidecar": {
"enabled": true,
"backend": "anthropic",
"model": "claude-sonnet-5",
"backend": "openai",
"model": "gpt-5.6-luna",
"reasoning": "medium",
"maxDescriptionsPerTurn": 8,
"timeoutMs": 45000
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -179,13 +179,15 @@ routed-model и hosted-search timeout. Эффективный watchdog мост
| `enabled?` | `boolean` | on when usable | Главный переключатель описания изображений. |
| `backend?` | `"openai" \| "anthropic"` | auto | Та же логика выбора explicit-first/Anthropic-credential-aware, что и у web search. |
| `model?` | `string` | backend-dependent | `gpt-5.4-mini` для OpenAI или `claude-sonnet-5` для Anthropic. |
| `reasoning?` | `"low" \| "medium" \| "high" \| "xhigh" \| "max"` | `"low"` | Уровень рассуждений OpenAI Responses. Anthropic его игнорирует. |
| `maxDescriptionsPerTurn?` | `number` | `8` | Максимум новых промахов description-cache за один main turn. `0` отключает вызовы; некорректные значения возвращают дефолт. |
| `timeoutMs?` | `number` | `45000` | Таймаут запроса sidecar'а. |

Vision включается только для изображений, отправленных в модель, входящую в `noVisionModels` её
Поддерживаемые уровни зависят от возможностей вышестоящего провайдера и заявленной лестницы
рассуждений выбранной модели. Vision включается только для изображений, отправленных в модель, входящую в `noVisionModels` её
провайдера. У OpenAI требования по login/forward те же, что и у поиска; явный Anthropic без
рабочего credential завершается ошибкой. Успешные описания `data:` используют ограниченный cache,
ключ которого включает backend, model, detail, bytes изображения и нормализованный message
ключ которого включает backend, model, reasoning effort, detail, bytes изображения и нормализованный message
context. Попадания в cache и дубликаты в пределах одного turn'а не расходуют лимит. Удалённые
`https:`-изображения, а также пустые и неуспешные описания не кэшируются.

Expand Down
Loading
Loading