Skip to content
Merged
Show file tree
Hide file tree
Changes from 10 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
23 changes: 16 additions & 7 deletions docs-site/src/content/docs/fr/guides/sub-agent-surface.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ description: Contrôlez la manière dont Codex génère et gère les sous-agents

## Que sont les sous-agents

Un sous-agent est un travailleur Codex distinct que l'agent principal peut créer pour une tâche ciblée. Il a son
son propre contexte et ses propres outils, afin que plusieurs tâches indépendantes puissent s'exécuter en parallèle. opencodex contrôle lequel
La surface de collaboration Codex expose ces travailleurs, quels modèles Codex leur propose et comment un
Un sous-agent est un travailleur Codex distinct que l'agent principal peut créer pour une tâche ciblée. Il possède
son propre contexte et ses propres outils, afin que plusieurs tâches indépendantes puissent s'exécuter en parallèle. opencodex contrôle
quelle surface de collaboration Codex expose ces travailleurs, quels modèles Codex leur propose et comment
un modèle défaillant peut reculer. Il ne décide pas quand votre agent principal doit déléguer.

## Modes
Expand All @@ -20,6 +20,12 @@ Choisissez le mode pour les **nouvelles sessions**. Les sessions existantes cons
| **base** (par défaut) | Paramètres de modèle en amont : GPT-5.6 Sol/Terra utilisent la v2, Luna utilise la v1, et les modèles non définis explicitement suivent l’indicateur de fonctionnalité `multi_agent_v2` de Codex. | La plupart des utilisateurs. Ce mode respecte la surface prévue par Codex pour chaque modèle, sans en imposer une globalement. |
| **v2** | Outils plats `spawn_agent`, `send_message`, `followup_task`, `interrupt_agent` et liste d'agents, avec sessions simultanées. | Utilisateurs souhaitant utiliser le flux de travail simultané le plus récent et comprenant l'héritage de modèle et la limitation des tâches chiffrées ci-dessous. |

En **v2**, l'option facultative **Garder ChatGPT sur v1** (`keepNativeChatGptOnV1`) laisse Sol/Terra
sur la surface v1 afin qu'ils puissent encore lancer Grok ou Claude. Les parents natifs ChatGPT
chiffrent les corps `NEW_TASK` v2 ; les modèles routés ne peuvent pas les lire. Les parents routés
restent sur v2, où les tâches enfants sont en texte clair. C'est un interrupteur *à l'intérieur*
de v2, pas un quatrième mode de catalogue. CLI : `ocx v2 mode v2` puis `ocx v2 keep-native-v1 on`.

:::tip[Pas sûr ?]
Commencez par **base**. Choisissez **v1** lorsque la délégation entre fournisseurs doit fonctionner de manière prévisible. Forcer **v2**
uniquement lorsque vous souhaitez spécifiquement son modèle de session le plus récent dans chaque entrée de catalogue.
Expand All @@ -31,7 +37,7 @@ Le mode sélectionné contrôle le champ `multi_agent_version` dans chaque entr

- **v1** inscrit `multi_agent_version = "v1"` sur chaque modèle.
- **base** restaure les paramètres en amont. Les entrées sans valeur explicite suivent l’indicateur de fonctionnalité natif `multi_agent_v2`.
- **v2** inscrit `multi_agent_version = "v2"` sur chaque modèle.
- **v2** inscrit `multi_agent_version = "v2"` sur chaque modèle, sauf lorsque **Garder ChatGPT sur v1** est activé : les lignes natives ChatGPT restent `"v1"` et les lignes routées ou combo restent `"v2"`.

opencodex applique cela comme passe finale à la fois au catalogue `/v1/models` en direct et au catalogue synchronisé
sur le disque. C'est pourquoi un changement de mode affecte de manière cohérente les sessions App, CLI et TUI nouvellement créées.
Expand Down Expand Up @@ -115,9 +121,9 @@ apparaît plus tôt dans la chaîne.

## Livraison de tâches v2 cryptées

