Projet LangChain (agents-cli)
L'agent est un graphe LangGraph compilé exporté sous le nom root_agent
depuis app/agent.py. Il n'y a pas de dépendance google.adk ni de runner ADK. Les
autres compétences google-agents-cli-* supposent ADK ; lorsqu'elles décrivent l'agent lui-même,
cette compétence prévaut.
Expérimental, et Agent Runtime est dégradé. Déployez sur cloud_run ou gke. Sur
agent_runtime l'application fonctionne, mais publish gemini-enterprise est refusé, le
playground de la Console ne peut pas l'invoquer, et les sessions/traces de la Console restent vides : les trois nécessitent les routes reasoning_engine ADK que ce projet ne sert pas. Dites-le avant de le recommander.
Correspondance avec les instructions ADK
| Instruction ADK | Ce projet |
|---|---|
LlmAgent, Agent, google.adk.tools | langchain.agents.create_agent, fonctions Python simples comme outils, ou tout StateGraph compilé |
adk web, adk run | agents-cli playground (lance langgraph dev) |
Runner ADK derrière agents-cli run | agents-cli run invoque le graphe dans le processus |
agents-cli eval dataset synthesize, eval optimize | Indisponible : les deux pilotent l'agent via ADK. La commande le signale et se termine. |
Ajouter un LlmAgent dans app/agent.py | Modifier le graphe dans app/agent.py ; conserver le nom root_agent |
Le contrat
Conservez ces deux éléments, quoi que vous construisiez à l'intérieur :
app/agent.pyexporteroot_agent, un graphe compilé avec étatmessages. Les appelants utilisent uniquementroot_agent.invoke({"messages": [...]})etroot_agent.astream(stream_mode="messages").app/fast_api_app.pyexposeapp. Chaque cible de déploiement exécuteuvicorn app.fast_api_app:app.
Ajouter un outil signifie écrire une fonction typée avec une docstring et la passer dans
tools=[...]. Changer de framework (LangGraph StateGraph,
deepagents.create_deep_agent) implique de réécrire app/agent.py uniquement. Les versions
antérieures à 1.0 de LangChain (chaînes LCEL, AgentExecutor) ne sont pas prises en charge : ce ne sont pas des graphes compilés.
Commandes
agents-cli install # uv sync
agents-cli playground # langgraph dev, port 8080
agents-cli run "hello" # invoque le graphe dans le processus
agents-cli eval generate --dataset tests/eval/datasets/basic-dataset.json -o tests/eval/output/
agents-cli eval grade --traces tests/eval/output/<dataset>.json --config tests/eval/eval_config.yaml
agents-cli deploy # inchangé
agents-cli scaffold enhance -d cloud_run --cicd-runner github_actions # ajouter l'infrastructure plus tard
playground, run et eval generate sont remplacés par
agents-cli-extension.yaml à la racine du projet. Préfixez toute commande avec
AGENTS_CLI_DISABLE_OVERRIDES=1 pour utiliser la version intégrée à la place.
Service
A2A uniquement : JSON-RPC à POST /a2a/app, fiche à
/a2a/app/.well-known/agent-card.json, santé à /health. Le streaming de jetons
provient de astream(stream_mode="messages").
Erreurs courantes
- Renommer
root_agentouapp, ce qui interromptrun, eval et le déploiement. - Utiliser
eval dataset synthesizeoueval optimize: ils nécessitent ADK. Écrire des cas danstests/eval/datasets/et utilisereval generate+eval grade. - S'attendre à
/run_sseou aux routes de session ADK ; ce serveur sert A2A. - Exécuter
agents-cli run --url ...contre un agent déployé sansAGENTS_CLI_DISABLE_OVERRIDES=1, ce qui invoque le graphe local à la place. runeteval generateappellent Gemini via Vertex AI avec ADC, ils ont donc besoin deGOOGLE_CLOUD_PROJECTet d'identifiants, ou deGOOGLE_API_KEY/GEMINI_API_KEYdans.env.
Références
references/langchain.md— contrat de framework et détails par commande.references/samples.md— agents à copier, par forme.