IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

L'agent de programmation IA open source OpenCode 2.0 est officiellement lancé avec un service d'arrière-plan partagé, le Code Mode, une API repensée
Et un nouveau SDK pour les développeurs

Le , par Eliora

30PARTAGES

4  0 
L'agent de programmation IA open source OpenCode a officiellement lancé sa version 2.0, environ trois mois après le début de sa bêta publique. Cette mise à jour introduit un service d'arrière-plan local partagé qui relie ses interfaces terminal, web et bureau, ainsi qu'une API remaniée. Cette version introduit également le « Code Mode », qui permet aux agents d'écrire des scripts combinant des appels vers les serveurs MCP et les points de terminaison OpenAPI au sein d'un même flux d'exécution. Un nouveau SDK permet aux développeurs d'intégrer OpenCode dans des applications personnalisées. Cependant, cette mise à jour introduit des changements majeurs, notamment une incompatibilité avec les plugins de la version 1.0.

L'agent de programmation IA open source OpenCode a officiellement lancé sa version 2.0, environ trois mois après le début de sa bêta publique. Cette mise à jour introduit un service d'arrière-plan local partagé qui relie ses interfaces terminal, web et bureau, ainsi qu'une API remaniée et un nouveau package @opencode/client permettant aux scripts de détecter automatiquement le service et d'interagir avec lui. Cette version introduit également le « Code Mode », qui permet aux agents d’écrire des scripts combinant des appels vers les serveurs MCP et les points de terminaison OpenAPI au sein d’un même flux d’exécution. Des sous-agents en arrière-plan peuvent désormais gérer des tâches pendant que l’agent principal continue de fonctionner, et les commandes shell peuvent s’exécuter de manière asynchrone sans bloquer les interactions.


OpenCode 2.0 étend également son système de plugins, rendant les plugins TUI stables et prenant en charge le rechargement à chaud pendant les sessions actives. Un nouveau SDK @opencode/sdk permet aux développeurs d’intégrer OpenCode dans des applications personnalisées à l’aide de son protocole serveur standard. Cependant, cette mise à jour introduit des changements majeurs, notamment une incompatibilité avec les plugins de la version 1.0 et une API serveur entièrement repensée.

Voici l'annonce de la sortie d'OpenCode 2.0 :

OpenCode 2.0 est une refonte majeure. Elle s'appuie sur l'expérience de millions d'utilisateurs quotidiens pour proposer un système capable de s'adapter à tout ce dont un agent a besoin. Il y a de nombreuses nouvelles fonctionnalités, des améliorations de performances et des corrections de bogues, mais voici quelques-uns des changements les plus marquants pour les utilisateurs.


Le service

Dès le début, OpenCode a adopté un modèle client/serveur. Cependant, cette fonctionnalité n’était pas activée par défaut et était principalement utilisée par les utilisateurs avancés. Dans la version 2.0, ce serveur s'exécute désormais automatiquement sous la forme d'un seul processus en arrière-plan sur votre ordinateur. Lorsque vous ouvrez une interface TUI, l'interface Web ou l'application de bureau, celles-ci communiquent toutes avec le même processus central.

Si vous utilisez le client programmatique @opencode/client pour créer vos propres scripts, ceux-ci détecteront automatiquement le service local et fonctionneront sans autre. Cela s'avère particulièrement utile pour les tâches planifiées. Vous pouvez également l'appeler via l'interface en ligne de commande (CLI) à l'aide des commandes de l'API opencode. Vous pouvez l'exposer à d'autres hôtes et exécuter la commande /pair ou opencode pair pour le connecter à d'autres applications. Nous développons actuellement des applications natives qui tirent parti de ce flux.

L'API

L'ancienne API s'est développée au petit bonheur la chance, à mesure que nous et le monde entier apprenions collectivement ce que sont et ce que devraient être les agents. Elle était médiocre. Nous sommes repartis de zéro et avons passé au crible tous les cas d'utilisation inhabituels parmi les millions d'utilisateurs qui se servent d'OpenCode chaque jour. Elle prend désormais en charge presque tout ce dont vous pourriez avoir besoin. OpenCode connaît également sa propre API et l'appelle pour effectuer des tâches utiles, comme déplacer la session en cours dans un arborescence de travail Git lorsqu'on commence un nouveau projet.

Nous avons également publié un nouveau package client, @opencode/client, qui contient des clients pour JavaScript « vanilla » ainsi que pour Effect.

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import { NodeFileSystem } from "@effect/platform-node"
import {
  AbsolutePath,
  Location,
  OpenCode,
} from "@opencode/client/effect"
import { Service } from "@opencode/client/effect/service"
import { Effect } from "effect"
import {
  FetchHttpClient,
  HttpClient,
  HttpClientRequest,
} from "effect/unstable/http"
 
