Aller au contenu

Petits services, budgets de tokens et le dispatcher

Je pense que je dois vulgariser ça au maximum et me demander : oublions le bon design, c’est quoi le plus simple à concevoir pour ne pas me heurter aux murs de complexité que je vais devoir gérer jusqu’à ce que ce système soit fini ?

Réfléchissons...

Des services débiles qui ignorent l’état des autres, c’est le meilleur moyen de tirer profit de l’IA pour la génération de code. Donc, c’est logique de construire une IA de génération de code comme ça.

Plus le service est débile, plus il est facile à écrire, et plus il est facile à écrire, moins on a de chances de devoir tout recommencer. Ça veut dire qu’on veut écrire plus de modules, plus petits et moins complexes. Cool.

Rendre la gestion du budget à l’orchestrateur

Si on rend la gestion du budget de tokens à l’Orchestrateur, en la sortant du service d’agent, on obtient un orchestrateur capable de faire le boulot qu’il était censé faire au départ. Mais on doit repenser nos priorités et garder un processus léger.

Du coup, on confie à l’Orchestrateur la tâche d’allouer le budget de tokens et de trouver des mots-clés pour suivre le contexte passé selon ce qui se passe dans la conversation, le ticket, la PR ou le rapport de bug.

Le dispatcher

Étape suivante : simplifier le service d’agent.

Je me dis qu’il nous faut ici une étape préliminaire qui récupère le budget de tokens ainsi que les mots-clés, puis fouille la base de données de contexte, prend des notes sur les projets passés et actuels, construit une table de référence contextuelle pour la tâche, et passe le relais à la suite du voyage.

On appellera ce petit truc mignon le « Dispatcher ». Et le Dispatcher se comporte différemment selon que l’agent est déjà assigné à la tâche ou non. Après le déploiement initial, le Dispatcher n’a plus besoin de modifier l’état de l’agent, sauf pour des détails de contexte occasionnels.

Un curseur qu’on déplace de l’orchestrateur vers le Dispatcher, c’est la question : « ce message nécessite-t-il une réponse de l’agent ? »

À partir de là, on a notre agent, et l’agent a deux états possibles. Assigné ou Nouvellement assigné.

L’agent recevra du contexte, des instructions, du contexte, et/ou une superposition de personnalité choisie au hasard via le Dispatcher.

L’agent répond, ou pas, et ça nous donne tout, sauf la boucle de codage.

Ça devient plus compliqué, progressivement, à mesure qu’on descend la chaîne.