{"id":732885,"date":"2026-08-26T08:53:53","date_gmt":"2026-08-26T07:53:53","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=idea&#038;p=732885"},"modified":"2026-08-26T08:54:36","modified_gmt":"2026-08-26T07:54:36","slug":"comment-utiliser-des-agents-d-ia-avec-l-acp-dans-intellij-idea","status":"publish","type":"idea","link":"https:\/\/blog.jetbrains.com\/fr\/idea\/2026\/08\/comment-utiliser-des-agents-d-ia-avec-l-acp-dans-intellij-idea\/","title":{"rendered":"Comment utiliser des agents d&#8217;IA avec l&#8217;ACP dans IntelliJ IDEA"},"content":{"rendered":"<p>Le <a href=\"https:\/\/agentclientprotocol.com\/protocol\/overview\" target=\"_blank\" rel=\"noopener\">protocole ACP (Agent Client Protocol)<\/a> d\u00e9finit un contrat commun entre un client (tel qu&#8217;IntelliJ IDEA) et un agent. IntelliJ IDEA inclut d\u00e9j\u00e0 plusieurs agents compatibles avec l&#8217;ACP\u00a0: Codex, Claude Agent et Junie. Au-del\u00e0 de ces options int\u00e9gr\u00e9es, le registre ACP offre davantage de choix, et les \u00e9quipes peuvent enregistrer des agents internes ou non r\u00e9pertori\u00e9s via acp.json.<\/p>\n<p>L&#8217;id\u00e9e cl\u00e9 est la <strong>fronti\u00e8re<\/strong>. IntelliJ IDEA reste l&#8217;environnement dans lequel vous naviguez dans le projet, inspectez le code et examinez les modifications. Via la connexion ACP, chaque agent conserve ses propres mod\u00e8les, son comportement, son authentification ainsi que ses outils c\u00f4t\u00e9 agent.<\/p>\n<p>Ainsi, l\u2019unit\u00e9 rempla\u00e7able est plus grande qu\u2019un LLM. Un agent compatible avec l\u2019ACP int\u00e8gre tout l\u2019environnement autour du mod\u00e8le : sa logique de planification, ses outils, son comportement en mati\u00e8re de routage des mod\u00e8les et son observabilit\u00e9. Comme l\u2019ACP standardise l\u2019interface entre l\u2019IDE et l\u2019agent, vous pouvez facilement remplacer un agent par un autre, sans modifier la mani\u00e8re dont IntelliJ IDEA s\u2019int\u00e8gre \u00e0 celui-ci.\u00a0<\/p>\n<h2 class=\"wp-block-heading\"><strong>L&#8217;ACP en quelques mots<\/strong><\/h2>\n<p>L&#8217;ACP est souvent d\u00e9crit comme le LSP (Language Server Protocol) des agents de programmation. L&#8217;analogie fonctionne parce que le probl\u00e8me d&#8217;int\u00e9gration est similaire.<\/p>\n<p>Avant le LSP, a prise en charge de chaque langage impliquait d&#8217;\u00e9crire une int\u00e9gration distincte dans l\u2019\u00e9diteur. Le <a href=\"https:\/\/blog.jetbrains.com\/fr\/idea\/2026\/08\/l-extension-lsp-d-intellij-idea-l-intelligence-de-code-java-et-kotlin-arrive-dans-vs-code-cursor-et-les-workflows-agentiques\/\">LSP<\/a> a remplac\u00e9 cette matrice par un contrat unique.<\/p>\n<p>L&#8217;ACP applique cette m\u00eame id\u00e9e \u00e0 la connexion entre un \u00e9diteur ou un IDE et un agent de programmation. Tout agent compatible avec l&#8217;ACP peut se connecter sans n\u00e9cessiter de plugin sp\u00e9cifique ou d&#8217;API priv\u00e9e pour chaque int\u00e9gration.<\/p>\n<p>L&#8217;ACP est n\u00e9 d&#8217;une <a href=\"https:\/\/blog.jetbrains.com\/ai\/2025\/10\/jetbrains-zed-open-interoperability-for-ai-coding-agents-in-your-ide\/\">collaboration entre JetBrains et Zed<\/a>, les IDE JetBrains et Zed \u00e9tant tous deux d\u00e9finis comme clients d\u00e8s le d\u00e9but du projet.<\/p>\n<p>Pour les agents locaux, IntelliJ IDEA d\u00e9marre un sous-processus et communique avec lui via JSON-RPC, en utilisant une entr\u00e9e et une sortie standard. Lors de l&#8217;initialisation, l&#8217;IDE et l&#8217;agent n\u00e9gocient les versions du protocole et les capacit\u00e9s. Une fois la connexion \u00e9tablie, les prompts sont transmis \u00e0 l&#8217;agent, tandis que les informations sur la progression, les op\u00e9rations sur les fichiers et les demandes d&#8217;autorisations sont renvoy\u00e9es \u00e0 l&#8217;IDE.<\/p>\n<p>Les agents peuvent n\u00e9anmoins se comporter diff\u00e9remment dans le cadre de ce contrat partag\u00e9. Pendant l&#8217;initialisation, chacun d\u00e9clare les capacit\u00e9s optionnelles qu&#8217;il prend en charge. Les plans, modes, commandes slash, chargements de session, op\u00e9rations dans le terminal et autres fonctionnalit\u00e9s peuvent varier d&#8217;un agent \u00e0 l&#8217;autre.<\/p>\n<p>L&#8217;ACP g\u00e8re les interactions entre IntelliJ IDEA et l&#8217;agent. Des outils et du contexte suppl\u00e9mentaires peuvent \u00eatre transmis \u00e0 l\u2019agent via le MCP (Model Context Protocol), notamment par l\u2019interm\u00e9diaire de serveurs configur\u00e9s par l\u2019utilisateur et du serveur MCP int\u00e9gr\u00e9 d\u2019IntelliJ.<\/p>\n<h1 class=\"wp-block-heading\">Commencer avec un agent disponible<\/h1>\n<p>IntelliJ IDEA est livr\u00e9 avec plusieurs agents qui ne n\u00e9cessitent aucune configuration ACP manuelle, notamment Codex, Claude Agent et Junie. Choisissez-en un et d\u00e9crivez la t\u00e2che que vous souhaitez lui confier.<\/p>\n<p>Chaque agent poss\u00e8de son propre style de workflow, qui peut inclure un mode de planification, des commandes slash ou un flux d&#8217;authentification sp\u00e9cifique. L&#8217;ACP permet \u00e0 IntelliJ IDEA de prendre en charge cette interaction via un contrat partag\u00e9, tout en pr\u00e9servant ces diff\u00e9rences.<\/p>\n<p>Demandez \u00e0 l&#8217;agent d&#8217;apporter une petite modification. Apr\u00e8s qu&#8217;il a modifi\u00e9 un fichier, le chat IA affiche le fichier modifi\u00e9 dans la conversation. Cliquez dessus pour ouvrir le diff dans l&#8217;\u00e9diteur \u00e0 c\u00f4t\u00e9 du chat et inspecter pr\u00e9cis\u00e9ment ce qui a chang\u00e9.<\/p>\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-730827\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2026\/08\/image3-1.png\" alt=\"\" width=\"1512\" height=\"949\" \/><\/figure>\n<p>Cette boucle de modification et de r\u00e9vision m\u00e9rite d&#8217;\u00eatre conserv\u00e9e. Si vous changez d\u2019agent par la suite, le fait de disposer de cette boucle directement dans l\u2019IDE vous \u00e9vite de devoir d\u00e9placer le projet ou de v\u00e9rifier les modifications dans un outil distinct.<\/p>\n<h1 class=\"wp-block-heading\">Installer un agent depuis le registre ACP<\/h1>\n<p>Le <a href=\"https:\/\/agentclientprotocol.com\/registry\" target=\"_blank\" rel=\"noopener\">registre ACP<\/a> contient d&#8217;autres agents compatibles avec l&#8217;ACP, ainsi que les m\u00e9tadonn\u00e9es dont IntelliJ IDEA a besoin pour les installer.<\/p>\n<p>Dans IntelliJ IDEA, ouvrez <em>Settings | Tools | AI Assistant | Agents<\/em>, puis s\u00e9lectionnez un agent dans le registre. La <a href=\"https:\/\/www.jetbrains.com\/help\/ai-assistant\/acp.html#install-agent-from-registry\" target=\"_blank\" rel=\"noopener\">documentation ACP actuelle<\/a> d\u00e9crit l&#8217;ensemble du processus d&#8217;installation.<\/p>\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-730797\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2026\/08\/image-44.png\" alt=\"\" width=\"1270\" height=\"924\" \/><\/figure>\n<p>La vue de configuration de l&#8217;agent vous permet \u00e9galement d&#8217;exposer les serveurs MCP configur\u00e9s dans AI Assistant, le serveur MCP int\u00e9gr\u00e9 \u00e0 IntelliJ, ou les deux.<\/p>\n<p>IntelliJ IDEA t\u00e9l\u00e9charge les fichiers de l&#8217;agent lorsque vous appliquez les param\u00e8tres. La premi\u00e8re session peut vous demander de vous authentifier en utilisant une m\u00e9thode prise en charge par cet agent.<\/p>\n<p>Le registre fournit \u00e9galement les m\u00e9tadonn\u00e9es utilis\u00e9es pour les mises \u00e0 jour et la d\u00e9sinstallation. Ces op\u00e9rations restent accessibles dans les param\u00e8tres <em>Agents<\/em>, donc l&#8217;ajout d&#8217;un agent ne n\u00e9cessite pas de maintenir un autre plugin d&#8217;IDE.<\/p>\n<p>Chaque agent du registre conserve sa propre licence, son service, ses identifiants et ses conditions de confidentialit\u00e9. V\u00e9rifiez ces d\u00e9tails avant d&#8217;accorder l&#8217;acc\u00e8s au d\u00e9p\u00f4t.<\/p>\n<h1 class=\"wp-block-heading\">Connecter un agent personnalis\u00e9 avec acp.json<\/h1>\n<p>Les agents du registre sont destin\u00e9s \u00e0 \u00eatre largement distribu\u00e9s. Un agent interne, en revanche, a souvent un r\u00f4le plus restreint et doit rester au sein de l\u2019entreprise.<\/p>\n<p>Si un agent interne impl\u00e9mente l&#8217;ACP, enregistrez-le dans ~\/.jetbrains\/acp.json. IntelliJ IDEA fournit une action <em>Add Custom Agent<\/em> qui cr\u00e9e et ouvre ce fichier, mais vous pouvez \u00e9galement modifier le fichier directement.<\/p>\n<p>La configuration ci-dessous enregistre un agent de migration d&#8217;entreprise hypoth\u00e9tique\u00a0:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"json\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">{\n  \"agent_servers\": {\n    \"Company Migration Agent\": {\n      \"command\": \"\/opt\/company\/bin\/migration-agent\",\n      \"args\": [\"acp\"]\n    }\n  }\n}\n<\/pre>\n<p>Chaque cl\u00e9 sous agent_servers devient le nom d&#8217;affichage de l&#8217;agent. La valeur de command doit contenir le chemin complet vers l&#8217;ex\u00e9cutable qu&#8217;IntelliJ IDEA doit d\u00e9marrer. Placez les arguments requis pour activer le mode ACP de cet agent dans les args. Les valeurs exactes se trouvent dans la documentation de l&#8217;agent.<\/p>\n<p>Utilisez env si le processus a besoin de variables d&#8217;environnement. De nombreux agents s&#8217;attendent \u00e0 ce que vous vous authentifiiez d&#8217;abord via leur CLI, puis \u00e0 ce que vous r\u00e9utilisiez les identifiants stock\u00e9s dans la configuration utilisateur de l&#8217;agent. Si un agent accepte une cl\u00e9 API via env, suivez sa documentation et \u00e9vitez de valider le fichier ou les secrets qu\u2019il contient dans un d\u00e9p\u00f4t.<\/p>\n<p>Enregistrez <code>acp.json<\/code>, puis s\u00e9lectionnez l&#8217;agent configur\u00e9 dans IntelliJ IDEA.<\/p>\n<p>Si des agents compatibles avec l&#8217;ACP sont d\u00e9j\u00e0 install\u00e9s sur la machine, l&#8217;IDE les d\u00e9tectera et proposera de les ajouter \u00e0 la configuration.<\/p>\n<h1 class=\"wp-block-heading\">Pourquoi utiliser plusieurs agents\u00a0?<\/h1>\n<p>Les \u00e9quipes peuvent souhaiter avoir diff\u00e9rents agents pour effectuer diff\u00e9rents types de t\u00e2ches. L&#8217;ACP donne \u00e0 ces agents un moyen commun de se connecter \u00e0 IntelliJ IDEA\u00a0:<\/p>\n<ul class=\"wp-block-list\">\n<li>La connexion d&#8217;un agent compatible avec l&#8217;a ACP via <code>acp.json<\/code> \u00e9vite d&#8217;avoir \u00e0 d\u00e9velopper et \u00e0 maintenir un plugin IntelliJ IDEA distinct.<\/li>\n<li>La navigation, la modification et la r\u00e9vision du diff restent dans IntelliJ IDEA, mais les d\u00e9veloppeurs peuvent choisir l&#8217;agent charg\u00e9 du travail.<\/li>\n<li>Si le service de l&#8217;agent ou son fournisseur de mod\u00e8le n&#8217;est pas disponible, les d\u00e9veloppeurs peuvent basculer vers un autre agent configur\u00e9 et poursuivre leur travail dans le m\u00eame projet IntelliJ IDEA.<\/li>\n<\/ul>\n<h1 class=\"wp-block-heading\">Gardez l&#8217;IDE, choisissez l&#8217;agent<\/h1>\n<p>Utilisez un agent d\u00e9j\u00e0 disponible dans IntelliJ IDEA, installez-en un depuis le registre ACP, ou enregistrez un agent interne dans <code>acp.json<\/code>.<\/p>\n<p>L\u2019ACP transforme l\u2019agent de programmation, qui \u00e9tait jusqu\u2019alors un choix impos\u00e9 par l\u2019IDE, en une option interchangeable que vous pouvez revoir \u00e0 tout moment.<\/p>\n<p><em>Auteur de l&#8217;article original en anglais<\/em> :<\/p>\n\n    <div class=\"about-author \">\n        <div class=\"about-author__box\">\n            <div class=\"row\">\n                <div class=\"about-author__box-img\">\n                    <img decoding=\"async\" src=\"https:\/\/secure.gravatar.com\/avatar\/1a978606d0a933300f0540687d0baac3?s=200&#038;r=g\" width=\"200\" height=\"200\" alt=\"Anton Arhipov\" loading=\"lazy\"  class=\"avatar avatar-200 wp-user-avatar wp-user-avatar-200 photo avatar-default\">\n                <\/div>\n                <div class=\"about-author__box-text\">\n                                            <h4>Anton Arhipov<\/h4>\n                                                        <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n","protected":false},"author":813,"featured_media":733911,"comment_status":"closed","ping_status":"closed","template":"","categories":[8899,8526,2347],"tags":[8982,6847,8725,9201,1851],"cross-post-tag":[],"class_list":["post-732885","idea","type-idea","status-publish","has-post-thumbnail","hentry","category-ai","category-ai-assistant","category-tutorials","tag-acp","tag-ai","tag-ai-agent","tag-ai-in-ij","tag-intelij-idea"],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/idea\/732885","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/idea"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/types\/idea"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/users\/813"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/comments?post=732885"}],"version-history":[{"count":8,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/idea\/732885\/revisions"}],"predecessor-version":[{"id":733936,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/idea\/732885\/revisions\/733936"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media\/733911"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media?parent=732885"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/categories?post=732885"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/tags?post=732885"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/cross-post-tag?post=732885"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}