Lancement Local Agent¶
Objectif: lancer le runtime agent/LangGraph depuis la même image Docker, sans intégrer de clés LLM dans l'image.
Prérequis Projet¶
Le mode agent nécessite:
- l'extra LangGraph dans le projet;
- un adapter
agent/langgraph; - un
langgraph.json; - les variables LLM et LangSmith injectées au runtime.
En production durable sans Agent Server sous licence, ajouter également :
| Bash | |
|---|---|
Préparer le projet:
| Bash | |
|---|---|
Pour un debug embedded hors Agent Server, utiliser par exemple SQLite :
| Bash | |
|---|---|
Ce profil s'applique aux appels directs à arclith.langgraph(...), pas à la commande Agent Server
ci-dessous. Pour arclith-run agent, conserver mode=auto ou choisir mode=agent_server : le
serveur gère sa propre persistance et Arclith n'ouvre pas une seconde connexion. Pour MongoDB Agent
Server, utiliser un replica set ou un mongos, configurer checkpointer.backend: mongo dans
langgraph.json et injecter LS_MONGODB_URI. PostgreSQL est le backend Agent Server par défaut.
Si le projet utilise LM Studio ou un endpoint OpenAI-compatible lancé sur le poste, ne pas utiliser
localhost depuis le conteneur. Sur Docker Desktop, utiliser souvent:
| Text Only | |
|---|---|
Build¶
Lancer L'Agent¶
| Bash | |
|---|---|
arclith-run agent lance langgraph dev par défaut avec --host 0.0.0.0. Si le projet a besoin
d'une commande agent différente, utiliser ARCLITH_AGENT_COMMAND:
| Bash | |
|---|---|
langgraph dev garde son stockage en mémoire et reste réservé au développement. Le runtime durable
open source Arclith se sélectionne sans modifier l'image :
| Bash | |
|---|---|
Les URI de cet exemple sont des formes sans credential à adapter : en exploitation, injecter les
valeurs complètes par secret. Le runtime crée les tables LangGraph, son catalogue de threads/runs,
expose /health et /ready, puis exécute les graphes déclarés dans langgraph.json. PostgreSQL
porte l'état durable ; Redis porte exclusivement les verrous de thread et signaux d'annulation.
Variables de réglage :
| Variable | Défaut | Rôle |
|---|---|---|
ARCLITH_LANGGRAPH_CONFIG |
langgraph.json |
fichier des graphes |
ARCLITH_LANGGRAPH_REDIS_PREFIX |
arclith:langgraph |
espace de coordination isolé |
ARCLITH_LANGGRAPH_REDIS_LEASE_SECONDS |
30 |
durée du verrou renouvelé par thread |
ARCLITH_LANGGRAPH_POSTGRES_POOL_SIZE |
10 |
connexions PostgreSQL maximum |
ARCLITH_LANGGRAPH_RUN_TIMEOUT_SECONDS |
900 |
durée maximale d'un run |
ARCLITH_GRACEFUL_TIMEOUT_SECONDS |
120 |
arrêt gracieux Uvicorn |
ARCLITH_LANGGRAPH_AUTO_SETUP |
true |
applique les tables/indexes au démarrage |
Une base ou un schéma dédié par agent est recommandé : les tables de checkpoints sont partagées par
thread_id, et l'isolation évite qu'un identifiant fourni par un client ne croise un autre agent.
Un préfixe Redis distinct est obligatoire entre runtimes partageant le même serveur.
Vérifier¶
Ouvrir le client agent sur:
LangSmith Studio est optionnel et nécessite un accès réseau. Hors ligne, déclencher un run par API:
| Bash | |
|---|---|
Pour une validation complète, déclencher un run avec un thread_id durable et vérifier que le graphe
appelle bien les ports/use cases du projet:
Le conteneur qui expose l'agent ne doit pas écrire en base directement depuis le LLM.
Secrets¶
Ne jamais écrire ces valeurs dans le Dockerfile:
| Text Only | |
|---|---|
Les réglages LangSmith non secrets sont générés dans .env.example. La clé reste injectée au
runtime. Pour un conteneur hors ligne, conserver observability.enabled: [] plutôt que d'activer un
adapter LangSmith incomplet.
Utiliser un fichier local non commité:
Puis injecter:
| Bash | |
|---|---|
Checklist SOTA¶
- LLM comme adapter outbound, jamais comme accès direct à la persistance.
- Variables LLM injectées au runtime uniquement.
host.docker.internalutilisé quand le modèle tourne sur le poste hôte.- API locale
:2024testée même sans LangSmith. - Traces LangSmith/OpenTelemetry activées par configuration, pas par code métier.
- Checkpointer/store gérés une seule fois : par Arclith embedded ou par l'Agent Server.
- En production durable, utiliser
ARCLITH_AGENT_RUNTIME=durableavec PostgreSQL et Redis, ou une commande serveur validée du projet viaARCLITH_AGENT_COMMAND.
Page suivante: autres modes locaux. Voir aussi Validation IA locale.