Codex peut envoyer une tâche enfant v2 native vers routé uniquement sous forme `encrypted_content` chiffrée par le backend. Cela
la charge utile peut être lue par le backend natif ChatGPT, mais pas par un fournisseur externe. C'est le
connue [#92 limitation](https://github.com/lidge-jun/opencodex/issues/92).
Codex peut envoyer une tâche enfant v2 native vers routé uniquement sous forme `encrypted_content` chiffrée par le backend. Cette
charge utile peut être lue par le backend natif ChatGPT, mais pas par un fournisseur externe. C'est la
limitation connue [#92](https://github.com/lidge-jun/opencodex/issues/92).

opencodex échoue en toute sécurité au lieu de transférer une tâche vide ou illisible :

Expand Down Expand Up @@ -157,6 +163,7 @@ canoniques pour les tâches chiffrées.

- **Tableau de bord** → première cellule statistique : choisissez **v1**, **base** ou **v2**.
- **Modèles** → contrôle segmenté de la rangée supérieure : choisissez le même mode global.
- **Modèles** → **Garder ChatGPT sur v1** : activez cette option uniquement lorsque le mode global est **v2**. Elle est ignorée en **v1** et **base**.
- **Tableau de bord** → **Délégation de sous-agent** : définissez les conseils model/effort et l'activation explicite natif par défaut.
- **Sous-agents** : choisissez et ordonnez la liste, puis configurez la chaîne de repli globale.

Expand All @@ -169,6 +176,8 @@ ocx v2 status
ocx v2 mode v1
ocx v2 mode default
ocx v2 mode v2
ocx v2 keep-native-v1 on
ocx v2 keep-native-v1 off
ocx v2 threads 8
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ Les paramètres des agents déterminent la surface de collaboration Codex annonc
| Champ | Type | Valeur par défaut | Signification |
| --- | --- | --- | --- |
| `multiAgentMode?` | `"v1" \| "default" \| "v2"` | `"default"` | `v1` marque tous les modèles du catalogue comme compatibles v1 ; `v2` les marque tous comme compatibles v2. `default` rétablit les choix imposés en amont (Sol/Terra en v2, Luna en v1) et suit sinon l’indicateur natif `multi_agent_v2`. S’applique aux nouvelles sessions. |
| `keepNativeChatGptOnV1?` | `boolean` | `false` | Lorsque `multiAgentMode` vaut `"v2"`, marque les lignes natives ChatGPT (Sol/Terra et les autres modèles du backend ChatGPT) comme v1. Les parents routés restent en v2. Utilisez cette option pour qu'un parent ChatGPT puisse encore lancer Grok ou Claude — les tâches enfants v2 natives sont chiffrées par le service en amont ([#92](https://github.com/lidge-jun/opencodex/issues/92)). Ignoré en `v1` et `default`. |
| `subagentModels?` | `string[]` | `gpt-5.5`, `gpt-5.6-sol`, `gpt-5.6-terra`, `gpt-5.6-luna`, `gpt-5.4-mini` | Jusqu’à cinq identifiants de modèles natifs non qualifiés, qualifiés par un compte sous la forme `<selector>/<native-openai-model>`, ou routés sous la forme `provider/model`, affichés en tête du sélecteur de sous-agents. Le tableau de bord ne propose que les identifiants natifs non qualifiés et les identifiants routés ; lors de l’enregistrement, il omet les choix exacts qualifiés par un compte. Pour les définir, utilisez `ocx agent subagents set` ou modifiez la configuration. Une liste explicitement vide est conservée. |
| `injectionModel?` | `string` | — | Modèle de sous-agent natif ou routé privilégié dans les consignes de délégation v2 produites par le proxy. |
| `injectionEffort?` | `string` | — | Niveau d’effort privilégié (de `low` à `ultra`), pertinent uniquement avec `injectionModel`. |
Expand All @@ -23,7 +24,7 @@ Les paramètres des agents déterminent la surface de collaboration Codex annonc
| `subagentEffortCap?` | `string` | — | Plafond supplémentaire réservé aux tours enfants créés. Lorsque les deux plafonds s’appliquent, le plus bas l’emporte. |
| `agentTaskRecovery?` | `object` | — | Mécanisme expérimental, soumis à activation explicite, pour récupérer les tâches v2 chiffrées par le service en amont lorsqu’elles sont envoyées à des fournisseurs routés. Désactivé sauf si `enabled: true` ; voir [Récupération des tâches v2 chiffrées](#récupération-des-tâches-v2-chiffrées). |

Gérez la surface depuis le tableau de bord ou avec `ocx v2 status|on|off|mode <v1|default|v2>|threads <n>|mode-hint <text|--clear>`. Les changements de mode s’appliquent aux nouvelles sessions. `maxConcurrentThreadsPerSession` est un champ de `PUT /api/v2`, et non une clé de `config.json`. Après l’activation de v2, `ocx v2 threads <n>` écrit `max_concurrent_threads_per_session` sous `[features.multi_agent_v2]` dans le fichier `$CODEX_HOME/config.toml` de Codex.
Gérez la surface depuis le tableau de bord ou avec `ocx v2 status|on|off|mode <v1|default|v2>|keep-native-v1 <on|off>|threads <n>|mode-hint <text|--clear>`. Les changements de mode s’appliquent aux nouvelles sessions. `maxConcurrentThreadsPerSession` est un champ de `PUT /api/v2`, et non une clé de `config.json`. Après l’activation de v2, `ocx v2 threads <n>` écrit `max_concurrent_threads_per_session` sous `[features.multi_agent_v2]` dans le fichier `$CODEX_HOME/config.toml` de Codex.

Le **mode Ultra** — accessible depuis l’interrupteur Sous-agents du tableau de bord, le champ `multiAgentModeHintText` de `PUT /api/v2` et `ocx v2 mode-hint` — écrit `features.multi_agent_v2.multi_agent_mode_hint_text` dans le fichier `$CODEX_HOME/config.toml` de Codex. La commande CLI `ocx v2 mode-hint` conserve cette clé même lorsque `multi_agent_v2` est désactivé ; elle n’active ni ne désactive la fonctionnalité. Cette indication remplace la politique multi-agents que codex-rs déduit du niveau d’effort : tous les modèles et tous les niveaux d’effort reçoivent alors le prompt de délégation Proactive. Elle ne modifie **pas** le niveau d’effort de raisonnement.

Expand Down
7 changes: 6 additions & 1 deletion docs-site/src/content/docs/guides/sub-agent-surface.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@ Choose the mode for **new sessions**. Existing sessions keep the surface they st
| **base** (default) | Upstream model pins: GPT-5.6 Sol/Terra use v2, Luna uses v1, and unpinned models follow Codex's `multi_agent_v2` feature flag. | Most users. It follows Codex's intended surface for each model without forcing one globally. |
| **v2** | Flat `spawn_agent`, `send_message`, `followup_task`, `interrupt_agent`, and agent-list tools, with concurrent sessions. | Users who want the newer concurrent workflow and understand model inheritance and the encrypted-task limitation below. |

On **v2**, an optional **Keep ChatGPT on v1** switch (`keepNativeChatGptOnV1`) leaves Sol/Terra
on the v1 surface so they can still spawn Grok or Claude. ChatGPT-native parents encrypt v2
`NEW_TASK` bodies; routed models cannot read them. Routed parents stay on v2, where child tasks
are plaintext. This is a switch *inside* v2, not a fourth catalog mode.
Comment thread
coderabbitai[bot] marked this conversation as resolved.

:::tip[Not sure?]
Start with **base**. Choose **v1** when cross-provider delegation must work predictably. Force **v2**
only when you specifically want its newer session model across every catalog entry.
Expand All @@ -31,7 +36,7 @@ The selected mode controls the `multi_agent_version` field in every catalog entr

- **v1** stamps `multi_agent_version = "v1"` on every model.
- **base** restores upstream pins. Unpinned entries follow the native `multi_agent_v2` feature flag.
- **v2** stamps `multi_agent_version = "v2"` on every model.
- **v2** stamps `multi_agent_version = "v2"` on every model, except when **Keep ChatGPT on v1** is enabled: ChatGPT-native rows stay `"v1"` and routed or combo rows stay `"v2"`.

opencodex applies this as the final pass to both the live `/v1/models` catalog and the catalog synced
to disk. That is why a mode change affects newly created App, CLI, and TUI sessions consistently.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ routes, and limits delegated work.
| Field | Type | Default | Meaning |
| --- | --- | --- | --- |
| `multiAgentMode?` | `"v1" \| "default" \| "v2"` | `"default"` | `v1` stamps every catalog model as v1; `v2` stamps every model as v2. `default` restores upstream pins (Sol/Terra v2, Luna v1) and otherwise follows the native `multi_agent_v2` flag. Applies to new sessions. |
| `keepNativeChatGptOnV1?` | `boolean` | `false` | When `multiAgentMode` is `"v2"`, stamp ChatGPT-native rows (Sol/Terra and other ChatGPT-backend models) as v1. Routed parents stay on v2. Use this so a ChatGPT parent can still spawn Grok or Claude — native v2 child tasks are backend-encrypted ([#92](https://github.com/lidge-jun/opencodex/issues/92)). Ignored in `v1` and `default`. |
| `subagentModels?` | `string[]` | `gpt-5.5`, `gpt-5.6-sol`, `gpt-5.6-terra`, `gpt-5.6-luna`, `gpt-5.4-mini` | Up to five bare native, account-qualified `<selector>/<native-openai-model>`, or routed `provider/model` ids featured first in the sub-agent picker. The dashboard offers only bare native and routed ids and omits exact account-qualified choices when it saves; use `ocx agent subagents set` or edit the configuration for exact choices. An explicit empty list is preserved. |
| `injectionModel?` | `string` | — | Preferred native or routed sub-agent model used in proxy-authored v2 delegation guidance. |
| `injectionEffort?` | `string` | — | Preferred effort (`low` through `ultra`), meaningful only with `injectionModel`. |
Expand All @@ -25,7 +26,7 @@ routes, and limits delegated work.
| `agentTaskRecovery?` | `object` | — | Experimental opt-in recovery for backend-encrypted v2 tasks sent to routed providers. Disabled unless `enabled: true`; see [Encrypted v2 task recovery](#encrypted-v2-task-recovery). |

Manage the surface with the dashboard or
`ocx v2 status|on|off|mode <v1|default|v2>|threads <n>|mode-hint <text|--clear>`.
`ocx v2 status|on|off|mode <v1|default|v2>|keep-native-v1 <on|off>|threads <n>|mode-hint <text|--clear>`.
Mode changes apply to new sessions. `maxConcurrentThreadsPerSession` is a `PUT /api/v2` field, not a
`config.json` key; `ocx v2 threads <n>` writes `max_concurrent_threads_per_session` under
`[features.multi_agent_v2]` in Codex's `$CODEX_HOME/config.toml` after v2 is enabled.
Expand Down
4 changes: 3 additions & 1 deletion gui/src/i18n/de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -503,7 +503,9 @@ export const de: Record<TKey, string> = {
"models.v2ModeDesc_v1": "Alle Modelle → v1-Oberfläche",
"models.v2ModeDesc_default": "Upstream-Standard (sol/terra=v2, luna=v1)",
"models.v2ModeDesc_v2": "Alle Modelle → v2-Oberfläche",
"models.v2Help": "Steuert die Multi-Agent-Oberfläche für alle Modelle.\n\nv1: Klassischer Single-Thread-Agent. Jedes Modell nutzt die v1-Collab-Oberfläche.\nbase: Upstream-Standard — sol/terra nutzen v2, luna v1, andere folgen dem Codex-Feature-Flag.\nv2: Multi-Thread-Agent mit spawn_agent. Jedes Modell nutzt die v2-Collab-Oberfläche.\n\nÄnderungen gelten für neue Sitzungen.",
"models.keepNativeOnV1": "ChatGPT auf v1 lassen",
"models.keepNativeOnV1Hint": "ChatGPT-native Eltern verschlüsseln v2-Kindaufgaben — Grok und Claude können sie nicht lesen. An lassen, wenn Sol/Terra weiterhin geroutete Modelle starten sollen. Geroutete Eltern bleiben auf v2.",
"models.v2Help": "Steuert die Multi-Agent-Oberfläche für alle Modelle.\n\nv1: Klassischer Single-Thread-Agent. Jedes Modell nutzt die v1-Collab-Oberfläche.\nbase: Upstream-Standard — sol/terra nutzen v2, luna v1, andere folgen dem Codex-Feature-Flag.\nv2: Multi-Thread-Agent mit spawn_agent. Jedes Modell nutzt die v2-Collab-Oberfläche.\n\nUnter v2 lässt „ChatGPT auf v1 lassen“ Sol/Terra auf v1, damit sie weiter Grok oder Claude starten können. ChatGPT verschlüsselt v2-Kindaufgaben; geroutete Modelle können sie nicht lesen. Geroutete Eltern bleiben auf v2.\n\nÄnderungen gelten für neue Sitzungen.",
"dash.multiAgent": "Sub-Agent",
"models.v2Conflict": "[agents] max_threads ist gesetzt — codex verweigert den Start; entferne es aus config.toml",
"models.v2Applied": "Sub-Agent-Modus aktualisiert — gilt für neue Sitzungen (Codex-App neu starten, um die Auswahl zu aktualisieren)",
Expand Down
4 changes: 3 additions & 1 deletion gui/src/i18n/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -528,7 +528,9 @@ export const en = {
"models.v2ModeDesc_v1": "All models → v1 surface",
"models.v2ModeDesc_default": "Upstream defaults (sol/terra=v2, luna=v1)",
"models.v2ModeDesc_v2": "All models → v2 surface",
"models.v2Help": "Controls the multi-agent surface for all models.\n\nv1: Classic single-thread agent. Every model uses the v1 collab surface.\nbase: Upstream defaults — sol/terra use v2, luna uses v1, others follow the codex feature flag.\nv2: Multi-thread agent with spawn_agent. Every model uses the v2 collab surface.\n\nChanges apply to new sessions.",
"models.keepNativeOnV1": "Keep ChatGPT on v1",
"models.keepNativeOnV1Hint": "ChatGPT encrypts v2 child tasks only when a ChatGPT-native parent stays on v2, so Grok and Claude cannot read them. Turn this on to keep Sol/Terra on v1 and avoid that encryption. Routed parents keep v2.",
"models.v2Help": "Controls the multi-agent surface for all models.\n\nv1: Classic single-thread agent. Every model uses the v1 collab surface.\nbase: Upstream defaults — sol/terra use v2, luna uses v1, others follow the codex feature flag.\nv2: Multi-thread agent with spawn_agent. Every model uses the v2 collab surface.\n\nOn v2, Keep ChatGPT on v1 leaves Sol/Terra on the v1 surface so they can still spawn Grok or Claude. ChatGPT encrypts v2 child tasks; routed models cannot read them. Routed parents stay on v2.\n\nChanges apply to new sessions.",
Comment thread
coderabbitai[bot] marked this conversation as resolved.
"dash.multiAgent": "Sub-agent",
"models.v2Conflict": "[agents] max_threads is set — codex will refuse to start; remove it from config.toml",
"models.v2Applied": "Sub-agent mode updated — applies to new sessions (restart the Codex app to refresh the picker)",
Expand Down
4 changes: 3 additions & 1 deletion gui/src/i18n/fr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -513,7 +513,9 @@ export const fr: Record<TKey, string> = {
"models.v2ModeDesc_v1": "Tous les modèles → interface v1",
"models.v2ModeDesc_default": "Valeurs par défaut en amont (sol/terra=v2, luna=v1)",
"models.v2ModeDesc_v2": "Tous les modèles → interface v2",
"models.v2Help": "Contrôle l’interface multi-agent pour tous les modèles.\n\nv1 : agent classique à fil unique. Tous les modèles utilisent l’interface collab v1.\nbase : valeurs par défaut en amont — sol/terra utilisent v2, luna utilise v1 et les autres suivent l’indicateur de fonctionnalité codex.\nv2 : agent multifil avec spawn_agent. Tous les modèles utilisent l’interface collab v2.\n\nLes modifications s’appliquent aux nouvelles sessions.",
"models.keepNativeOnV1": "Garder ChatGPT sur v1",
"models.keepNativeOnV1Hint": "ChatGPT chiffre les tâches enfants v2 uniquement lorsqu’un parent natif ChatGPT reste sur v2, de sorte que Grok et Claude ne peuvent pas les lire. Activez cette option pour garder Sol/Terra sur v1 et éviter ce chiffrement. Les parents routés restent sur v2.",
"models.v2Help": "Contrôle l’interface multi-agent pour tous les modèles.\n\nv1 : agent classique à fil unique. Tous les modèles utilisent l’interface collab v1.\nbase : valeurs par défaut en amont — sol/terra utilisent v2, luna utilise v1 et les autres suivent l’indicateur de fonctionnalité codex.\nv2 : agent multifil avec spawn_agent. Tous les modèles utilisent l’interface collab v2.\n\nEn v2, « Garder ChatGPT sur v1 » laisse Sol/Terra sur l’interface v1 afin qu’ils puissent encore lancer Grok ou Claude. ChatGPT chiffre les tâches enfants v2 ; les modèles routés ne peuvent pas les lire. Les parents routés restent sur v2.\n\nLes modifications s’appliquent aux nouvelles sessions.",
"dash.multiAgent": "Sous-agent",
"models.v2Conflict": "[agents] max_threads est défini — codex refusera de démarrer ; supprimez-le de config.toml",
"models.v2Applied": "Mode sous-agent mis à jour — s’applique aux nouvelles sessions (redémarrez l’application Codex pour actualiser le sélecteur)",
Expand Down
Loading
Loading