Configuration de la synthèse
Aperçu
La configuration summarization offre un contrôle centralisé sur la synthèse des conversations et l'élagage du contexte. Cela remplace les champs summarize et summaryModel par endpoint qui étaient précédemment disponibles sur les endpoints personnalisés et Azure OpenAI.
Lorsqu'une conversation dépasse la fenêtre de contexte du modèle, le système de résumé compresse automatiquement les anciens messages en un résumé de point de contrôle concis. Cela permet aux conversations de se poursuivre indéfiniment sans perdre de contexte important. Le système inclut également le context pruning (élagage de contexte), qui dégrade progressivement les résultats d'outils volumineux dans les anciens messages afin de récupérer de l'espace de jetons avant que la synthèse ne soit nécessaire.
Après un tour de résumé, la jauge d'utilisation du contexte utilise la ligne de base du résumé persisté ainsi que les tours suivant le résumé, au lieu de recompter l'historique pré-résumé supprimé. Les totaux cumulés de l'utilisation et des coûts incluent toujours la dépense totale de la branche.
Exemple
provider
| Key | Type | Description | Example |
|---|---|---|---|
| provider | String | Le fournisseur LLM à utiliser pour les appels de résumé. S'il est omis, le propre fournisseur de l'agent est utilisé. | provider: "openAI" |
Par défaut : Fournisseur propre à l'agent
model
| Key | Type | Description | Example |
|---|---|---|---|
| model | String | Le modèle à utiliser pour les appels de résumé. S'il est omis, le modèle propre à l'agent est utilisé. | model: "gpt-4o-mini" |
Par défaut : Modèle propre à l'agent
parameters
| Key | Type | Description | Example |
|---|---|---|---|
| parameters | Object | Paramètres LLM supplémentaires pour les requêtes de résumé (par ex. temperature, top_p). | parameters: { temperature: 0.3 } |
prompt
| Key | Type | Description | Example |
|---|---|---|---|
| prompt | String | Invite personnalisée pour la synthèse initiale. Remplace l'invite de point de contrôle intégrée. |
Par défaut : Un prompt de point de contrôle structuré qui génère des sections pour Objectif, Contraintes et Préférences, Progrès, Décisions clés, Prochaines étapes et Contexte critique.
updatePrompt
| Key | Type | Description | Example |
|---|---|---|---|
| updatePrompt | String | Invite personnalisée pour la re-compaction lorsqu'un résumé existe déjà. Utilisée lorsque le résumé doit être mis à jour avec le nouveau contenu de la conversation. |
Par défaut : Un prompt intégré qui fusionne les nouveaux messages dans le point de contrôle existant, compresse les détails plus anciens et donne plus de détails aux actions récentes.
maxSummaryTokens
| Key | Type | Description | Example |
|---|---|---|---|
| maxSummaryTokens | Number | Nombre maximal de jetons de sortie pour la réponse du modèle de résumé. | maxSummaryTokens: 4096 |
reserveRatio
| Key | Type | Description | Example |
|---|---|---|---|
| reserveRatio | Number | Fraction du budget de jetons réservée comme marge de sécurité (0–1). Empêche le contexte d'être rempli à sa capacité absolue. | reserveRatio: 0.05 |
Par défaut : 0.05 (5 % de marge)
trigger
| Key | Type | Description | Example |
|---|---|---|---|
| trigger | Object | Définit quand la synthèse est activée. Si omis, la synthèse se déclenche dès que le nettoyage des messages en supprime. |
Sous-clés trigger
| Key | Type | Description | Example |
|---|---|---|---|
| type | String | La stratégie de déclenchement. Options : `"token_ratio"`, `"remaining_tokens"`, `"messages_to_refine"`. | type: "token_ratio" |
| value | Number | La valeur seuil pour le type de déclencheur choisi. Pour `token_ratio` : 0–1 (inclus). Pour `remaining_tokens` et `messages_to_refine` : entier positif. | value: 0.8 |
Types de déclencheurs
| Type | Value | Se déclenche quand |
|---|---|---|
token_ratio | 0.0–1.0 | La fraction de jetons de contexte utilisés atteint ou dépasse la valeur |
remaining_tokens | Entier positif | Le nombre de jetons de contexte restants tombe à ou en dessous de la valeur |
messages_to_refine | Entier positif | Le nombre de messages éligibles à la synthèse atteint ou dépasse la valeur |
| (non défini) | — | Chaque fois que l'élagage supprime des messages (comportement par défaut) |
Exemple :
contextPruning
| Key | Type | Description | Example |
|---|---|---|---|
| contextPruning | Object | Configure la dégradation des résultats d'outils basée sur la position. Les résultats d'outils volumineux dans les messages plus anciens sont progressivement tronqués ou supprimés pour récupérer de l'espace de jetons. |
Le nettoyage du contexte (context pruning) est une fonctionnalité optionnelle qui fonctionne indépendamment de la synthèse. Elle cible les résultats volumineux d'appels d'outils dans les messages plus anciens, en appliquant deux étapes progressives :
- Soft trim — Tronque les résultats des outils pour ne conserver que les parties de début et de fin, avec des points de suspension entre les deux
- Hard clear — Remplace l'intégralité du résultat de l'outil par un court espace réservé
Les deux étapes sont basées sur la position : les messages situés au début de la conversation (les plus anciens) sont supprimés en premier.
Sous-clés de contextPruning
| Key | Type | Description | Example |
|---|---|---|---|
| enabled | Boolean | Active la dégradation des résultats d'outils basée sur la position. | enabled: true |
| keepLastAssistants | Number | Nombre de tours récents de l'assistant à protéger de toute suppression. | keepLastAssistants: 3 |
| softTrimRatio | Number | Ratio d'âge (0–1) auquel le soft-trim s'active. Les messages plus anciens que ce ratio de la conversation sont candidats au soft-trimming. | softTrimRatio: 0.3 |
| hardClearRatio | Number | Ratio d'âge (0–1) auquel le hard-clear s'active. Les messages plus anciens que ce ratio sont candidats à un remplacement complet. | hardClearRatio: 0.5 |
| minPrunableToolChars | Number | Nombre minimal de caractères d'un résultat d'outil avant que l'élagage ne soit appliqué. Les résultats plus petits restent inchangés. | minPrunableToolChars: 50000 |
| softTrim | Object | Configuration pour l'étape de soft-trim. | |
| hardClear | Object | Configuration pour l'étape de hard-clear. |
Valeurs par défaut :
| Champ | Par défaut |
|---|---|
enabled | false |
keepLastAssistants | 3 |
softTrimRatio | 0.3 |
hardClearRatio | 0.5 |
minPrunableToolChars | 50000 |
Sous-clés softTrim
| Key | Type | Description | Example |
|---|---|---|---|
| maxChars | Number | Nombre maximal total de caractères après le découpage léger d'un résultat d'outil. | maxChars: 4000 |
| headChars | Number | Nombre de caractères à conserver depuis le début du résultat de l'outil. | headChars: 1500 |
| tailChars | Number | Nombre de caractères à conserver à la fin du résultat de l'outil. | tailChars: 1500 |
Par défaut : maxChars: 4000, headChars: 1500, tailChars: 1500
Sous-clés hardClear
| Key | Type | Description | Example |
|---|---|---|---|
| enabled | Boolean | Si l'étape de nettoyage complet (hard-clear) est active. Lorsqu'elle est désactivée, seul un nettoyage léger (soft-trim) est appliqué. | enabled: true |
| placeholder | String | Texte de remplacement qui remplace le contenu complet du résultat de l'outil lorsqu'il est effacé. | placeholder: "[Old tool result content cleared]" |
Valeurs par défaut : enabled: true, placeholder: "[Old tool result content cleared]"
Exemple :
Exemple de configuration complète
Migration depuis les paramètres par endpoint
Si vous utilisiez précédemment summarize et summaryModel sur des endpoints personnalisés ou Azure OpenAI :
Ces champs ont été supprimés. Utilisez plutôt la configuration summarization au niveau supérieur :
Notes
- La synthèse est configurée globalement plutôt que par endpoint.
- Les champs
summarizeetsummaryModelsur les endpoints personnalisés et les endpoints Azure OpenAI ne sont plus pris en charge. - Lorsque
provideretmodelsont omis, le fournisseur et le modèle propres à l'agent sont utilisés pour la synthèse. - Le nettoyage du contexte (context pruning) est désactivé par défaut et doit être explicitement activé avec
contextPruning.enabled: true - Le nettoyage de contexte (context pruning) n'affecte que les résultats d'appels d'outils qui dépassent
minPrunableToolChars— les résultats plus petits ne sont jamais nettoyés. - Le paramètre
keepLastAssistantsprotège les tours récents de la suppression, indépendamment des ratios de découpage/effacement. - Les valeurs personnalisées
promptetupdatePromptremplacent entièrement les prompts intégrés — à utiliser avec précaution - Définissez
AGENT_DEBUG_LOGGING=truedans votre fichier.envpour activer la journalisation détaillée du nombre de jetons et des diagnostics de réduction de contexte.
Que pensez-vous de ce guide ?