const program = Effect.gen(function* () {
  const endpoint = yield* Service.ensure()
  const headers = Service.headers(endpoint) ?? {}
  const httpClient = yield* HttpClient.HttpClient
  const client = yield* OpenCode.make({ baseUrl: endpoint.url }).pipe(
    Effect.provideService(
      HttpClient.HttpClient,
      HttpClient.mapRequest(httpClient, (request) =>
        HttpClientRequest.setHeaders(request, headers),
      ),
    ),
  )
 
  const session = yield* client.session.create({
    location: Location.Ref.make({
      directory: AbsolutePath.make(process.cwd()),
    }),
  })
 
  yield* client.session.prompt({
    sessionID: session.id,
    text: "Review the current changes",
  })
})
 
await program.pipe(
  Effect.provide(FetchHttpClient.layer),
  Effect.provide(NodeFileSystem.layer),
  Effect.runPromise,
)
Code Mode

Les modèles adorent écrire du code, et OpenCode 2.0 tire parti de cette caractéristique mieux que n'importe quel autre agent de programmation. Nous avons développé un interpréteur JavaScript minimal
dans le package @opencode/codemode. Ce package intègre des serveurs MCP ou des points de terminaison OpenAPI, en les convertissant en fonctions que l’agent peut appeler dans un script. Il peut exécuter ces scripts en mode natif, sans la complexité des machines virtuelles Node.js ni le recours à des solutions complexes telles que QuickJS.

Cela permet à votre agent d’écrire des scripts capables, par exemple, d’appeler un outil, de traiter les résultats et d’appeler un autre outil. Un seul aller-retour suffit, au lieu de les appeler un par un.Tous les serveurs MCP de la version 2.0 sont activés par défaut en mode code. Cela signifie que vous pouvez en ajouter un millier sans alourdir excessivement le contexte et que votre agent les détectera et les combinera pour accomplir les tâches requises.

Tâches en arrière-plan

Les derniers modèles sont incroyablement performants en matière d'orchestration, et il est important que les harnais leur permettent d'exprimer pleinement cette capacité. Tout d’abord, nous avons ajouté des sous-agents en arrière-plan. Cela permet à l’agent principal de déléguer certaines tâches à un autre agent tout en poursuivant son travail. Ce processus se déroule automatiquement, mais vous pouvez également le déclencher manuellement — même avec un modèle différent. Cela vous permet, par exemple, de « créer un sous-agent Fable en arrière-plan pour réviser ce code » tout en continuant à saisir des commandes.

Ensuite, nous avons ajouté des commandes shell en arrière-plan. L’outil shell peut être invoqué de manière asynchrone, de sorte que les tâches de longue durée n’aient pas
à bloquer l’agent principal. Celui-ci sera averti lorsque les opérations seront terminées. Si une commande shell ou un sous-agent au premier plan prend plus de temps que prévu, vous pouvez appuyer sur un raccourci clavier pour les déplacer en arrière-plan afin de pouvoir continuer à saisir des commandes.

Plugins

Bien qu’OpenCode 1.0 disposait d’un système de plugins, celui-ci n’a jamais bénéficié de l’attention nécessaire. Pour y remédier, nous nous sommes efforcés de mettre en œuvre presque toutes les fonctionnalités d’OpenCode 2.0 sous forme de plugins internes, et il en existe désormais plus de 80. Cela garantit que l’API des plugins reste correctement maintenue. Nous avons également fait passer les plugins TUI du statut « expérimental » à « stable ». Comme tout est géré par OpenTUI, vous pouvez créer pratiquement tout ce que vous voulez.

Nous avons également consacré beaucoup de temps à nous assurer que tous les éléments d’OpenCode 2.0 puissent être rechargés à chaud. Ainsi, il peut créer un plugin pour lui-même en cours de session et l’utiliser immédiatement — nous avons abordé la conception de cette fonctionnalité dans un précédent article de blog. Vous pouvez demander à OpenCode de créer le plugin de votre choix, et il saura s’y prendre.

Le SDK

OpenCode peut désormais également être utilisé comme bibliothèque grâce au package @opencode/sdk. Il s'agit exactement du même code que celui qui alimente notre CLI. Cela signifie que vous pouvez le personnaliser pour créer votre propre version d’OpenCode, qui fonctionnera sur un serveur ou dans des environnements spécialisés tels que Durable Objects. Vous pourrez ensuite vous y connecter depuis n’importe quel client OpenCode, puisqu’il utilise le protocole serveur standard d’OpenCode. Il dispose également d’une API optionnelle basée sur les effets. Celle-ci est encore en cours de développement, car les choses évoluent, mais vous pouvez déjà l’utiliser.

Sources : Anomaly ; Anomaly, sur GitHub

Et vous ?

Pensez-vous que cette annonce est crédible ou pertinente ?
Quel est votre avis sur le sujet ?

Voir aussi :

OpenAI s'appuie désormais sur son agent de programmation IA Codex pour améliorer son propre code : « Je pense que la grande majorité de Codex est construite par Codex », déclare son chef de produit

Les agents IA de codage produisent plus de code, mais pas davantage de logiciels : les gains obtenus lors de la génération de code sont annulés par le goulot d'étranglement que représente la révision humaine

xAI a publié le code source de l'agent de codage IA Grok Build, après que des chercheurs de Cereblab ont découvert qu'il transférait les dépôts Git des utilisateurs vers le stockage Google Cloud de xAI
Vous avez lu gratuitement 133 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !