-
Notifications
You must be signed in to change notification settings - Fork 848
feat(providers): allow trusted encrypted V2 task passthrough #2113
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: dev
Are you sure you want to change the base?
Changes from all commits
6ceffe3
c2a1c4d
d15b5c8
c585c12
8c91233
8dc9b8a
5467d6a
34ac5b1
c2cde15
873b7b5
bf80662
5aca7b9
14108c6
ffd9bbb
e5b6a34
15556f1
1f4b6a2
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -116,27 +116,39 @@ pendant un temps de recharge, il manque un compte Codex poolé utilisable ou au- | |
| Les sondes de disponibilité sont mises en cache pendant `subagentModelFallbackPollMs` (60 secondes par défaut). | ||
|
|
||
| La solution de secours ne rend pas lisibles les tâches chiffrées incompatibles. Lorsque la tâche enfant est chiffrée pour | ||
| ChatGPT, la sélection est restreinte aux cibles ChatGPT natives canoniques même si un modèle externe | ||
| apparaît plus tôt dans la chaîne. | ||
| ChatGPT, la sélection est restreinte aux cibles capables de recevoir ce chiffrage : les cibles ChatGPT natives | ||
| canoniques ou un fournisseur Responses avec l’option explicite `allowEncryptedV2AgentTasks: true`, lorsque le wire final | ||
| reste `openai-responses`. Une surcharge `modelAdapters` qui résout le modèle vers `openai-chat` reste non admissible. | ||
|
|
||
| ## 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. Cette | ||
| charge utile peut être lue par le backend natif ChatGPT, mais pas par un fournisseur externe. C'est la | ||
| Codex peut envoyer une tâche enfant v2 native vers routé uniquement sous forme `encrypted_content` chiffrée par le backend. Le | ||
| backend natif ChatGPT peut consommer cette charge utile ; certains relais compatibles peuvent aussi la transmettre à un | ||
| backend capable de la consommer. opencodex ne peut pas déduire cette capacité du nom du fournisseur ou de son Base URL. 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 : | ||
|
|
||
| - Une route directe non native renvoie HTTP 400 avec | ||
| - Une route directe non native inéligible renvoie HTTP 400 avec | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win Fix the missing space after the preceding full stop. LanguageTool reports a missing space at the start of the changed delivery bullet. Correct the punctuation boundary without changing the HTTP 400 or 🧰 Tools🪛 LanguageTool[typographical] ~132-~132: Il manque une espace après le point. (ESPACE_APRES_POINT) 🤖 Prompt for AI AgentsSource: Linters/SAST tools |
||
| `error.code = "unreadable_encrypted_agent_task"` et ne fait pas écho au texte chiffré. | ||
| - Un combo considère uniquement les cibles ChatGPT natives canoniques pour cette tâche, y compris les tentatives. Si aucun | ||
| est disponible, il renvoie la même erreur 400. | ||
| - Un combo considère uniquement les cibles ChatGPT natives canoniques et les cibles Responses explicitement approuvées pour | ||
| cette tâche lorsque leur wire final reste `openai-responses`, y compris les tentatives. Si aucune n'est disponible, il | ||
| renvoie la même erreur 400. | ||
| - Une tâche lisible en texte clair conserve la route normale et le comportement de repli. | ||
|
|
||
| Les options de récupération consistent à sélectionner un enfant ChatGPT natif, à ajouter une cible ChatGPT native au combo, à utiliser | ||
| v1 pour la délégation de fournisseurs hétérogènes, ou renvoyer la tâche en texte brut v2 `agent_message` | ||
| contenu lorsque vous contrôlez l’appelant. | ||
|
|
||
| Si un endpoint Responses non canonique a été vérifié pour consommer ou relayer ce chiffrage, activez l’option **Passer les tâches | ||
| d’agent V2 chiffrées** dans les paramètres de ce fournisseur, ou définissez `allowEncryptedV2AgentTasks: true` dans sa | ||
| configuration. Cette option est désactivée par défaut et n’est valide que lorsque le wire final du modèle sélectionné est | ||
| `openai-responses` ; une surcharge `modelAdapters` vers `openai-chat` reste donc non admissible. La charge utile opaque est | ||
| transmise sans modification : opencodex ne la déchiffre pas, ne la traduit pas et ne la récupère pas, et cette option ne prouve | ||
| pas la compatibilité du fournisseur. La cible ChatGPT canonique est toujours admissible sans cette option. Une cible ayant activé | ||
| le relais opaque ignore `agentTaskRecovery` pour cette route, car la récupération et le relais opaque sont deux modes de confiance | ||
| distincts. | ||
|
|
||
| L’option expérimentale `agentTaskRecovery`, désactivée par défaut, peut récupérer cette forme précise de | ||
| tâche native envoyée vers une route externe. Elle utilise un transfert Responses brut vers le point de | ||
| terminaison ChatGPT `/responses` fixe et la forme d’identification entrante du fournisseur canonique | ||
|
|
@@ -154,8 +166,8 @@ récupéré, la fidélité octet par octet n’est pas garantie. Les appelants g | |
| sont rejetés, et tout échec conserve l’erreur `unreadable_encrypted_agent_task`. Consultez | ||
| [Configuration de l'agent : récupération de tâche chiffrée v2](/fr/reference/configuration/agents/#récupération-des-tâches-v2-chiffrées) | ||
| pour la limite de confiance complète et la configuration. | ||
| Le routage des combinaisons reste inchangé et continue de considérer uniquement les cibles ChatGPT natives | ||
| canoniques pour les tâches chiffrées. | ||
| Le routage des combinaisons applique les mêmes règles d’admissibilité : il considère les cibles ChatGPT natives canoniques et les | ||
| cibles Responses explicitement approuvées pour les tâches chiffrées. | ||
|
|
||
| ## Changer le mode | ||
|
|
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Normalize the French apostrophes.
LanguageTool flags apostrophe characters in the changed sentences at Lines 120-121 and Line 135. Replace them with the apostrophe form used consistently by the surrounding French documentation.
Also applies to: 135-135
🧰 Tools
🪛 LanguageTool
[typographical] ~120-~120: Caractère d’apostrophe incorrect.
Context: ...sseur Responses avec l’option explicite
allowEncryptedV2AgentTasks: true, lorsque le wire final reste `openai-re...(APOS_INCORRECT)
[typographical] ~121-~121: Caractère d’apostrophe incorrect.
Context: ...sks: true
, lorsque le wire final resteopenai-responses. Une surchargemodelAdapters` qui réso...(APOS_INCORRECT)
🤖 Prompt for AI Agents
Source: Linters/SAST tools