Chargement de l'image...Kiro

Produit

  • À propos de Kiro
  • Agents
  • IDE
  • CLI
  • Web
  • Mobile
  • Crew
  • Tarification
  • Téléchargements

Pour

  • Entreprise
  • Startups
  • Étudiants

Communauté

  • Aperçu
  • Ambassadeurs
  • Discord
  • Événements
  • Powers
  • Boutique
  • Vitrine

Ressources

  • Docs
  • Blogue
  • Journal des modifications
  • FAQ
  • Signaler un bogue
  • Suggérer une idée
  • Soutien à la facturation

Réseaux sociaux

Conditions d'utilisation du siteLicencePolitique d'IA responsableMentions légalesPolitique de confidentialitéPréférences relatives aux témoins
Chargement de l'image...Kiro
  • Agents
  • Entreprise
  • Tarification
  • Docs
SE CONNECTERTÉLÉCHARGER
Chargement de l'image...Kiro

Pour commencer

InstallationAuthentificationVotre premier projet

Modèles

AperçuModèles disponiblesEffort de raisonnement

Fonctionnalités

Comment fonctionne KiroIntégrations ACP
Specs
Steering
Hooks
MCP
Autorisations
Agents personnalisés
Workflows
Agent Skills
Powers
Sessions cloudCompactionKiroignorePoints de contrôle et rewind
Outils intégrés
Portées de configuration

IDE 1.x

Nouveautés de la version 1.0
Configuration et premier lancement
Éditeur
Chat
Expérimental
DépannageRéférence 0.x

CLI

Nouveautés de V3
Guide de migration
Mise à niveau des configs d'agent
Migration des autorisations
Migration des Hooks
Migrer un client ACP vers CLI V3
Modifications de la configuration des agents
Nouvelles fonctionnalités de la version 3.0
Tangent
Configuration et première exécution
Interface utilisateur du terminal
Clavardage
Mode plein écranMode vocalMode sans interfaceACPAutocomplétion
Expérimental
Référence 2.x

Crew

Démarrage rapideInstallationFonctionnement 24/7
Chat
Agent Capabilities
Fonctionnalités
Interfaces
Applications
Système et stockageConfigurationSécuritéDépannage

Web

Configuration et première exécutionIdentity Center
Connectez vos dépôts
Utilisation de l'agent
Mode autonomeAutomatisationsMémoireSynchronisation de la configuration
Sandbox

Mobile - Aperçu

Aperçu

Commandes et référence

Commandes CLICommandes à barre obliqueOutils intégrésCodes de sortieParamètres

Facturation

AperçuGestion de votre abonnementMise à niveau de votre forfaitRétrogradation de votre forfaitAnnulation de votre forfaitAchat de crédits supplémentairesGestion de vos paiementsGestion des notifications d'utilisationGestion de vos impôtsCommuniquer avec le soutien à la facturationSuppression de votre compteQuestions connexes

Entreprise

ConceptsDémarrage rapide de l'intégration
Connexion de votre fournisseur d'identité
Options de déploiementAbonnez votre équipeGérer les abonnements
Governance
Surveillance et suivi
ParamètresMises à jour géréesFacturationIAMRégions prises en charge

Confidentialité et sécurité

AperçuProtection des donnéesRéférences de codeValidation de la conformitéSécurité de l'infrastructureAutorisations IAMPare-feu, mandataires et périmètres de donnéesPoints de terminaison VPC (AWS PrivateLink)

Guides

Aperçu
Prise en charge des langages
Apprendre en jouant

Migration

Migration depuis Q DeveloperMigration depuis VSCodeMise à niveau depuis Q CLI
  1. Docs
  2. CLI
  3. Nouveautés de V3
  4. Migrer un client ACP vers CLI V3
Afficher en Markdown

Migrer un client ACP vers CLI V3

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et la version anglaise originale, la version anglaise prévaudra.
Afficher en Markdown

Si vous maintenez un module d'extension pour un éditeur, une extension d'IDE ou un autre client ACP qui lance kiro-cli acp, ce guide présente les changements requis pour passer du serveur ACP CLI v2 à CLI V3 : comment lancer le nouveau serveur, comment fonctionne la négociation des capacités et quelles API v2 ont été remplacées ou supprimées.

Info

