Accueil / Articles / Notes pratiques : Méthodes intelligentes pour améliorer les réponses des agents IA en production

Notes pratiques : Méthodes intelligentes pour améliorer les réponses des agents IA en production

Guide pratique détaillé : Méthodes efficaces pour améliorer les réponses des agents IA en production : contrats, vérifications et emplacements de code prêts à l’emploi pour les équipes qui utilisent ce modèle.

2176 mots

Utilisez ceci comme une version révisée destinée aux opérateurs des idées présentées dans « Smart Ways to Improve AI Agent Responses in Production » : étapes claires, emplacements de code ordonnés et notes de récupération qui survivent au transfert de responsabilités. L’étape « Aperçu » fonctionne le mieux lorsqu’elle est considérée comme une surface mesurable. Capturez un enregistrement exemplaire, un cas d’échec et la note de réversion avant d’élargir le périmètre. Enregistrez les temps d’exécution ainsi que le coût en tokens ou requêtes à côté des résultats fonctionnels. Une visibilité précoce des coûts évite les factures inattendues lorsque le processus passe de la démonstration aux environnements partagés.

1. Fournir à l’agent le bon contexte, pas plus de contexte

Pour l’étape 1 « Donner à l’agent », définissez les entrées, le responsable de l’étape et les critères de fin avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Conservez la configuration en dehors du code de l’application. Les fichiers d’environnement, les bases de données secrètes et les indicateurs fonctionnels doivent être regroupés en un seul endroit que les opérateurs peuvent auditer sans devoir lire l’ensemble du système. Mettez en place une approbation humaine pour les actions qui entraînent des dépenses ou modifient des données de production. La connexion en temps de compilation ne garantit pas la complétude du processus métier.

User Question
      ↓
Query Embedding
      ↓
Vector Search
      ↓
Top-K Results
      ↓
Reranking
      ↓
Relevant Chunks
      ↓
LLM
      ↓
Final Answer

2. Débogage avant modification du LLM

Pour l’étape 2 « Récupération avant débogage », définissez les entrées, le responsable de l’étape et les critères d’arrêt avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Documentez conjointement le parcours normal et les scénarios de récupération. Les tentatives répétées, les contrôles humains et la gestion des messages non livrés font partie intégrante du produit, et non d’une mise en forme ultérieure. Préférez des sorties structurées avec validation de schéma plutôt que du texte libre lorsque l’étape suivante consiste en du code ou une appel à outil.

Question
   ↓
Query Transformation
   ↓
Retrieved Documents
   ↓
Similarity Scores
   ↓
Reranking
   ↓
Final Context
   ↓
Prompt
   ↓
LLM Response
results = vector_store.similarity_search(
    query=user_question,
    k=5
)

for result in results:
    print("Score:", result.score)
    print("Source:", result.metadata.get("source"))
    print("Content:", result.page_content[:500])

3. Améliorer le découpage avant d’augmenter le contexte

Pour l’étape 3 « Améliorer le découpage avant », définissez les entrées, le responsable de l’étape et les critères d’arrêt avant de modifier du code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Préférez des unités petites et testables aux scripts complexes. Lorsqu’une étape échoue, l’échec doit indiquer une seule responsabilité plutôt qu’un processus embrouillé. Faites approuver par un humain les actions qui entraînent des dépenses ou modifient des données de production. La connexion en temps de compilation ne garantit pas la complétude du processus métier. Pour l’étape 3 « Améliorer le découpage avant », définissez les entrées, le responsable de l’étape et les critères d’arrêt avant de modifier du code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Enregistrez les temps d’exécution ainsi que le coût en tokens ou requêtes à côté des résultats fonctionnels. Une visibilité précoce des coûts évite les factures inattendues lorsque le processus passe de la version démo à l’environnement partagé.

Chunk 1:
Employees are eligible for reimbursement when...

Chunk 2:
...the expense was approved by their manager and
submitted within 30 days.

4. Ne pas envoyer toute la conversation au modèle

