Decision
Ne pas restaurer l'ancien runtime Semantic Kernel EPITA comme runtime de production
scientifique. S'en servir comme oracle de proprietes a recuperer, et reimplementer ces
contrats au-dessus du runtime ADK / Aspire desormais reellement execute dans le depot.
C'est une simplification architecturale, pas un abandon : ce qui a de la valeur dans EPITA
est le jeu de contrats comportementaux (etat partage, designation, handoff, budgets,
specialistes), pas le moteur qui les portait.
Ce qui a change, et qui rend la decision possible — mesure firsthand 2026-09-01
L'argument n'est pas « ADK est plus moderne ». Il est qu'un runtime reellement execute
existe maintenant dans le depot, ce qui n'etait pas vrai quand la question s'est posee.
MyIA.AI.Notebooks/ML/DataScienceWithAgents/Track2-GoogleADK/utils/adk_runtime.py :
22: from google.adk.agents import Agent
23: from google.adk.models.lite_llm import LiteLlm
24: from google.adk.runners import Runner
25: from google.adk.sessions import InMemorySessionService
26: from google.genai import types
Day5-DS-Star/Lab11-Planner-Coder-Loop.ipynb : 16 cellules code, 16 executees, 0 erreur.
Chaine Planner -> Coder -> Executor -> Verifier, tool round-trip observable vers
get_dataset_schema (10 occurrences), sessions distinctes (verifier_session), modele
gemini-2.5-flash-free-tier. Lab12 pousse le meme runtime vers plusieurs analyses.
Une precision que la lecture superficielle rate. Le notebook n'importe pas ADK
directement : il fait from utils.adk_runtime import build_agent, run_agent_turn. Le seul
Agent( du notebook est un DSStarAgent( local, et Runner n'y apparait qu'en prose.
Il faut ouvrir adk_runtime.py pour etablir que le vrai ADK est bien la — ce que les
lignes ci-dessus font.
Cette couche est legitime et ne doit pas etre confondue avec le cas ict.bridges
(cf #14051) : adk_runtime est un wrapper mince multi-provider (factorisation via
LiteLlm) qui n'heberge aucun algorithme propre, la ou ict.bridges reimplemente des
estimateurs qui vivent ailleurs. Meme silhouette, statut oppose. Le discriminant est
« la couche detient-elle de la logique dont elle est la seule source ? ».
Ce que la decision implique concretement
- Ne pas rouvrir de chantier de restauration du runtime SK EPITA.
- Extraire d'EPITA la liste des contrats comportementaux, comme specification testable
— c'est le sens de « oracle de proprietes » : EPITA dit ce qui doit tenir, pas
comment l'executer.
- Implementer ces contrats au-dessus d'ADK (+ Aspire pour l'observabilite et les
primitives distribuees).
- Un contrat n'est repute porte que s'il a un test qui echoue quand on le retire.
Acceptance
Origine
Revue externe du 2026-09-01, verifiee firsthand avant d'etre actee (l'affirmation
« de vrais google.adk.agents.Agent » ne se lit pas dans le notebook : elle se lit dans
adk_runtime.py, et l'ecart valait d'etre mesure avant d'arbitrer).
Decision
Ne pas restaurer l'ancien runtime Semantic Kernel EPITA comme runtime de production
scientifique. S'en servir comme oracle de proprietes a recuperer, et reimplementer ces
contrats au-dessus du runtime ADK / Aspire desormais reellement execute dans le depot.
C'est une simplification architecturale, pas un abandon : ce qui a de la valeur dans EPITA
est le jeu de contrats comportementaux (etat partage, designation, handoff, budgets,
specialistes), pas le moteur qui les portait.
Ce qui a change, et qui rend la decision possible — mesure firsthand 2026-09-01
L'argument n'est pas « ADK est plus moderne ». Il est qu'un runtime reellement execute
existe maintenant dans le depot, ce qui n'etait pas vrai quand la question s'est posee.
MyIA.AI.Notebooks/ML/DataScienceWithAgents/Track2-GoogleADK/utils/adk_runtime.py:Day5-DS-Star/Lab11-Planner-Coder-Loop.ipynb: 16 cellules code, 16 executees, 0 erreur.Chaine Planner -> Coder -> Executor -> Verifier, tool round-trip observable vers
get_dataset_schema(10 occurrences), sessions distinctes (verifier_session), modelegemini-2.5-flash-free-tier. Lab12 pousse le meme runtime vers plusieurs analyses.Une precision que la lecture superficielle rate. Le notebook n'importe pas ADK
directement : il fait
from utils.adk_runtime import build_agent, run_agent_turn. Le seulAgent(du notebook est unDSStarAgent(local, etRunnern'y apparait qu'en prose.Il faut ouvrir
adk_runtime.pypour etablir que le vrai ADK est bien la — ce que leslignes ci-dessus font.
Cette couche est legitime et ne doit pas etre confondue avec le cas
ict.bridges(cf #14051) :
adk_runtimeest un wrapper mince multi-provider (factorisation viaLiteLlm) qui n'heberge aucun algorithme propre, la ouict.bridgesreimplemente desestimateurs qui vivent ailleurs. Meme silhouette, statut oppose. Le discriminant est
« la couche detient-elle de la logique dont elle est la seule source ? ».
Ce que la decision implique concretement
— c'est le sens de « oracle de proprietes » : EPITA dit ce qui doit tenir, pas
comment l'executer.
primitives distribuees).
Acceptance
restauration du moteur SK
Origine
Revue externe du 2026-09-01, verifiee firsthand avant d'etre actee (l'affirmation
« de vrais
google.adk.agents.Agent» ne se lit pas dans le notebook : elle se lit dansadk_runtime.py, et l'ecart valait d'etre mesure avant d'arbitrer).