Ce guide s'adresse aux personnes qui mettent en œuvre des clients ACP. Si vous souhaitez simplement utiliser Kiro dans les IDE JetBrains, Zed ou un autre éditeur compatible, suivez plutôt la configuration de l'éditeur ACP.

Aperçu de la migration

AspectCLI v2CLI V3
Lancement du serveurkiro-cli acpMoteur V3 explicite; authentification gérée par CLI ou le client
Agent, modèle et effortIndicateurs de lancementEntrées de session et options de configuration annoncées
Méthodes optionnellesCatalogue _kiro.dev/* fixeNégociation des capacités standard et agentCapabilities._meta.kiro.extensionMethods
Sélection du modèlesession/set_modelsession/set_config_option avec configId: "model"
Découverte de sessionLecture de ~/.kiro/sessions/cli/session/list et session/load
Mises à jour en directMises à jour standard plus _kiro.dev/session/updatesession/update standard avec types de mises à jour supplémentaires et _meta.kiro
Commandes slash_kiro.dev/commands/executeComportement client, méthodes ACP standard ou extension typée négociée
PermissionsRequêtes _meta.trustOptions et réponses _meta.trustOptionoptions[] standard; retourner _meta.kiro.consent pour les choix persistants
État MCPÉvénements _kiro.dev/mcp/* par serveurInstantanés complets _kiro/mcp/status
Paramètres client_kiro.dev/settings/list et setStockage appartenant au client; envoyer uniquement les paramètres pertinents pour l'agent

Conservez des adaptateurs CLI v2 et CLI V3 distincts tant que vous prenez en charge les deux générations de serveurs. La version du protocole ACP n'identifie pas la génération du serveur, car les deux négocient la version 1.

1. Démarrer le serveur CLI V3

Configurez votre client pour démarrer CLI V3 explicitement :

bash
/full/path/to/kiro-cli acp --agent-engine=v3 --auth-method=cli

CLI V3 utilise JSON-RPC 2.0 délimité par des sauts de ligne sur l'entrée standard et la sortie standard. Chaque objet JSON occupe une ligne.

--auth-method=cli conserve la gestion des jetons d'accès dans le processus Kiro CLI. Si vous l'omettez, votre client doit implémenter la requête agent-vers-client _kiro/auth/getAccessToken et protéger les valeurs des jetons contre les journaux et les diagnostics. Privilégiez la gestion de l'authentification par CLI, sauf si votre client gère déjà l'authentification Kiro.

Retirez les indicateurs réservés à CLI v2 de la commande de lancement V3 :

  • --agent
  • --model
  • --effort
  • --trust-all-tools
  • --trust-tools

CLI V3 rejette ces indicateurs sur la commande acp. Sélectionnez le mode agent, le modèle et l'effort après l'initialisation. Enregistrez durablement le consentement aux outils au moyen du flux de permissions CLI V3.

Info

Utilisez le chemin complet vers l'exécutable lorsqu'un éditeur n'hérite pas de la variable PATH de l'interpréteur de commandes de l'utilisateur.

2. Négocier les capacités

Appelez initialize, puis utilisez les capacités retournées pour décider quels comportements UI et protocole activer. N'inférez pas la prise en charge à partir d'une version de Kiro CLI ou d'une liste de méthodes codée en dur.

CLI V3 peut annoncer ces méthodes standard :

MéthodeObjectif
initializeNégocier le protocole, l'authentification et les capacités
authenticateUtiliser une méthode d'authentification ACP standard annoncée
session/newCréer une session
session/listDécouvrir les sessions via le serveur
session/loadRestaurer une session et rejouer son état
session/forkCréer une session à partir d'un point antérieur
session/promptDémarrer un tour
session/cancelAnnuler le tour actif
session/set_modeChanger le mode actif
session/set_config_optionModifier une option annoncée telle que le modèle ou l'effort

CLI V3 n'implémente pas session/set_model. Changez le modèle via l'option de configuration model annoncée :

json
{ "jsonrpc": "2.0", "id": 7, "method": "session/set_config_option", "params": { "sessionId": "session-1", "configId": "model", "value": "claude-sonnet" } }

Utilisez configId: "effortLevel" pour l'effort. Changez le mode avec session/set_mode ou une option de configuration mode annoncée.

Négocier les extensions Kiro

Lisez les méthodes de requête Kiro optionnelles depuis agentCapabilities._meta.kiro.extensionMethods. Lisez également les sources de session annoncées, les portées de liste, les cibles d'exécution, le marquage de relecture et la configuration de journalisation lorsque votre client les utilise.

L'annonce du serveur en cours d'exécution fait autorité. Différents déploiements peuvent retourner des tableaux différents. Conditionnez chaque requête optionnelle à la liste de méthodes annoncée, ignorez les champs inconnus et préservez les données _meta inconnues lors des relais et de la relecture.

Enregistrez tous les gestionnaires agent-vers-client requis avant de créer ou de charger une session :

  • session/update : requis pour tous les clients; enregistrez-le avant de créer ou de charger une session, car les mises à jour en direct ne sont pas mises en mémoire tampon pour les futurs abonnés (la relecture fournit l'historique antérieur, pas les événements en direct manqués)
  • session/request_permission : requis si le client présente des approbations d'outils
  • _kiro/auth/getAccessToken : requis lorsque le serveur n'a pas été démarré avec --auth-method=cli

3. Créer, découvrir et charger des sessions

CLI V3 accepte cwd, mcpServers et les additionalDirectories standard de niveau supérieur sur session/new et session/load. Les clients compatibles Kiro peuvent également envoyer des valeurs initiales telles que modeId, modelId et effortLevel sous _meta.kiro.

json
{ "jsonrpc": "2.0", "id": 8, "method": "session/new", "params": { "cwd": "/workspace/project", "additionalDirectories": ["/workspace/shared"], "mcpServers": [], "_meta": { "kiro": { "modeId": "vibe", "modelId": "claude-sonnet", "effortLevel": "high" } } } }

Lisez les modes retournés et les options de configuration au lieu de coder les choix en dur.

Renvoyer les entrées appartenant au client lors du chargement

Les définitions de serveurs MCP fournies par le client sont des entrées de session. CLI V3 ne persiste pas ces définitions dans session.json, donc renvoyez-les lors de session/load. Envoyez également le cwd actuel et les répertoires supplémentaires.

json
{ "jsonrpc": "2.0", "id": 9, "method": "session/load", "params": { "sessionId": "session-1", "cwd": "/workspace/project", "additionalDirectories": ["/workspace/shared"], "mcpServers": [] } }

Conservez l'ID de session demandé dans l'état client. Ne comptez pas sur la réponse de chargement pour le répéter.

Traiter le stockage comme appartenant au serveur

N'écrivez pas directement les fichiers de session Kiro et ne dépendez pas de la structure de répertoires CLI V3. Les sessions locales et distantes ne partagent pas un modèle de système de fichiers lisible par le client.

Utilisez session/list pour découvrir les sessions et session/load pour les restaurer. Pour le transfert de fichiers ou l'historique plus ancien, utilisez une méthode d'export ou d'historique annoncée. Ne passez pas de chemin d'archive à session/load. Un analyseur de fichiers CLI v2 en lecture seule peut rester dans l'adaptateur v2 tant que vous prenez en charge cette génération.

4. Gérer les mises à jour de session

CLI V3 émet des mises à jour avec les discriminateurs snake_case existants et d'autres types de mises à jour standard. Les valeurs suivantes identifient les mises à jour dans le champ sessionUpdate d'une notification session/update.

Type de mise à jourAction client
user_message_chunkAfficher le contenu utilisateur renvoyé ou rejoué lorsqu'il est fourni
agent_message_chunkAjouter le contenu de réponse diffusé en continu
agent_thought_chunkAfficher le contenu de pensée selon l'UX du client
tool_callCréer ou mettre à jour une carte d'outil par toolCallId
tool_call_updateAppliquer la progression, la sortie et l'état terminal à la même carte
available_commands_updateRemplacer le catalogue de commandes annoncé
current_mode_updateMettre à jour le mode actif
config_option_updateRemplacer l'état de configuration annoncé
session_info_updateRépartir selon _meta.kiro.kind : context_usage contient usagePercentage; turn_completion contient les données de mesure du tour (promptTurnSummaries), le temps écoulé et l'état; les autres types contiennent l'état du cycle de vie

Associez les mises à jour et les requêtes de permission à l'appel d'origine avec toolCallId, et non avec le nom de l'outil. Acheminez chaque notification par sessionId et traitez les mises à jour de chaque session dans l'ordre d'arrivée. Les types de mises à jour et les champs de métadonnées inconnus ne doivent pas faire échouer la session.

Lorsque les métadonnées d'identité stable sont absentes, affichez le kind et le title standard. Ne déduisez jamais l'identité d'un outil intégré à partir d'un titre lisible par l'humain, et n'utilisez jamais les métadonnées d'identité affichées pour autoriser une action.

Terminer les tours depuis la réponse de requête

Considérez une requête session/prompt en attente comme terminée uniquement lorsqu'elle renvoie une réponse ou une erreur. Ne considérez pas session_info_update avec _meta.kiro.kind: "turn_end" comme la fin de la requête. CLI V3 peut l'émettre, puis poursuivre le traitement avant le retour de la requête, et n'émet pas de discriminateur de mise à jour TurnEnd.

Si le transport est interrompu avant l'arrivée de la réponse, reconnectez-vous et enregistrez le gestionnaire session/update avant d'appeler session/load. Les mises à jour rejouées arrivent pendant le chargement; l'enregistrement après celui-ci peut donc les manquer. Ne renvoyez pas automatiquement la requête. Même si la relecture indique que le tour précédent est terminé, un nouvel envoi peut répéter ses modifications, et l'historique chargé ne peut pas récupérer la réponse perdue.

Gérer la relecture et les reconnexions

Une mise à jour rejouée d'une session locale peut porter _meta.kiro.replay: true dans la charge utile de mise à jour :

json
{ "jsonrpc": "2.0", "method": "session/update", "params": { "sessionId": "session-1", "update": { "sessionUpdate": "agent_message_chunk", "content": { "type": "text", "text": "Previously streamed response" }, "_meta": { "kiro": { "replay": true } } } } }

La relecture distante n'est pas garantie de marquer chaque mise à jour rejouée. Enregistrez le gestionnaire de mises à jour avant d'appeler session/load, car les mises à jour en direct ne sont pas conservées pour les futurs abonnés. Reconstruisez l'état après une reconnexion ou une perte de livraison suspectée.

Pour les sessions locales, traitez noReplay: true comme une suppression de la transcription, et non comme une suppression des mises à jour d'état actuel. Les chargements distants omettent également la connexion au flux de mises à jour en direct; n'utilisez donc pas noReplay pour une session distante si votre client a besoin des mises à jour suivantes.

5. Migrer les permissions et le consentement

session/request_permission reste une requête agent-vers-client. Traitez la liste options[] standard comme faisant autorité et affichez uniquement les choix fournis par l'agent.

Une requête CLI V3 peut ajouter un contexte de consentement sous _meta.kiro.consent :

json
{ "method": "session/request_permission", "params": { "sessionId": "session-1", "toolCall": { "toolCallId": "call-1", "title": "Run tests", "status": "pending" }, "options": [ { "optionId": "accept", "name": "Allow", "kind": "allow_once" }, { "optionId": "always-accept", "name": "Always allow", "kind": "allow_always" }, { "optionId": "reject", "name": "Deny", "kind": "reject_once" }, { "optionId": "always-reject", "name": "Always deny", "kind": "reject_always" } ], "_meta": { "kiro": { "consent": { "capability": "shell", "resource": "npm run test", "triggeringResource": "npm run test", "workspaceRoot": "/workspace/project", "persistableConsent": true } } } } }

Ne synthétisez jamais une option que l'agent a omise. Retournez une option ponctuelle immédiatement. Pour une option persistante offerte, un client compatible Kiro peut recueillir à la fois un motif de ressource et une portée de persistance, puis retourner l'optionId original avec des métadonnées de consentement canoniques :

json
{ "outcome": { "outcome": "selected", "optionId": "always-accept" }, "_meta": { "kiro": { "consent": { "scope": "workspace", "resource": "npm run *", "workspaceRoot": "/workspace/project" } } } }

CLI V3 valide la réponse, persiste une règle valide, reconstruit la politique et réévalue l'invocation initiale. Une opération multi-ressources peut émettre une autre requête de permission pour la prochaine ressource non couverte.

Avertissement

Une réponse de permission n'autorise que l'option et la ressource fournies par l'agent. N'accordez pas de permission à partir d'un titre d'outil, d'une identité fournie par le modèle, d'une annotation MCP ou de métadonnées répercutées par le client. La politique configurée et les refus l'emportent toujours.

Supprimer les champs de permission CLI v2

Champ CLI v2Comportement CLI V3
Requête _meta.trustOptionsUtilisez les options[] standard fournis et _meta.kiro.consent
Réponse _meta.trustOptionRetournez _meta.kiro.consent canonique pour une option persistante
Requête _meta.fsReadPathsCLI V3 évalue chaque chemin avant de demander une permission
Réponse _meta.feedbackEnvoyez le texte comme entrée conversationnelle, pas comme métadonnée de permission

Pour le texte saisi pendant qu'une permission est en attente, choisissez un comportement explicite :

  • Pour accompagner le choix de permission, mettez le texte en file d'attente comme guidage avant de retourner la disposition sélectionnée.
  • Pour remplacer le tour bloqué, annulez les permissions en attente, envoyez session/cancel, attendez que la réponse session/prompt originale se résolve, puis envoyez un nouveau session/prompt. N'attendez pas de discriminateur de mise à jour TurnEnd.

Gardez un refus simple distinct d'une interruption qui porte une nouvelle instruction.

Traiter les annotations MCP comme des affirmations non fiables

CLI V3 peut inclure une enveloppe _meta.kiro.mcpTool versionnée avec l'identité du serveur et de l'outil résolue par l'hôte, plus des indications optionnelles de comportement MCP. Lisez la version 1 lorsqu'elle est présente, et revenez aux champs plats mcpToolIdentity et mcpAnnotations CLI v2 uniquement pendant la prise en charge du serveur hérité.

json
{ "method": "session/request_permission", "params": { "sessionId": "session-1", "toolCall": { "toolCallId": "call-2", "title": "@example-server/search", "status": "pending" }, "options": [ { "optionId": "accept", "name": "Allow", "kind": "allow_once" }, { "optionId": "reject", "name": "Deny", "kind": "reject_once" } ], "_meta": { "kiro": { "mcpTool": { "version": 1, "identity": { "serverName": "example-server", "toolName": "search" }, "annotations": { "readOnlyHint": true, "openWorldHint": true } } } } } }

L'objet annotations est optionnel. Les quatre indications prises en charge sont readOnlyHint, destructiveHint, idempotentHint et openWorldHint. Préservez la différence entre un champ omis et un false explicite. N'utilisez jamais une indication seule pour approuver un appel, éviter une demande d'autorisation, réduire le risque, réessayer automatiquement ou contourner une politique réseau.

Les mises à jour d'outils échouées peuvent inclure _meta.kiro.failureReason avec cancelled, denied ou error. Utilisez-le lorsqu'il est présent, conservez un repli hérité lorsqu'il est absent, et traitez une valeur inconnue comme un échec générique.

6. Remplacer les API de commandes

CLI V3 supprime les API génériques _kiro.dev/commands/execute et _kiro.dev/commands/options. Ne les remplacez pas par un transport session/prompt universel. Utilisez le comportement local au client, les méthodes ACP standard, la configuration annoncée ou une extension typée négociée pour chaque commande.

Commande CLI v2Remplacement CLI V3
/helpConstruire l'aide depuis le registre de commandes client
/modelsession/set_config_option avec configId: "model"
/agentChanger le mode annoncé; garder l'édition de profil locale au client
/context_kiro/session/context annoncé
/compact_kiro/session/compact annoncé
/clearCréer et adopter une nouvelle session
/quitFermer le client localement
/usage_kiro/account/getUsage annoncé
/pasteLire le presse-papiers client et envoyer un bloc d'image ACP
/mcpAfficher _kiro/mcp/status; gérer les déclarations hors du panneau de session
/toolsAfficher _kiro/tools/didChange; persister le consentement via les permissions
/planPasser en mode planificateur, puis envoyer le texte suivant avec session/prompt
/feedbackAfficher les choix appartenant au client et ouvrir l'URL sélectionnée localement
/chatComposer session/list, session/new et session/load
/knowledge_kiro/knowledge annoncé
/promptsUtiliser available_commands_update et les sources de requêtes appartenant au client
/replyModifier la dernière réponse localement, puis appeler session/prompt
/code_kiro/codeIntelligence annoncé
/voiceCapturer et transcrire localement, puis appeler session/prompt
/hooksAfficher le cache de hooks ou appeler _kiro/hooks/list annoncé
/guideRetiré; supprimez-le pour CLI V3
/rewindsession/fork au message sélectionné, puis charger la branche
/statsRetiré; supprimez-le pour CLI V3
/effortsession/set_config_option avec configId: "effortLevel"
/goalUtiliser les méthodes _kiro/workflow/* annoncées et les notifications de cycle de vie

Utilisez available_commands_update pour les commandes invocables, _kiro/tools/didChange pour les outils natifs et _kiro/mcp/status pour l'inventaire MCP. Gardez la découverte de commandes séparée de l'invocation : affichez une commande uniquement lorsque votre client dispose d'une route définie pour celle-ci.

7. Remplacer ou supprimer les API privées

Le tableau suivant couvre les API privées CLI v2 à fort impact restantes. Conditionnez chaque extension CLI V3 à l'annonce de capacités.

_session/steer conserve intentionnellement son nom de méthode _session/ existant dans CLI V3. Ne le renommez pas en _kiro/session/steer.

API CLI v2Migration CLI V3
_kiro.dev/session/update tool_call_chunksession/update standard avec sessionUpdate: "tool_call"
AgentExecutionUserMessageQueuedsession_info_update avec _meta.kiro.kind: "steering_queued"
AgentExecutionSteeringInjectedsession_info_update avec _meta.kiro.kind: "steering_injected"
AgentExecutionUserMessageClearedsession_info_update avec _meta.kiro.kind: "steering_cleared"
_kiro.dev/metadatasession_info_update selon la fonction : context_usage pour l’utilisation de la fenêtre de contexte et turn_completion pour la mesure du tour; config_option_update pour la configuration
_kiro.dev/compaction/statusTypes session_info_update de résumé
_kiro.dev/error/rate_limit_kiro/error/rate_limit
_message/sendsession/prompt pour une session inactive; _session/steer pendant un tour actif
_session/spawnsession/new, _kiro/session/rename optionnel, puis session/prompt en arrière-plan
_kiro.dev/agent/switchedcurrent_mode_update et config_option_update
_kiro.dev/agent/not_found_kiro/customAgent/not_found
_kiro.dev/agent/config_error_kiro/customAgent/config_error
_kiro.dev/subagent/list_updateAfficher l'activité d'outil ou de sous-tâche observable; pas de remplacement exact de la liste
_kiro.dev/goal/statusNotifications de cycle de vie _kiro/workflow/* annoncées
_kiro.dev/mcp/server_initializedEntrées connectées dans _kiro/mcp/status
_kiro.dev/mcp/server_init_failureEntrées échouées dans _kiro/mcp/status
_kiro.dev/mcp/oauth_requestÉtat d'authentification requise, réinitialisation explicite et _kiro/openExternalUrl
_kiro.dev/mcp/governance_disabled_kiro/mcp/governance_disabled plus _kiro/governance/state
_kiro.dev/webTools/governance_disabled_kiro/governance/state
_kiro.dev/settings/listLire les préférences appartenant au client et envoyer les paramètres d'agent typés si nécessaire
_kiro.dev/settings/setPersister les préférences appartenant au client localement
_kiro.dev/clear/statusTraiter un session/new réussi comme l'accusé de réception
_kiro.dev/telemetry/*Supprimer de l'ACP; la télémétrie d'application appartient au client
_kiro.dev/session/terminatePas d'équivalent CLI V3 actuel; utilisez session/cancel uniquement pour arrêter un tour actif

Les mises à jour retry_warning, stream_stall_notice et stream_discarded v2 sont intentionnellement retirées. Maintenez le tour actif jusqu'à l'arrivée d'un signal de cycle de vie ordinaire ou terminal. N'inférez pas un état de réessai ou de blocage à partir de la latence, et ne supprimez pas de façon heuristique une sortie déjà diffusée.

8. Migrer l'état MCP et OAuth

Traitez chaque notification _kiro/mcp/status comme un instantané complet, pas comme un événement à ajouter. Remplacez l'instantané précédent par nom de serveur, affichez les états connected, failed et disabled, et évitez de réafficher un échec inchangé.

Pour une session CLI V3 locale, un flux OAuth interactif utilise trois messages :

  1. _kiro/mcp/status signale un serveur échoué avec failedAuthorization: true.
  2. Le client appelle _kiro/mcp/resetServer annoncé avec startOAuth: true après que l'utilisateur choisit de s'authentifier.
  3. L'agent envoie _kiro/openExternalUrl avec la nouvelle URL d'autorisation.

Enregistrez _kiro/openExternalUrl avant l'initialisation et annoncez clientCapabilities._meta.kiro.openExternalUrl: true. Ouvrez uniquement l'URL fournie par cette requête, utilisez une action visible de l'utilisateur, et ne journalisez ni ne partagez jamais l'URL d'autorisation.

resetServer démarre une réauthentification forcée. Ce n'est pas une opération d'annulation ou de déconnexion autonome, et ne garantit pas la révocation chez le fournisseur distant.

9. Valider le client migré

Vérifiez le client contre les deux adaptateurs avant de supprimer la prise en charge CLI v2.

Lancement et négociation

  • CLI V3 démarre avec --agent-engine=v3 et le propriétaire d'authentification prévu.
  • Aucun indicateur de lancement CLI v2 uniquement ne reste.
  • Le client n'utilise pas protocolVersion ACP comme discriminateur de génération.
  • Les méthodes optionnelles ne sont activées que lorsqu'elles sont annoncées.
  • Les champs inconnus, les types de mises à jour et les champs voisins de _meta sont ignorés sans problème.

Sessions et mises à jour

  • session/new et session/load envoient toutes les entrées actuelles appartenant au client.
  • Les sessions sont découvertes via session/list, pas le système de fichiers.
  • Chaque mise à jour est acheminée par sessionId et chaque événement d'outil par toolCallId.
  • La réponse de requête termine le tour sans attendre une mise à jour TurnEnd.
  • La relecture, la reconnexion et les sessions concurrentes préservent l'ordre et l'isolation.

Permissions et sécurité

  • Le client affiche uniquement les options de permission fournies par l'agent.
  • Les choix persistants retournent la portée de consentement canonique et les métadonnées de ressource.
  • Les annotations MCP sont des affirmations non fiables à affichage uniquement.
  • Les jetons d'accès et les URL OAuth n'entrent jamais dans les journaux, les données analytiques ou les rapports de plantage.
  • Les requêtes agent-vers-client inconnues reçoivent une erreur JSON-RPC au lieu de bloquer.

Commandes et extensions

  • Chaque commande affichée dispose d'une route locale, ACP standard ou d'extension annoncée.
  • Les API privées supprimées ne sont pas appelées par l'adaptateur CLI V3.
  • Les notifications d'instantané remplacent l'état précédent au lieu d'accumuler des doublons.
  • Les événements de réessai et de blocage de flux retirés ne sont pas synthétisés.

Dépannage

Le processus ne démarre pas

Utilisez le chemin complet vers kiro-cli, confirmez qu'il est exécutable et supprimez les indicateurs de lancement incompatibles avec V3. Vérifiez la sortie d'erreur standard pour le message exact d'erreur d'argument CLI.

L'initialisation ou la première session se bloque

Confirmez que le client écrit un objet JSON-RPC par ligne. Si --auth-method=cli est absent, vérifiez que le client répond à _kiro/auth/getAccessToken. Toute requête agent-vers-client avec un id nécessite une réponse ou une erreur JSON-RPC explicite.

Un changement de modèle, de mode ou d'effort échoue

Utilisez uniquement des valeurs provenant des options de configuration annoncées actuelles. Ne réutilisez pas une valeur mise en cache depuis un autre compte, une autre génération de serveur ou un autre déploiement.

Une session chargée perd les serveurs MCP

Renvoyez les définitions mcpServers appartenant au client lors de session/load. Ne supposez pas que le serveur les a persistées avec la session.

Un tour ne se termine jamais

Terminez le tour depuis la réponse session/prompt. N'attendez pas de discriminateur de mise à jour TurnEnd. Si une requête de permission est en attente, l'agent attend la réponse du client.

Une extension renvoie une erreur de méthode introuvable

Relisez le résultat initialize actuel. Appelez uniquement les méthodes listées dans agentCapabilities._meta.kiro.extensionMethods et prenez en charge les déploiements qui annoncent un ensemble plus restreint.

Voir aussi

  • Agent Client Protocol (ACP) — comment les clients se connectent au harnais d'agent unifié
  • Configuration d'un éditeur ACP et référence CLI v2
  • Guide de migration — étapes de mise à niveau de CLI 2.x vers V3
  • Migration des permissions — remplacement des indicateurs de confiance par des permissions basées sur les capacités
  • Spécification Agent Client Protocol
Page mise à jour : 1 octobre 2026
Migration des Hooks
Modifications de la configuration des agents