Lors de l’étape « Ne pas envoyer », notez d’abord les éléments requis : les entrées nécessaires, le signal de succès et ce qui se passe en cas d’échec partiel. Cette liste de contrôle permet de maintenir l’honnêteté des modifications ultérieures du code. Conservez la configuration en dehors du code de l’application. Les fichiers d’environnement, les bases de données secrètes et les indicateurs fonctionnels doivent être regroupés en un seul endroit que les administrateurs peuvent auditer sans devoir lire l’ensemble du système. Mémorisez les instructions stables du système ainsi que les schémas des outils. Envoyer à nouveau un préambule identique est une cause fréquente de gaspillage.

Conversation Context

Recent Messages:
- User asked about refund eligibility.
- Agent explained the standard policy.
- User mentioned they purchased an annual plan.

Conversation Summary:
Customer purchased an annual subscription
and wants to know whether they qualify for a refund.

Current Question:
Can I still get a refund?

5. Séparer les instructions système, le contexte et les entrées de l’utilisateur

Lors de la phase des 5 instructions relatives aux systèmes distincts, notez d’abord le contrat : les entrées requises, le signal de succès et ce qui se passe en cas d’échec partiel. Cette liste de contrôle permet de rester honnête lors des modifications ultérieures du code. Documentez ensemble le parcours normal et le parcours de récupération. Les tentatives répétées, les contrôles humains et la gestion des messages non livrés font partie intégrante du produit, et non d’améliorations apportées ultérieurement. Créez un point de contrôle après les étapes coûteuses. Le système de reprise ne doit pas facturer à nouveau la même appel du LLM lorsque l’opérateur tente à nouveau un nœud ultérieur.

SYSTEM INSTRUCTIONS

You are a customer support agent.
Answer using the provided knowledge.
Do not invent company policies.
If the answer isn't available, say that you don't know.
KNOWLEDGE
<retrieved_documents>
USER QUESTION
<user_question>

6. Apprendre à l’agent quand il doit dire « vous ne savez pas »

Lors de la réalisation des 6 étapes de « Teach the Agent », notez d’abord le contrat : les entrées requises, le signal de succès et ce qui se passe en cas d’échec partiel. Cette liste de contrôle permet de garantir l’intégrité des modifications ultérieures du code. Préférez des unités petites et testables plutôt que des scripts complexes. Lorsqu’une étape échoue, l’échec doit indiquer une seule responsabilité et non un processus embrouillé. Créez des points de contrôle après les étapes coûteuses. Le système de reprise ne doit pas facturer à nouveau la même appel du LLM lorsque l’opérateur réessaie un nœud ultérieur. Lors de la réalisation des 6 étapes de « Teach the Agent », notez d’abord le contrat : les entrées requises, le signal de succès et ce qui se passe en cas d’échec partiel. Cette liste de contrôle permet de garantir l’intégrité des modifications ultérieures du code. Enregistrez les temps d’exécution ainsi que le coût en tokens ou en requêtes à côté des résultats fonctionnels. Une visibilité précoce des coûts évite des factures inattendues lorsque le processus passe d’un environnement de démonstration à des environnements partagés.

If the answer cannot be supported by the provided
knowledge, do not guess.

Clearly state that the information is unavailable.

7. Éviter d’inclure la logique métier dans le prompt

La phase « 7. Éviter d’inclure la logique métier » fonctionne le mieux lorsqu’elle est considérée comme une surface mesurable. Capturez un transcript idéal, un cas d’échec et la note de réversion avant d’élargir le périmètre. Conservez la configuration en dehors du code de l’application. Les fichiers d’environnement, les bases de données secrètes et les indicateurs fonctionnels doivent être regroupés en un seul endroit que les opérateurs peuvent auditer sans devoir lire l’ensemble du système. Fixez des limites de tokens par tour et par session. Les outils agents élargissent lourdement le contexte ; des plafonds stricts empêchent que les démonstrations se transforment en factures inattendues.

def check_refund_eligibility(customer, purchase):
    if not customer.is_premium:
        return False

if customer.account_age_years < 2:
        return False
    if purchase.days_since_purchase > 30:
        return False
    if customer.previous_refund:
        return False
    return True
LLM
→ Understands the request
→ Decides which tool to use
→ Explains the result
Application
→ Enforces business rules
→ Validates data
→ Performs deterministic operations

8. Définir des responsabilités claires pour les outils

Le stade « Clear » des 8 outils fonctionne le mieux lorsqu’il est considéré comme une surface mesurable. Capturez un transcript parfait, un cas d’échec et la note de réversion avant d’élargir le périmètre. Documentez en même temps le parcours optimal et le parcours de récupération. Les tentatives répétées, les contrôles humains et la gestion des messages non livrés font partie intégrante du produit, et non d’une mise en forme ultérieure. Exposez les outils dotés de schémas restreints et de labels explicites indiquant leurs effets secondaires. Les hôtes doivent savoir quels appels modifient l’état avant de valider automatiquement.

process_customer_data()
get_customer_order()
cancel_customer_order()
update_customer_address()
create_support_ticket()

9. Valider ce que produit l’agent

Les 9 règles de validation : cette étape fonctionne le mieux lorsqu’elle est considérée comme une surface mesurable. Capturez un exemple idéal de fonctionnement, un cas d’échec et une note de réversion avant d’élargir le périmètre. Préférez des unités petites et testables aux scripts complexes. Lorsqu’une étape échoue, l’erreur doit indiquer une seule responsabilité plutôt qu’un processus embrouillé. Maintenez l’état des graphes simple et typé. Les blocs imbriqués masquent le fait que tel nœud a écrit telle champ et perturbent la reprise après interruption. Les 9 règles de validation : cette étape fonctionne le mieux lorsqu’elle est considérée comme une surface mesurable. Capturez un exemple idéal de fonctionnement, un cas d’échec et une note de réversion avant d’élargir le périmètre. Enregistrez les temps d’exécution ainsi que le coût des tokens ou des requêtes à côté des résultats fonctionnels. Une visibilité précoce des coûts évite les factures inattendues lorsque le processus passe d’un environnement de démonstration à des environnements partagés.

User
 ↓
LLM
 ↓
Refund API
User
 ↓
LLM
 ↓
Tool Request
 ↓
Application Validation
 ↓
Business Rules
 ↓
Refund API
{
  "customer_id": "12345",
  "eligible": true,
  "reason": "Purchase is within the refund window"
}

10. Ne pas ajouter plusieurs agents sans raison valable

Pour l’étape « Ne pas ajouter », définissez les entrées, le responsable de l’étape et les critères de fin avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Conservez la configuration en dehors du code de l’application. Les fichiers d’environnement, les bases de données secrètes et les indicateurs fonctionnels doivent être regroupés en un seul endroit que les opérateurs peuvent auditer sans avoir à lire l’ensemble du système. Mettez en place une approbation humaine pour les actions qui entraînent des dépenses ou modifient des données de production. Une connexion effectuée en temps de compilation ne garantit pas la complétude du processus métier.

                    User
                     ↓
                Router Agent
                /     |     \
               ↓      ↓      ↓
             RAG     SQL     API
               \      |      /
                \     |     /
                 Final Agent
                     ↓
                  Response

11. Créer un ensemble de données d’évaluation à partir de questions réelles

Pendant l’étape d’évaluation du 11 Build, définissez les entrées, le responsable de l’étape et les critères d’arrêt avant de modifier du code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Documentez conjointement le parcours normal et les scénarios de récupération. Les tentatives répétées, les contrôles humains et la gestion des messages non traités font partie intégrante du produit, et non d’une mise en forme ultérieure. Imposez une approbation humaine pour les actions qui entraînent des dépenses ou modifient des données de production. La configuration en temps de compilation ne garantit pas la complétude du processus métier.

Easy questions
Ambiguous questions
Multi-step questions
Out-of-domain questions
No-answer questions
Tool-use questions
Adversarial questions

12. Traçer l’ensemble du flux de travail de l’agent

Pour l’étape « Trace the Entire », définissez les entrées, le responsable de l’étape et les critères de sortie avant de modifier du code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Préférez des unités petites et testables aux scripts complexes. Lorsqu’une étape échoue, l’échec doit indiquer une seule responsabilité plutôt qu’un processus embrouillé. Faites approuver par un humain les actions qui entraînent des dépenses ou modifient des données de production. La connexion en temps de compilation ne garantit pas la complétude du processus métier. Pour l’étape « Trace the Entire », définissez les entrées, le responsable de l’étape et les critères de sortie avant de modifier du code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Enregistrez les temps d’exécution ainsi que le coût des tokens ou des requêtes à côté des résultats fonctionnels. Une visibilité précoce des coûts évite les factures inattendues lorsque le processus passe d’un environnement de démonstration à des environnements partagés.

Request ID
    ↓
User Question
    ↓
Query Transformation
    ↓
Retrieved Documents
    ↓
Reranking Results
    ↓
Prompt Version
    ↓
Model
    ↓
Tool Calls
    ↓
Tool Responses
    ↓
Final Response
    ↓
Validation

13. Ne vous concentrez pas uniquement sur la précision

Lors de l’étape 13 « Ne vous concentrez pas uniquement sur la précision », notez d’abord les éléments essentiels : les entrées requises, le signal de succès et ce qui se passe en cas d’échec partiel. Cette liste de contrôle permet de garantir l’honnêteté des modifications ultérieures du code. Conservez la configuration en dehors du code de l’application. Les fichiers d’environnement, les bases de données secrètes et les indicateurs fonctionnels doivent être regroupés en un seul endroit que les opérateurs peuvent auditer sans avoir à lire l’ensemble du système. Créez des points de contrôle après les étapes coûteuses. Le mécanisme de reprise ne doit pas facturer à nouveau la même appel du LLM lorsque l’opérateur réessaie un nœud ultérieur.

Response Quality
      +
Reliability
      +
Latency
      +
Cost
      +
User Experience

Pensées finales

Lors de l’étape des Réflexions finales, notez d’abord les conditions du contrat : entrées requises, signal de succès et conséquences en cas d’échec partiel. Cette liste de contrôle garantit l’intégrité des modifications ultérieures du code.

Liste de contrôle opérationnelle

Pendant l’étape de la Liste de contrôle opérationnelle, écrivez d’abord les conditions du contrat : entrées requises, signal de succès et réactions en cas d’échec partiel. Cette liste assure la transparence des modifications de code ultérieures.

Considérez cette étape comme un contrat entre les entrées et les sorties validées. Donnez des noms aux artefacts, définites des vérifications de succès et refusez les terminations partielles silencieuses.

Point de contrôle après des étapes coûteuses. La reprise ne doit pas facturer à nouveau la même appel de LLM lorsque l’opérateur réessaie un nœud ultérieur.

Fixez les versions des dépendances et enregistrez le digest de l’image ayant exécuté la démonstration. La reproductibilité vaut mieux que les connaissances propres à un groupe.

Enregistrez les temps d’exécution ainsi que le coût en tokens ou en requêtes à côté des résultats fonctionnels. Une visibilité précoce des coûts évite des factures inattendues lorsque le processus passe de la démonstration à des environnements partagés.

Point de contrôle après des étapes coûteuses. La reprise ne doit pas facturer à nouveau la même appel de LLM lorsque l’opérateur réessaie un nœud ultérieur.

Au préalable de promouvoir l’ensemble, figez les versions, capturez une transcription exemplaire pour le chemin critique et confirmez les étapes de rollback. Les environnements partagés nécessitent des limites de débit, des vérifications d’attribution et un responsable clair pour la rotation des secrets. Préférez une fiabilité banale à des démonstrations originales mais éphémères.

Note de lot pour 1481fc99429e : ne pas inclure les clés du fournisseur dans le répertoire, fixer une limite pour les tokens par session, et stocker les transcriptions à côté des fichiers d’évaluation afin que les remplacements ultérieurs de modèles restent comparables.